diff --git "a/48 \345\272\204\347\217\212\347\217\212/20230310 \344\275\234\344\270\232\344\270\200.md" "b/48 \345\272\204\347\217\212\347\217\212/20230310 \344\275\234\344\270\232\344\270\200.md" new file mode 100644 index 0000000000000000000000000000000000000000..238b2a35d82278b5f32c93a4dd3255053ef2c584 --- /dev/null +++ "b/48 \345\272\204\347\217\212\347\217\212/20230310 \344\275\234\344\270\232\344\270\200.md" @@ -0,0 +1,125 @@ +# 1.卡题记录 + +```sql +查询姓名中第三个字为‘俊’的学生的信息,‘俊’后面有多少个字不限制 +select * from student where stuName like '__俊%'; + +查询出笔试成绩不在70-90之间的信息,并按照笔试成绩升序排列 +select * from student left +join class c on student.stuNO = c.stuNO +where c.writtenExam != any(select writtenExam from +class where writtenExam between 70 and +90) order by writtenExam ; +``` + +# 2.作业 + +```sql +create database studentclass charset utf8; +use studentclass; +create table student( + stuNO varchar(5), + stuName varchar(10), + stuAge int, + stuAddress varchar(4) , + stuSeat int , + stuSex varchar(2) +); +insert into student values +('s2501','张秋利',20,'美国硅谷',1,1), + ('s2502','李斯文',20,'湖北武汉',2,0), + ('s2503','马文才',22,'湖南长沙',3,1), + ('s2504','欧阳俊雄',21,'湖北武汉',4,0), + ('s2505','梅超风',20,'湖北武汉',5,1), + ('s2506','陈旋风',19,'美国硅谷',6,1), +('s2507','陈风',20,'美国硅谷',7,0); +create table class( + examNO int, + stuNO varchar(5), + writtenExam int, + labExam int +); +insert into class 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 学生姓名, atuAge 学生年龄 ,stuAddress 地址, stuSeat 位置, stuSex 学生性别 from student; +2.查询学生信息表(stuinfo)中的姓名,年龄和地址三列的信息 +select stuName 学生姓名,atuAge 学生年龄,stuAddress 地址 from student; +3.查询学生分数表(stuexam)中的学号,笔试和机试三列的信息,并为这三列取中文名字 +select student.stuNO 学生学号,writtenExam 笔试,labExam 机试 from student inner join class c on student.stuNO = c.stuNO; +5.查询学生分数表(stuexam)中的学生的学号,笔试,机试以及总分这四列的信息 +select s.stuNO 学生学号,writtenExam 笔试,labExam 机试,sum(writtenExam+class.labExam) 总分 +from class inner join student s on class.stuNO = s.stuNO +group by s.stuNO; +6.查询学生信息表(stuInfo)中学生来自哪几个地方 +select stuAddress from student group by stuAddress; +7.查询学生信息表(stuInfo)中学生有哪几种年龄,并为该列取对应的中文列名 +select stuAge 学生年龄 from student group by stuAge; +8.查询学生信息表(stuInfo)中前3行记录 +select * from student limit 3; +9.查询学生信息表(stuInfo)中前4个学生的姓名和座位号 +select stuName 学生姓名,stuSeat 座位号 from student limit 4; +11.将地址是湖北武汉,年龄是20的学生的所有信息查询出来 +select *from student where stuAddress= '湖北武汉' and stuAge =20; +12.将机试成绩在60-80之间的信息查询出来,并按照机试成绩降序排列 +select *from student +left join class c +on student.stuNO = c.stuNO +where labExam between 60 and 80 order by labExam desc ; +13.查询来自湖北武汉或者湖南长沙的学生的所有信息 +select * from student where stuAddress ='湖北武汉' +or'湖南长沙'; +14.查询出笔试成绩不在70-90之间的信息,并按照笔试成绩升序排列 +select * from student left +join class c on student.stuNO = c.stuNO +where c.writtenExam != any(select writtenExam from +class where writtenExam between 70 and +90) order by writtenExam ; +15.查询年龄没有写的学生所有信息 +select* from student where stuAge is null ; +16.查询年龄写了的学生所有信息 +select* from student where stuAge is not null; +17.查询姓张的学生信息 +select *from student where stuName like '张%'; +18.查询学生地址中有‘湖’字的信息 +select * from student where stuAddress like '%湖%'; +19.查询姓张但名为一个字的学生信息 +select * from student where stuName like '张_'; +20.查询姓名中第三个字为‘俊’的学生的信息,‘俊’后面有多少个字不限制 +select * from student where stuName like '__俊%'; +21.按学生的年龄降序显示所有学生信息 +select * from student order by stuAge desc ; +22.按学生的年龄降序和座位号升序来显示所有学生的信息 +select * from student order by stuAge,stuSeat; +23显示笔试第一名的学生的考试号,学号,笔试成绩和机试成绩 +select examNO 考试号,stuNO 学号,writtenExam 笔试成绩, + labExam 机试成绩 from class +where writtenExam =(select max(writtenExam)from class); +24.显示机试倒数第一名的学生的考试号,学号,笔试成绩和机试成绩 +select examNO 考试号,stuNO 学号,writtenExam 笔试成绩, + labExam 机试成绩 from class +where writtenExam =(select min(writtenExam)from class); +25.查询每个地方的学生的平均年龄 +select stuAddress,avg(stuAge)from student group by stuAddress; +26.查询男女生的分别的年龄总和 +select stuSex,sum(stuAge) from student group by stuSex; +27.查询每个地方的男女生的平均年龄和年龄的总和 +select avg(stuAge),sum(stuAge) from student group by stuSex; + + + + + + + + + + + + +``` +