diff --git "a/12 \345\217\266\344\277\212\350\275\266/20230309 \347\273\203\344\271\240.md" "b/12 \345\217\266\344\277\212\350\275\266/20230309 \347\273\203\344\271\240.md" index 1d3e104175cdcff3e8c86f88d959381d11a4788c..4276969fbaeda2bc5a73fd44c0e18b350a530130 100644 --- "a/12 \345\217\266\344\277\212\350\275\266/20230309 \347\273\203\344\271\240.md" +++ "b/12 \345\217\266\344\277\212\350\275\266/20230309 \347\273\203\344\271\240.md" @@ -1,77 +1,72 @@ -CREATE TABle stuinfo ( -stuno char(5) PRIMARY key, -stuname varchar(10), -stusex enum('男','女'), -stuage INT, -stuaddress varchar(4), -stuseat int); +```sql +CREATE database school charset utf8; +use school; -CREATE table stuexam( -examno int PRIMARY key, -stuno char(5), -writtenexam int, -labexam int, -FOREIGN key stuexam(stuno) REFERENCES stuinfo(stuno)); +CREATE TABLE stu( +stuno varchar(5) PRIMARY key, +stuname varchar(10), +stuage int, +stuAddress VARCHAR(10), +stuseat int, +stusex enum('1','0') +); -CREATE TABLE stumarks( +CREATE TABLE exam( examno int, -stuid char(5) REFERENCES stuexam(stuno), -score int, -FOREIGN KEY stumarks(examno) REFERENCES stuexam(examno)); +stuno VARCHAR(5) REFERENCES stu(stuno), +writtenexam int, +labexam int +); -insert into stuinfo VALUES('s2501','张秋利','男',20,'美国硅谷',1),('s2502','李斯文','女',18,'湖北武汉',2), -('s2503','马文才','男',18,'湖南长沙',3), -('s2504','欧阳俊雄','女',21,'湖北武汉',4), -('s2505','梅超风','男',20,'湖北武汉',5), -('s2506','陈旋风','男',19,'美国硅谷',6); +insert into stu 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 +INSERT into exam VALUES (1,'s2501',50,70), (2,'s2502',60,65), -(3,'s2503',86,70), +(3,'s2503',86,85), (4,'s2504',40,80), -(5,'s2505',70,85), +(5,'s2505',70,90), (6,'s2506',85,90); -insert into stumarks VALUES -(1,'s2501',88), -(2,'s2501',92), -(3,'s2501',53), -(4,'s2502',60), -(5,'s2502',99), -(6,'s2503',82); - - --- 在如图的数据表上完成以下题目 --- 1.查询出年龄比班上平均年龄大的学生的信息 -SELECT * from stuinfo WHERE stuage > (SELECT avg(stuage) from stuinfo); --- 2.查询出每个学生的学号,姓名,性别和选修课程的最高分(stuMarks) -SELECT stuno,stuname,stusex,max(score) from stuinfo LEFT JOIN stumarks on stuinfo.stuno = stumarks.stuid GROUP BY stuid --- 3.查询出每个学生的学号,姓名,性别和考试平均分(stuExam) -SELECT stuinfo.stuname,stuinfo.stuno,(writtenexam+labexam)/2 from stuexam right JOIN stuinfo on stuexam.stuno = stuinfo.stuno --- 4.查询性别是男并且年龄大于等于20的学生的信息(用两种方法实现:普通查询和子查询) -SELECT * from stuinfo where stusex = '男' and stuage >= 20; -SELECT * from (SELECT * from stuinfo) nb where stusex = '男' and stuage >= 20; - --- 5.查询出年龄比所有男生年龄都大的女生的信息 -SELECT max(stuage) from stuinfo where stusex = '男' -SELECT * from stuinfo where stusex = '女' and stuage > (SELECT max(stuage) from stuinfo where stusex = '男') --- 6.查询出所有选修课程都及格的学生的信息 (stuMarks) -SELECT stuinfo.* from stuinfo right JOIN (SELECT * from stumarks where stuid !=(SELECT stuid from stumarks where score <60)) nb on stuinfo.stuno = nb.stuid GROUP BY stuno --- 7.查询出参加考试的学生的信息(用表连接,in二种方法做)(stuMarks) +-- 按图片所给的数据进行数据表的建立和数据插入,然后进行以下查询操作 +-- +-- 1.查询学生信息表(stuinfo)中所有列信息,给每列取上中文名称 +SELECT stuno 学号,stuname 姓名,stuage 年龄,stuaddress 住址,stuseat 座号,stusex 性别 from stu; +-- 2.查询学生信息表(stuinfo)中的姓名,年龄和地址三列的信息 +SELECT stuname 姓名,stuage 年龄,stuaddress 住址 from stu; +-- 3.查询学生分数表(stuexam)中的学号,笔试和机试三列的信息,并为这三列取中文名字 +SELECT stuno 学号,writtenexam 笔试,labexam 机试 from exam; +-- 5.查询学生分数表(stuexam)中的学生的学号,笔试,机试以及总分这四列的信息 +SELECT stuno 学号,writtenexam 笔试,labexam 机试,writtenexam+labexam from exam; +-- 6.查询学生信息表(stuInfo)中学生来自哪几个地方 +SELECT DISTINCT stuaddress from stu; +-- 7.查询学生信息表(stuInfo)中学生有哪几种年龄,并为该列取对应的中文列名 +SELECT DISTINCT stuage 年龄 from stu; +-- 8.查询学生信息表(stuInfo)中前3行记录 +SELECT * from stu LIMIT 3; +-- 9.查询学生信息表(stuInfo)中前4个学生的姓名和座位号 +SELECT stuname,stuseat from stu LIMIT 4; +-- 11.将地址是湖北武汉,年龄是20的学生的所有信息查询出来 +SELECT * from stu where stuaddress = '湖北武汉' and stuage = 20; +-- 12.将机试成绩在60-80之间的信息查询出来,并按照机试成绩降序排列 +SELECT * from exam where labexam BETWEEN 60 and 80 ORDER BY labexam desc; +-- 13.查询来自湖北武汉或者湖南长沙的学生的所有信息 +SELECT * from stu where stuaddress = '湖北武汉' or stuaddress = '湖南长沙'; +-- 14.查询出笔试成绩不在70-90之间的信息,并按照笔试成绩升序排列 +SELECT * from exam where writtenexam not BETWEEN 70 and 90 ORDER BY labexam desc; +-- 15.查询年龄没有写的学生所有信息 +SELECT * from stu where stuage is null; +-- 16.查询年龄写了的学生所有信息 +SELECT * from stu where stuage is --- 8.查询出没有参加考试的学生的信息(用表连接,in二种方法做)(stuMarks) +``` --- 9.将有一门成绩成绩大于90分的学生的基本信息查询出来(stuMarks) --- 10.查询出平均成绩在80分以上的学生的基本信息(stuMarks) --- --- 11.查询出某同学所有考试成绩比“张秋利”同学所有分数都高的学生基本信息(stuMarks) --- --- 12.查询出某同学所有考试成绩只需要比“张秋利”同学某个分数高的学生基本信息(stuMarks) --- --- 13.查询班上比所有男生年龄都要大的女生的信息 --- --- 14.查询出只是比某个男生年龄大的女生的信息 --- \ No newline at end of file diff --git "a/12 \345\217\266\344\277\212\350\275\266/mysql\346\200\235\347\273\264\345\257\274\345\233\276.xmind" "b/12 \345\217\266\344\277\212\350\275\266/mysql\346\200\235\347\273\264\345\257\274\345\233\276.xmind" new file mode 100644 index 0000000000000000000000000000000000000000..7c4787e365ec75fcb9cf8c95de822d8c3ebe1ada Binary files /dev/null and "b/12 \345\217\266\344\277\212\350\275\266/mysql\346\200\235\347\273\264\345\257\274\345\233\276.xmind" differ