SQL连接查询

等值连接

查询每个学生及其选修课程的情况

SELECT student.*, sc.*
FROM student, sc
WHERE student.`Sno`=sc.`Sno`;

image-20220217095109053

对上例进行自然连接,消除重复Sno列

SELECT student.*, sc.`Cno`, sc.`Grade`
FROM student, sc
WHERE student.`Sno`=sc.`Sno`;

image-20220217095047690

自身连接

需要给表起别名以示区别

查询每一门课的间接先修课(即先修课的先修课)

SELECT first.`Cname`, second.`Cname` CproName 
FROM course FIRST, course SECOND
WHERE first.`Cpno`=second.`Cno`;

image-20220217095432590

外连接

外连接操作以指定表为连接主体,将主体表中不满足连接条件的 元组一并输出

使用外连接查询每个学生及其选修课程的情况

SELECT student.*, sc.`Cno`, sc.`Grade`
FROM student LEFT OUTER JOIN sc ON student.`Sno`=sc.`Sno`;

image-20220217100010141

复合条件连接

WHERE 子句中含多个连接条件

查询选修 2 号课程且成绩在 90 分以上的所有学生的学号和姓名

SELECT student.`Sno`, student.`Sname`
FROM student, sc
WHERE student.`Sno`=sc.`Sno` AND sc.`Cno`='2' AND sc.`Grade`>=90;

image-20220217131700449

查询每个学生的学号、姓名、选修的课程名及成 绩

SELECT student.`Sno`, student.`Sname`, course.`Cname`, sc.`Grade`
FROM student, course, sc
WHERE student.`Sno`=sc.`Sno` AND sc.`Cno`=course.`Cno`;

image-20220217131936125

posted @   dctwan  阅读(156)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示