diff --git "a/19\345\275\255\345\213\207\346\226\214/\344\275\234\344\270\232.md" "b/19\345\275\255\345\213\207\346\226\214/\344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..d6cb99e3cd7898d85f42c146c8d84150e877a6a6 --- /dev/null +++ "b/19\345\275\255\345\213\207\346\226\214/\344\275\234\344\270\232.md" @@ -0,0 +1,184 @@ +``` +create database studen charset utf8; +use studen; +create table stuinfo( + stuNO varchar(11) primary key, + stuName varchar(11) unique key not null, + stuAge int not null, + stuAddress varchar(11) not null, + stuSeat int not null, + stuSex int not null +); +create table stuexam( + examNO int not null unique key auto_increment, + stuNO varchar(11) primary key, + writtenExam int not null, + labExam int not null, + foreign key (stuNO) references stuinfo(stuNO) +); +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 stuNO 学号,writtenExam 笔试,labExam 机试,writtenExam+labExam 总分 from stuexam; +``` + +6.查询学生信息表(stuInfo)中学生来自哪几个地方 + +``` +select distinct stuAddress from stuinfo; +``` + +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 writtenExam asc; +``` + +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 asc; +``` + +23显示笔试第一名的学生的考试号,学号,笔试成绩和机试成绩 + +``` +select examNO,a.stuNO,writtenExam,labExam from stuinfo a right join stuexam b on a.stuno=b.stuNO where writtenExam=(select max(writtenExam) from stuexam); +``` + +24.显示机试倒数第一名的学生的考试号,学号,笔试成绩和机试成绩 + +``` +select examNO,a.stuNO,writtenExam,labExam from stuinfo a right join stuexam b on a.stuno=b.stuNO where labExam=(select min(labExam) from stuexam); +``` + +25.查询每个地方的学生的平均年龄 + +``` +select stuAddress,round(avg(stuAge),2) 平均年龄 from stuinfo group by stuAddress; +``` + +26.查询男女生的分别的年龄总和 + +``` +select stuSex,sum(stuAge) 年龄总和 from stuinfo group by stuSex; +``` + +27.查询每个地方的男女生的平均年龄和年龄的总和 + +``` +select stuSex,round(avg(stuAge),2) 平均年龄,sum(stuAge) 年龄总和 from stuinfo group by stuSex; +``` \ No newline at end of file