MySQL《多表连接操作2》

1.为授课表添加外键约束FK_Cno,使授课表中的“课程 ”引用课程表中的“课程 ”(同时实现课程表的课程 信息发生更新时,授课表中课程信息也相应更新)。

ALTER TABLE 授课表 ADD CONSTRAINT FK_Cno FOREIGN KEY(课程 ) REFERENCES 课程表(课程 ) ON UPDATE CASCADE;

2.删除授课表的外键约束。

ALTER TABLE 授课表 DROP FOREIGN KEY FK_Cno;

3.给学生表增加一属性:民族,数据类型为varchar(10)。

ALTER TABLE 学生表 ADD COLUMN 民族 varchar(10); ALTER TABLE 学生表 ADD 民族 varchar(10);

4.删除学生表中新增的属性民族。

ALTER TABLE 学生表 DROP COLUMN 民族; ALTER TABLE 学生表 DROP 民族;

5.列出2002年元旦前入学的学生名单。

SELECT 姓名 FROM 学生表 WHERE 入学日期 < ‘2002-01-01’;

6.统计男、女学生各自的“人数”和“平均年龄”。

SELECT 性别,COUNT(*) 人数,AVG(年龄) 平均年龄 FROM 学生表 GROUP BY 性别;

7.找出软件1班,软件2班学生的姓名、性别、年龄。

select 姓名,性别,年龄 from 学生表
where 班级=‘软件1班’ or 班级=‘软件2班’;

8.查询“沈香娜”同学所在班级的所有学生的学 和姓名(如果使用学生表自连接,表别名用S1和S2)。

select s1.学 ,s1.姓名
from 学生表 s1 join 学生表 s2
on s1.班级=s2.班级 and s2.姓名=‘沈香娜’;

9.找出肖一竹所在班级的“学生人数”。

select count(*) 学生人数
from 学生表 s1 join 学生表 s2
on s1.班级=s2.班级 and s2.姓名=‘肖一竹’;

10.列出王文山老师所带的课程名及班级名。

select c.课程名,tc.班级名
from 授课表 tc join 课程表 c
on tc.课程 =c.课程 and tc.教师名=‘王文山’;

11.列出选修了一门以上课程的学生学 ,及其“选修门数”。

select 学 ,count() 选修门数
from 成绩表 group by 学 having
count(
)>1;

12.找出所有没被学生选修了的课程 (DISTINCT如果可以不用则不用)。

select 课程 from 课程表
where 课程 not in (select 课程 from 成绩表);

13.找出选修了课程“高等数学”的“学生人数”(只显示“学生人数”一个字段)。

select count(*) 学生人数
from 成绩表 sc join 课程表 c
on sc.课程 =c.课程 and c.课程名=‘高等数学’;

14.找出计算机学院的成绩为空的学生姓名。

select s.姓名
from 学生表 s join 成绩表 sc
on s.学 =sc.学 and s.所在院系=’计算机’and sc,成绩 is null;

15.统计每一年龄选修课程的“学生人数”(DISTINCT如果可以不用则不用)。

select s.年龄,count(distinct s.学 )学生人数
from 成绩表 sc join 学生表 s
on sc.学 =s.学 group by s.年龄;

16.检索平均成绩最高的学生姓名和所在班级。

SELECT S.姓名,S.班级,AVG(SC.成绩) FROM 学生表 S JOIN 成绩表 SC ON S.学 = SC.学
GROUP BY SC.学 HAVING AVG(成绩) = (

);

文章知识点与官方知识档案匹配,可进一步学习相关知识MySQL入门技能树首页概览31787 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月1日
下一篇 2021年1月1日

相关推荐