diff --git "a/15 \345\220\264\346\226\214/20230309 \344\275\234\344\270\232.md" "b/15 \345\220\264\346\226\214/20230309 \344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..526e62edf75b1ddab90661dd2a07f024d3222449 --- /dev/null +++ "b/15 \345\220\264\346\226\214/20230309 \344\275\234\344\270\232.md" @@ -0,0 +1,137 @@ +# 作业 + +```mysql +create database class1 charset utf8; +use class1; +create table stuinfo( + stuNO varchar(5) primary key, + stuName varchar(4), + stuAge int , + stuAddress varchar(4), + stuSeat int, + stuSex int +); + +create table stuexam( + examNO int, + stuNo varchar(5), + writtenExam int, + labExam int, + foreign key (stuNo) references stuinfo(stuNO) +); + +insert into stuinfo values ('s2501','张秋利',20,'美国硅谷',1,1), + ('s2502','李斯文',20,'湖北武汉',2,0), + ('s2503','马文才',18,'湖南长沙',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 stuNo 学号,writtenExam 笔试,labExam 机试,writtenExam+stuexam.labExam 总分 +from stuexam; + +# 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 0,3; + +# 9.查询学生信息表(stuInfo)中前4个学生的姓名和座位号 +select stuName,stuSeat +from stuinfo limit 0,4; + +# 11.将地址是湖北武汉,年龄是20的学生的所有信息查询出来 +select * +from stuinfo where stuAddress='湖北武汉' and stuAge=20; + +# 12.将机试成绩在60-80之间的信息查询出来,并按照机试成绩降序排列 +select * +from stuexam where labExam between 60 and 80 order by labExam desc ; + +# 13.查询来自湖北武汉或者湖南长沙的学生的所有信息 +select * +from stuinfo where stuAddress='湖北武汉' or stuAddress='湖南长沙'; + +# 14.查询出笔试成绩不在70-90之间的信息,并按照笔试成绩升序排列 +select * +from stuexam where writtenExam not between 70 and 90 order by labExam desc ; + +# 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 stuAddress desc ; + +# 22.按学生的年龄降序和座位号升序来显示所有学生的信息 +select * +from stuinfo order by stuAddress desc,stuSeat asc ; + +# 23显示笔试第一名的学生的考试号,学号,笔试成绩和机试成绩 +select examNO,writtenExam,labExam +from stuexam where writtenExam=(select max(writtenExam)from stuexam); + +# 24.显示机试倒数第一名的学生的考试号,学号,笔试成绩和机试成绩 +select examNO,writtenExam,labExam +from stuexam where labExam=(select min(labExam)from stuexam); + +# 25.查询每个地方的学生的平均年龄 +select avg(stuAge) +from stuinfo group by stuAddress; + +# 26.查询男女生的分别的年龄总和 +select sum(stuAge) +from stuinfo group by stuSex; + +# 27.查询每个地方的男女生的平均年龄和年龄的总和 +select stuAddress,stuSex,avg(stuAge),sum(stuAge) +from stuinfo group by stuAddress,stuSex; +``` \ No newline at end of file