From c7142e99bd36f712167c4c386fb9894ea693136b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E6=AD=A3=E6=B3=A2?= <1938448998@qq.com> Date: Mon, 20 Mar 2023 22:20:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=89=E6=9C=88=E5=8D=81=E4=B8=83=E6=97=A5?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...33\347\217\255\344\270\211\347\273\204.md" | 198 ++++++++++++++++++ 1 file changed, 198 insertions(+) create mode 100644 "09 \346\233\271\346\255\243\346\263\242/20230317 MySQL\346\225\260\346\215\256\345\272\223\345\233\233\347\217\255\344\270\211\347\273\204.md" diff --git "a/09 \346\233\271\346\255\243\346\263\242/20230317 MySQL\346\225\260\346\215\256\345\272\223\345\233\233\347\217\255\344\270\211\347\273\204.md" "b/09 \346\233\271\346\255\243\346\263\242/20230317 MySQL\346\225\260\346\215\256\345\272\223\345\233\233\347\217\255\344\270\211\347\273\204.md" new file mode 100644 index 0000000..fc5dbbb --- /dev/null +++ "b/09 \346\233\271\346\255\243\346\263\242/20230317 MySQL\346\225\260\346\215\256\345\272\223\345\233\233\347\217\255\344\270\211\347\273\204.md" @@ -0,0 +1,198 @@ +# 作业 + +create database mtyk charset utf8; +use mtyk; +create table j_TEACHER( +Tno int primary key auto_increment, +Tname varchar(10) unique +); +insert into j_TEACHER values +(1,'张老师'), +(2,'王老师'), +(3,'李老师'), +(4,'赵老师'), +(5,'刘老师'), +(6,'向老师'), +(7,'李文静'), +(8,'叶平'); +drop table j_STUDENT; +drop table j_COURSE; +drop table j_SCORE; + +create table j_STUDENT( +Sno int primary key auto_increment, +Sname varchar(10) unique, +Sage datetime, +Ssex enum('男','女') + +); +-- 学生表 +insert into j_STUDENT VALUES +(1,'张三','1980-1-23 00:00;00','男'), +(2,'李四','1982-12-12 00:00:00','男'), +(3,'张飒','1981-9-9 00:00:00','男'), +(4,'莉莉','1983-3-23 00:00:00','女'), +(5,'王弼','1982-6-21 00:00:00','男'), +(6,'王丽','1984-10-10 00:00:00','女'), +(7,'刘香','1980-12-22 00:00:00','女'); +create table j_COURSE( +Cno int primary key auto_increment, +Cname varchar(10) unique, +Tno int, +foreign key(Tno) references j_TEACHER(Tno) + +); +-- 课程表 +insert into j_COURSE VALUES +(1,'企业管理',3), +(2,'马克思',1), +(3,'美团盈开',2), +(4,'数据库',5), +(5,'物理',8); +create table j_SCORE( +Sno int, +foreign key(Sno) references j_STUDENT(Sno), +Cno int, +foreign key(Cno) references j_COURSE(Cno), +Score int + +); + +-- 成绩表 +insert into j_SCORE VALUES +(1,1,80), +(1,2,86), +(1,3,83), +(1,4,89), +(2,1,50), +(2,2,36), +(2,3,43), +(2,4,59), +(3,1,50), +(3,2,96), +(3,3,73), +(3,4,69), +(4,1,90), +(4,2,36), +(4,3,88), +(4,4,99), +(5,1,90), +(5,2,96), +(5,3,98), +(5,4,99), +(6,1,70), +(6,2,55), +(6,3,58), +(6,4,79), +(7,1,80), +(7,2,76), +(7,3,68), +(7,4,59), +(7,5,89); +-- 1、 修改刘香的美团盈开课程成绩为100分 +update j_SCORE set score=100 +where + sno in (select sno from j_STUDENT where Sname='刘香') + and + cno in (select cno from j_COURSE where cname='美团盈开'); +-- 2、 将学生表中的sage段放在ssex段后面 +alter table j_STUDENT modify sage datetime after ssex; +-- 3、 教师表添加一个用于统计状态的列 名字为now 默认值为有课 +alter table j_TEACHER add now varchar(10) default'有课'; +-- 4、 将没有上课的老师的now列值设置为无课 +update j_TEACHER set now='无课' +where + tno not in (select tno from j_COURSE); +-- 5、 修改课程表中的企业管理为比遛旺 +update j_COURSE set cname='比遛旺' +where + cname='企业管理'; +-- 6、 查询课程1的成绩比课程2的成绩 高 的所有学生的学号。 +select + a.sno +from (select * from j_SCORE where cno=1) a,(select * from j_SCORE where cno=2) b +where + a.Sno=b.Sno and a.score>b.score; +-- 7、 查询平均成绩大于60分的同学的学号和平均成绩。 +select + sno,avg(score) +from j_SCORE +group by sno +having avg(score)>60; +-- 8、 查询所有同学的学号、姓名、选课数、总成绩 +select + a.Sno,a.Sname,count(b.sno),sum(score) +from j_STUDENT a inner join J_SCORE b inner join J_COURSE c on +a.Sno=b.Sno and b.Cno=c.Cno +group by b.sno; +-- 9、 查询姓“李”的学生的个数。 +select + count(sname) +from j_STUDENT +where + sname like '李%'; +-- 10、 查询没学过“叶平”老师课的同学的学号、姓名。 +select + a.Sno,a.Sname +from j_STUDENT a inner join J_SCORE b inner join J_COURSE c on +a.Sno=b.Sno and b.Cno=c.Cno +where + b.sno!=(select sno from J_SCORE where Cno=(select cno from j_TEACHER a inner join J_COURSE b on a.Tno=b.Tno where tname='叶平')); +-- 11、 查询同时学过课程1和课程2的同学的学号、姓名。 +select + sno,cno +from J_SCORE a +where +a.Cno in(1,2); +-- 12、 查询学过“叶平”老师所教所有课程的所有同学的学号、姓名。 +select + a.Sno,a.Sname +from j_STUDENT a inner join J_SCORE b inner join J_COURSE c on +a.Sno=b.Sno and b.Cno=c.Cno +where + b.Cno=(select cno from j_TEACHER a inner join J_COURSE b on a.Tno=b.Tno where tname='叶平'); +-- 13、 查询 课程编号1的成绩 比 课程编号2的成绩 高的所有同学的学号、姓名。 +select + a.sno,sname +from (select * from j_SCORE where cno=1) a,(select * from j_SCORE where cno=2) b inner join j_STUDENT c on +b.sno=c.sno +where + a.Sno=b.Sno and a.score>b.score; +-- 14、 查询所有课程成绩小于60分的同学的学号、姓名 +select + a.Sno,a.Sname,score +from j_STUDENT a inner join J_SCORE b inner join J_COURSE c on +a.Sno=b.Sno and b.Cno=c.Cno +group by a.sno +having b.score<60; +-- 15、 查询所有课程成绩大于60分的同学的学号、姓名。 + +-- 16、 查询没有学全所有课的同学的学号、姓名 + +-- 17、 查询至少有一门课程 与 学号为1的同学所学课程 相同的同学的学号和姓名 + +-- 18、 查询和2号同学学习的课程完全相同的其他同学学号和姓名。 + +-- 19、 查询各科成绩最高分和最低分。 + +-- 20、 查询每门课程被选修的学生数。 + +-- 21、 查询出只选修了一门课程的全部学生的学号和姓名。 + +-- 22、 查询同名同性学生名单,并统计同名人数。 + +-- 23、 查询选修“叶平”老师所授课程的学生中,成绩最高的学生姓名及其成绩 +。 +-- 24、 查询不同课程成绩相同的学生的学号、课程号、学生成绩。 + +-- 25、 查询每门课程成绩最好的前两名的学生ID + +-- 26、 检索至少选修了5门课程的学生学号。 + +-- 27、 查询没学过“叶平”老师讲授的任一门课程的学生姓名。 + +-- 28、 查询两门以上不及格课程的同学的学号及其平均成绩。 + +-- 29、 查询最受欢迎的老师(选修学生最多的老师)。 + +-- 30、 修改课程表名为给乱给要酒要 \ No newline at end of file -- Gitee