– 删除stu表
drop table if exists stu;
– 创建stu表
CREATE TABLE stu (
id int, – 编号
name varchar(20), – 姓名
age int, – 年龄
sex varchar(5), – 性别
address varchar(100), – 地址
math double(5,2), – 数学成绩
english double(5,2), – 英语成绩
hire_date date – 入学时间
);
– 添加数据
INSERT INTO stu(id,NAME,age,sex,address,math,english,hire_date)
VALUES
(1,‘马运’,55,‘男’,‘杭州’,66,78,‘1995-09-01’),
(2,‘马花疼’,45,‘女’,‘深圳’,98,87,‘1998-09-01’),
(3,‘马斯克’,55,‘男’,‘香港’,56,77,‘1999-09-02’),
(4,‘柳白’,20,‘女’,‘湖南’,76,65,‘1997-09-05’),
(5,‘柳青’,20,‘男’,‘湖南’,86,NULL,‘1998-09-01’),
(6,‘刘德花’,57,‘男’,‘香港’,99,99,‘1998-09-01’),
(7,‘张学右’,22,‘女’,‘香港’,99,99,‘1998-09-01’),
(8,‘德玛西亚’,18,‘男’,‘南京’,56,65,‘1994-09-02’);
– 查询表
select * from stu;
– 添加数据
INSERT into stu (id,name,age,sex,address,math,english,hire_date) VALUES (9,‘小冰’,34,‘男’,‘西安’,99,79,‘2018-09-01’);
– 修改数据;根据ID的值修改该用户的姓名
UPDATE stu SET name = ‘小豪’ WHERE id = 9;
– 删除数据
DELETE FROM stu WHERE id = 9;
– 去重复记录
SELECT DISTINCT address FROM stu;
– 给列表起别名(AS关键字可以省略)
SELECT name,math AS 数学成绩,english AS 英语成绩 FROM stu;
– 查询年龄大于20岁的用户信息
SELECT * FROM stu WHERE age > 20;
– 查询年龄大于等于20岁的学员信息
SELECT * FROM stu WHERE age >= 20;
– 查询年龄大于等于20岁 并且 年龄 小于等于 30岁 的学员信息
SELECT * FROM stu WHERE age BETWEEN 20 and 30;-- 优先推荐
SELECT * FROM stu WHERE age >= 20 AND age<=30;
SELECT * FROM stu WHERE age >= 20 && age<=30;
– 查询入学日期在’1998-09-01’ 到 ‘1999-09-01’ 之间的学员信息
SELECT * FROM stu WHERE hire_date BETWEEN ‘1998-09-01’ AND ‘1999-09-01’;
– 查询年龄等于18岁的学员信息
SELECT * FROM stu WHERE age = 18;
– 查询年龄不等于18岁的学员信息
SELECT * FROM stu WHERE age <> 18; – 优先推荐
SELECT * FROM stu WHERE age != 18;
– 查询年龄等于18岁 或者 年龄等于20岁 或者 年龄等于22岁的学员信息
SELECT * FROM stu WHERE age in(18,20,22); – 优先推荐
SELECT * FROM stu WHERE age = 18 OR age = 20 OR age = 22;
– 查询英语成绩为 null的学员信息
SELECT * FROM stu WHERE english is null;
– 查询英语成绩不为 null的学员信息
SELECT * FROM stu WHERE english is NOT null;
– 模糊查询
– 查询姓’马’的学员信息
SELECT * FROM stu WHERE name LIKE ‘马%’;
– 查询第二个字是’花’的学员信息
SELECT * FROM stu WHERE name LIKE ‘_花%’;
– 查询名字中包含 ‘德’ 的学员信息
SELECT * FROM stu WHERE name LIKE ‘%德%’;
– 排序查询
– 升序查询
SELECT * FROM stu ORDER BY id ASC;
– 降序查询
SELECT * FROM stu ORDER BY id DESC;
– 聚合函数
– 统计班级一共有多少个学生
SELECT COUNT(id) FROM stu;
– 查询数学成绩的最高分
SELECT MAX(math) FROM stu;
– 查询数学成绩的最低分
SELECT MIN(math) FROM stu;
– 查询数学成绩的总分
SELECT SUM(math) FROM stu;
– 查询数学成绩的平均分
SELECT AVG(math) FROM stu;
– 查询英语成绩的最低分
SELECT MIN(english) FROM stu;
– 分组查询
– 查询男同学和女同学各自的数学平均分
SELECT sex,AVG(math) FROM stu GROUP BY sex;
– 查询男同学和女同学各自的数学平均分,以及各自人数
SELECT sex,AVG(math),COUNT(*) FROM stu GROUP BY sex;
– 查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参与分组
SELECT sex,AVG(math),COUNT(*) FROM stu WHERE math > 70 GROUP BY sex;
– 查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参与分组,分组之后人数大于2个的
SELECT sex,AVG(math),COUNT() FROM stu WHERE math > 70 GROUP BY sex HAVING COUNT() > 2;
– 分页查询
– 从0开始查询,查询3条数据
SELECT * FROM stu LIMIT 0,3;
– 每页显示3条数据,查询第1页数据
SELECT * FROM stu LIMIT 0,3;
– 每页显示3条数据,查询第2页数据
SELECT * FROM stu LIMIT 3,3;
– 每页显示3条数据,查询第3页数据
SELECT * FROM stu LIMIT 6,3;