diff --git "a/11 \351\273\216\344\277\212\346\235\250/20230309 \344\275\234\344\270\232.md" "b/11 \351\273\216\344\277\212\346\235\250/20230309 \344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..cd957619f1b0362fcc17b1229c1243495c122f43 --- /dev/null +++ "b/11 \351\273\216\344\277\212\346\235\250/20230309 \344\275\234\344\270\232.md" @@ -0,0 +1,181 @@ +# 作业 + +```mysql +create database xuesen charset utf8; + +use xuesen; + +create table stuinfo ( +stuNO varchar(100), +stuName varchar(100), +stuAge varchar(100), +stuAddress varchar(100), +stuSeat varchar(100), +stuSex varchar(100) +); + +create table stuexam( +examNO varchar(100), +stuNO varchar(100), +writtenExam varchar(100), +labExam varchar(100) +); + +insert into stuinfo values +('s2501','张秋利','20','美国硅谷','1','1'), +('s2502','李斯文','18','湖北武汉','2','0'), +('s2503','马文才','22','湖南长沙','3','1'), +('s2504','欧阳俊雄','21','湖北武汉','4','0'), +('s2505','梅超风','20','湖北武汉','5','1'), +('s2506','陈旋风','19','美国硅谷','6','1'), +('s2507','陈风','20','美国硅谷','7','0'); + +insert into stuexam values +('1','s2501','50','70'), +('2','s2502','60','65'), +('3','s2503','86','85'), +('4','s2504','40','80'), +('5','s2505','70','90'), +('6','s2506','85','90'); + +-- 按图片所给的数据进行数据表的建立和数据插入,然后进行以下查询操作 +-- +-- 1.查询学生信息表(stuinfo)中所有列信息,给每列取上中文名称 + +select stuNO 学号,stuName 名字, stuAge 年龄,stuAddress 地址,stuSeat 座位号,stuSex 性别 from stuinfo; + +-- +-- 2.查询学生信息表(stuinfo)中的姓名,年龄和地址三列的信息 +-- + +select stuName,stuAge,stuAddress from stuinfo; + +-- 3.查询学生分数表(stuexam)中的学号,笔试和机试三列的信息,并为这三列取中文名字 +-- + +select stuNO 学号,writtenExam 笔试分,labExam 机试分 from stuexam; + +-- 5.查询学生分数表(stuexam)中的学生的学号,笔试,机试以及总分这四列的信息 + +select stuinfo.stuNO,writtenexam,labexam,(writtenexam + labexam) aug from stuinfo left join stuexam on stuinfo.stuNO=stuexam.stuNO; + +-- +-- 6.查询学生信息表(stuInfo)中学生来自哪几个地方 + +select stuAddress from stuinfo GROUP BY stuAddress; + +-- +-- 7.查询学生信息表(stuInfo)中学生有哪几种年龄,并为该列取对应的中文列名 + +select stuAge 年龄 from stuinfo GROUP BY stuage; + +-- +-- 8.查询学生信息表(stuInfo)中前3行记录 + +select * from stuinfo LIMIT 3; + +-- +-- 9.查询学生信息表(stuInfo)中前4个学生的姓名和座位号 + +select stuname,stuseat from stuinfo limit 4; + +-- +-- 11.将地址是湖北武汉,年龄是20的学生的所有信息查询出来 + +select * from stuinfo where stuaddress='湖北武汉' and stuage = '20'; + +-- +-- 12.将机试成绩在60-80之间的信息查询出来,并按照机试成绩降序排列 + +select labexam from stuexam where labexam between 60 and 80 order by labexam desc; + +-- +-- 13.查询来自湖北武汉或者湖南长沙的学生的所有信息 + +select * from stuinfo where stuaddress='湖北武汉' or stuaddress='湖南长沙'; + +-- +-- 14.查询出笔试成绩不在70-90之间的信息,并按照笔试成绩升序排列 + +select writtenexam from stuexam where writtenexam not between 70 and 90 order by writtenexam; + +-- +-- 15.查询年龄没有写的学生所有信息 + +select * from stuinfo where stuage is null; + +-- +-- 16.查询年龄写了的学生所有信息 + +select * from stuinfo where stuage is not null; + +-- +-- 17.查询姓张的学生信息 + +select * from stuinfo where stuname like '张%'; + +-- +-- 18.查询学生地址中有‘湖’字的信息 + +select * from stuinfo where stuaddress like '%湖%'; + +-- +-- 19.查询姓张但名为一个字的学生信息 + +select * from stuinfo where stuname like '张_'; + +-- +-- 20.查询姓名中第三个字为‘俊’的学生的信息,‘俊’后面有多少个字不限制 +-- + +select * from stuinfo where stuname like '__俊%'; + +-- 21.按学生的年龄降序显示所有学生信息 + +select * from stuinfo order by stuage desc; + +-- +-- 22.按学生的年龄降序和座位号升序来显示所有学生的信息 + +select * from stuinfo order by stuage desc,stuseat; + +-- +-- 23显示笔试第一名的学生的考试号,学号,笔试成绩和机试成绩 + +select * from stuexam where writtenexam = (select max(writtenexam) from stuexam); + + + +-- +-- 24.显示机试倒数第一名的学生的考试号,学号,笔试成绩和机试成绩 + +select * from stuexam where labexam = (select min(labexam) from stuexam); + +-- +-- 25.查询每个地方的学生的平均年龄 + +select stuaddress,avg(stuage) from stuinfo GROUP BY stuaddress; + +-- +-- 26.查询男女生的分别的年龄总和 + +select stusex,sum(stuage) from stuinfo GROUP BY stusex; + +-- +-- 27.查询每个地方的男女生的平均年龄和年龄的总和 + +select stuaddress,stusex,avg(stuage),sum(stuage) from stuinfo GROUP BY stuaddress,stusex; + +-- +-- +-- + + + + + + + + +``` +