diff --git "a/13 \350\224\241\345\230\211\344\271\220/3.10\350\257\276\345\240\202\344\275\234\344\270\232.md" "b/13 \350\224\241\345\230\211\344\271\220/3.10\350\257\276\345\240\202\344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..e6cded812375ea761f24afaf7f0eebd5dd42cfb4 --- /dev/null +++ "b/13 \350\224\241\345\230\211\344\271\220/3.10\350\257\276\345\240\202\344\275\234\344\270\232.md" @@ -0,0 +1,87 @@ +```mysql +create database mmm charset utf8 ; +use mmm ; + create table dd1( + stuNO varchar(20), + stuName varchar(20), + stuAge varchar(20), + stuAddress varchar(20), + stuSeat int, + stuSex int + ); + INSERT INTO `dd1` VALUES ('s2501', '张秋利', '20', '美国硅谷', 1, 1); +INSERT INTO `dd1` VALUES ('s2502', '李斯文', '18', '湖北武汉', 2, 0); +INSERT INTO `dd1` VALUES ('s2503', '马文才', '22', '湖南长沙', 3, 1); +INSERT INTO `dd1` VALUES ('s2504', '欧阳俊雄', '21', '湖北武汉', 4, 0); +INSERT INTO `dd1` VALUES ('s2505', '梅超风', '20', '湖北武汉', 5, 1); +INSERT INTO `dd1` VALUES ('s2506', '陈旋风', '19', '美国硅谷', 6, 1); +INSERT INTO `dd1` VALUES ('s2507', '陈风', '20', '美国硅谷', 7, 0); + +create table dd2( + examNO int, + stuNO varchar(20), + writtenExam varchar(20), + labExam varchar(20) + ); + INSERT INTO `dd2` VALUES (1, 's2501', '50', '70'); +INSERT INTO `dd2` VALUES (2, 's2502', '60', '65'); +INSERT INTO `dd2` VALUES (3, 's2503', '86', '85'); +INSERT INTO `dd2` VALUES (4, 's2504', '40', '80'); +INSERT INTO `dd2` VALUES (5, 's2505', '70', '90'); +INSERT INTO `dd2` VALUES (6, 's2506', '85', '90'); + + + + +-- 1.查询学生信息表(stuinfo)中所有列信息,给每列取上中文名称 +select stuNO as 号数, stuName as 名字, stuAge as 年龄, stuAddress as 地址 , stuSeat as 座位, stuSex as 性别 from dd1; +-- 2.查询学生信息表(stuinfo)中的姓名,年龄和地址三列的信息 +select stuName , stuAge , stuAddress from dd1; +-- 3.查询学生分数表(stuexam)中的学号,笔试和机试三列的信息,并为这三列取中文名字 + select stuNO ,writtenExam ,labExam from dd2; +-- 5.查询学生分数表(stuexam)中的学生的学号,笔试,机试以及总分这四列的信息 + select stuNO ,writtenExam ,labExam ,SUM(writtenExam+labExam) as 总分 from dd2 GROUP BY stuNO; +-- 6.查询学生信息表(stuInfo)中学生来自哪几个地方 +select stuAddress from dd1 GROUP BY stuAddress; +-- 7.查询学生信息表(stuInfo)中学生有哪几种年龄,并为该列取对应的中文列名 +select stuAge from dd1 GROUP BY stuAge; +-- 8.查询学生信息表(stuInfo)中前3行记录 +SELECT * from dd1 LIMIT 3; +-- 9.查询学生信息表(stuInfo)中前4个学生的姓名和座位号 +select stuName as 姓名, stuNo as 座位号 from dd1 LIMIT 4; +-- 11.将地址是湖北武汉,年龄是20的学生的所有信息查询出来 +select * from dd1 where stuAddress ='湖北武汉' and stuAge='20'; +-- 12.将机试成绩在60-80之间的信息查询出来,并按照机试成绩降序排列 +select * from dd2 where labExam BETWEEN 60 and 80 ORDER BY labexam desc; +-- 13.查询来自湖北武汉或者湖南长沙的学生的所有信息 +select * from dd1 where stuaddress ='湖北武汉' or stuaddress ='湖南长沙'; +-- 14.查询出笔试成绩不在70-90之间的信息,并按照笔试成绩升序排列 +select * from dd2 where writtenexam not BETWEEN 70 and 90 ORDER BY writtenexam ; +-- 15.查询年龄没有写的学生所有信息 +select * from dd1 where stuage is null ; +-- 16.查询年龄写了的学生所有信息 + select * from dd1 where stuage is not null; +-- 17.查询姓张的学生信息 + select * from dd1 where stuname like '张%'; +-- 18.查询学生地址中有‘湖’字的信息 + select * from dd1 where stuAddress like '湖%'; +-- 19.查询姓张但名为一个字的学生信息 + select * from dd1 where stuname like ('张_'); +-- 20.查询姓名中第三个字为‘俊’的学生的信息,‘俊’后面有多少个字不限制 +select * from dd1 where stuname like ('__俊'); +-- 21.按学生的年龄降序显示所有学生信息 +select * from dd1 ORDER BY stuage desc ; +-- 22.按学生的年龄降序和座位号升序来显示所有学生的信息 +select * from dd1 ORDER BY stuage desc ,stuseat asc ; +-- 23显示笔试第一名的学生的考试号,学号,笔试成绩和机试成绩 +select * from dd2 where writtenexam=(select max(writtenexam) from dd2); +-- 24.显示机试倒数第一名的学生的考试号,学号,笔试成绩和机试成绩 +select * from dd2 where labexam =(select min(labexam)from dd2); +-- 25.查询每个地方的学生的平均年龄 + select stuaddress,ROUND(avg(stuage),0) from dd1 GROUP BY stuaddress; +-- 26.查询男女生的分别的年龄总和 + select stusex, sum(stuage) from dd1 GROUP BY stusex; +-- 27.查询每个地方的男女生的平均年龄和年龄的总和 +select stusex, round(avg(stuage),0),sum(stuage) from dd1 GROUP BY stusex; +``` +