数据库2

创建数据库:

PRIMARY KEY 定义当前列为  主键。主键有两个特点,非空,不能重复

AUTO_INCREMENT设置当前列为自动增长列,由DBMS为该列分配值,确保该列的值不重复。

关键代码如下

-- 创建数据库 

CREATE DATABASEbook;

 

-- 删除数据库

DROP DATABASE book;

-- 创建表

CREATE TABLEt_student(

id  INTPRIMARY KEY AUTO_INCREMENT,-- 编号

studentName VARCHAR(20),-- 学生姓名

sex VARCHAR(20),-- 性别

birthday DATE, -- 生日

telVARCHAR(20)

);

-- 删除表

DROP TABLEt_student;

-- 查询表中所有的数据  *表示查询所有的列

SELECT * FROMt_student;

-- 添加记录

INSERT INTOt_student(studentName,sex,birthday,tel)

VALUES('张三','','1993-9-20','18200192671');

 

INSERT INTOt_student(studentName,sex,birthday,tel)

VALUES('猪八戒','','1990-01-01','12345678909');

 

INSERT INTOt_student(studentName,sex,birthday,tel)

VALUES('孙悟空','','1993-01-02','11111111111');

 

INSERT INTOt_student(studentName,sex,birthday,tel)

VALUES('沙和尚','','1998-01-03','22222222222');

 

-- 添加多条记录

INSERT INTOt_student(studentName,sex,birthday,tel)

VALUES('周杰伦','','1979-8-29','88888888888'),

('李宇春','','1999-8-29','13843756843'),

('屎户狗','','1980-4-30','13790976754'),

('狗屎户','','1980-4-30','15690976754'),

('户狗蛋','','2000-3-15','15883948756');

-- 删除姓户的学生  只能删除第一个字是户的名字

DELETE FROM t_student WHERE studentName LIKE '%';

-- 删除所有带户字的名字

DELETE FROM t_student WHERE studentName LIKE '%%';

-- 删除id=1的学生

DELETE FROMt_student WHERE id=1;

-- 删除周杰伦

DELETE FROM t_student WHERE studentName='周杰伦';

-- 修改周杰伦的电话

UPDATE t_student SET tel='15909235646' WHERE studentName='周杰伦';

-- 同时修改周杰伦的电话和生日

UPDATE t_student SET tel='18200186756',birthday='1993-09-16' WHEREstudentName='周杰伦';

-- 修改孙悟空的性别

UPDATE t_student SET sex='' WHEREstudentName='孙悟空';

-- 查询所有的男生

SELECT * FROM t_student WHERE sex='';

-- 查询所有名字里有户的学生

SELECT * FROM t_student WHERE studentName LIKE '%%';

-- 查询姓张的两个字的学生

SELECT * FROM t_student WHERE studentName LIKE '_';

-- 查询所有电信用户的学生

SELECT * FROMt_student WHERE tel LIKE '18%';

-- 查询姓户的男生

SELECT * FROM t_student WHERE studentName LIKE '%' AND sex='';

-- 查询90后的学生

SELECT * FROMt_student WHERE birthday >='1990-01-01' AND birthday<'2000-01-01';

-- 查询所有的移动用户

SELECT * FROMt_student WHERE tel LIKE '13%' OR tel LIKE '15%';

-- 查询第三条到第五条记录 第一个表示从第几条开始,第一条是0

-- 第二个参数表示显示几条

SELECT * FROMt_student LIMIT 3,3;

-- 按年龄排序 asc升序   desc降序    默认是升序

SELECT * FROMt_student ORDER BY birthday;

-- 查询年龄最小的学生

SELECT * FROMt_student ORDER BY birthday LIMIT 0,1;

 

INSERT INTO t_student(studentName,sex,birthday) VALUES('猪刚鬣','','1972-01-9'),

('天蓬元帅','','1995-06-30');

 

-- 查询没有手机的学生

SELECT * FROMt_student WHERE tel IS NULL;

-- 查询id358的学生

SELECT * FROMt_student WHERE id IN(3,5,8);

 

-- 查询所有学生的性别 DISTINCT表示去除重复记录

SELECT DISTINCT sexFROM t_student ;


数据分组

HAVINGWHERE区别:

二者都是过滤条件,WHERE运行在分组前,因此不能执行任何聚合函数。HAVING是运行在分组后,只能用做聚合函数的过滤。

 

SQL执行顺序:

第一步:执行FROM

第二步:WHERE条件过滤

第三步:GROUP BY分组

第四步:执行SELECT投影列

第五步:HAVING条件过滤

第六步:执行ORDER BY排序

 

在分组查询中,能够查询的字段,只能是分组字段和聚合函数。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值