建表:
CREATE TABLE stu (
id INT,-- 编号
NAME VARCHAR ( 20 ),-- 姓名
age INT,-- 年龄
sex VARCHAR ( 5 ),-- 性别
address VARCHAR ( 100 ),-- 地址
math INT,-- 数学
english INT -- 英语
);
INSERT INTO stu ( id, NAME, age, sex, address, math, english )
VALUES
( 1, '马云', 55, '男', '杭州', 66, 78 ),
( 2, '马化腾', 45, '女', '深圳', 98, 87 ),
( 3, '马景涛', 55, '男', '香港', 56, 77 ),
( 4, '柳岩', 20, '女', '湖南', 76, 65 ),
( 5, '柳青', 20, '男', '湖南', 86, NULL ),
( 6, '刘德华', 57, '男', '香港', 99, 99 ),
( 7, '马德', 22, '女', '香港', 99, 99 ),
( 8, '德玛西亚', 18, '男', '南京', 56, 65 );
题目:
1.查询学生的姓名 及数学分数
2.查询学生的姓名 及数学分数 总分
3.查询姓名叫马云
4.查询英语成绩大于90分的学员
5.查询英语成绩大于70 分小于90分
6.查询英语成绩大于70 分小于90分 的学员的姓名和地址
7.查询姓名叫马云 或者姓名叫做马化腾或 柳青 的学员
8.查询没有英语成绩的学员
9.查询有英语成绩的学员
10.查询有英语成绩的学员 并且英语成绩 在60 - 80分之间
11.查询有英语成绩的学员 并且英语成绩 在60 - 80分之间 并且来自于杭州
12.查询名称中包含青的学员
13.查询名称中以德结尾的学员
14.查询姓马学员,并且名字只有二位字符
15.查询学员信息,按照数学成绩升序排序 如果数学成绩相同按照英语成绩降序
16.查询学生信息,按照英语升序排序
17.计算学生的个数
18.计算所有学生的数学平均成绩
19.计算所有学生数学成绩的总和 和英语成绩的总和
20.计算所有学生数学成绩+英语成绩的总和
21.查询各个地区的学生的数量
22.查询各个地区的数学分数在70分以上的学生的数量
23.查询各个地区的数学分数在70分以上的学生的数量 并且 学生人数大于2人
24.获取学生数据 获取第二页 每页显示5条
🚴♂️
🚴♂️
🚴♂️
🚴♂️
🚴♂️
🚴♂️
🚴♂️
🚴♂️
🚴♂️
参考答案
#查询学生的姓名 及数学分数
select `NAME`,math from stu;
#查询学生的姓名 及数学分数 总分
select `NAME`,math,SUM(math) + SUM(english) from stu GROUP BY `NAME`;
#查询姓名叫马云
select * from stu where `NAME` = '马云';
#查询英语成绩大于90分的学员
select * from stu where english >= 90;
#查询英语成绩大于70 分小于90分
select * from stu where english BETWEEN 70 AND 90;
#查询英语成绩大于70 分小于90分 的学员的姓名和地址
select `NAME`,address from stu where english BETWEEN 70 and 90;
#查询姓名叫马云 或者姓名叫做马化腾或 柳青 的学员
select * from stu where `NAME` = '马云' OR `NAME` = '马化腾' OR `NAME` = '柳青';
#查询没有英语成绩的学员
select * from stu where ISNULL(english);
#查询有英语成绩的学员
select * from stu where english is NOT NULL;
#查询有英语成绩的学员 并且英语成绩 在60 - 80分之间
select * from stu where english is not null AND english BETWEEN 60 AND 80;
#查询有英语成绩的学员 并且英语成绩 在60 - 80分之间 并且来自于杭州
select * from stu where english is NOT NULL AND english BETWEEN 60 AND 80 AND address = '杭州';
#查询名称中包含青的学员
select * from stu where `NAME` LIKE '%青%';
#查询名称中以德结尾的学员
select * from stu where `NAME` LIKE '%德';
#查询姓马学员,并且名字只有二位字符
select * from stu where `NAME` LIKE '马_';
#查询学员信息,按照数学成绩升序排序 如果数学成绩相同按照英语成绩降序
select * from stu ORDER BY math,english DESC;
#查询学生信息,按照英语升序排序
select * from stu ORDER BY english;
#计算学生的个数
select COUNT(*) FROM stu;
#计算所有学生的数学平均成绩
select AVG(math) from stu;
#计算所有学生数学成绩的总和 和英语成绩的总和
select SUM(math),SUM(english) FROM stu;
#计算所有学生数学成绩+英语成绩的总和
select SUM(math)+SUM(english) AS `count` FROM stu;
#查询各个地区的学生的数量
select address,COUNT(address) FROM stu GROUP BY address;
#查询各个地区的数学分数在70分以上的学生的数量
select address,COUNT(address) from stu WHERE math >= 70 GROUP BY address;
#查询各个地区的数学分数在70分以上的学生的数量 并且 学生人数大于2人
select address,COUNT(address) FROM stu where math >=70 GROUP BY address HAVING COUNT(address) >=2;
#获取学生数据 获取第二页 每页显示5条
select * from stu LIMIT 5,5;
本系列题目均从网上收集,sql自己重写并修改了一些bug和错误,基本上应该没有错误,如有错误或问题可以评论留言,感谢观看