连接查询

 

  • 连接条件或连接谓词:用来连接两个表的条件
  • 一般格式:
  •  [< 表名1>.]< 列名1> < 比较运算符> [< 表名2>.]< 列名2>

 

等值连接:连接运算符为  “= ”

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

SELECT
    Student.*,
    SC.* 
FROM
    Student,
    SC 
WHERE
    Student.Sno = SC.Sno;

 


 

非等值连接查询

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

SELECT
    Student.Sno,
    Sname 
FROM
    Student,
    SC 
WHERE
    Student.Sno = SC.Sno 
    AND SC.Cno = ' 2 ' 
    AND SC.Grade > 90;

 

 自身连接 : 一个表与其自己进行连接,是一种特殊的连接

  • 需要给表起别名以示区别
  • 由于所有属性名都是同名属性,因此必须使用别名前缀
SELECT first.访客数,second.下单买家数
FROM
    `飞鸟_访客分布_地域` FIRST,
    `飞鸟_访客分布_地域` SECOND 
WHERE
    FIRST.id = SECOND.id;

 

 


 

外连接

  • 普通连接操作只输出满足连接条件的元组
  • 外连接操作以指定表为连接主体,将主体表中不满足连
  • 接条件的元组一并输出
  •  左外连接
    • 列出左边关系中所有的元组
  •  右外连接
    • 列出右边关系中所有的元组
SELECT
    Student.Sno,
    Sname,
    Ssex,
    Sage,
    Sdept,
    Cno,
    Grade 
FROM
    Student
    LEFT OUT JOIN SC ON ( Student.Sno = SC.Sno );

 

 


 

多表连接

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

SELECT
    Student.Sno,
    Sname,
    Cname,
    Grade 
FROM
    Student,
    SC,
    Course /* 多表连接*/
    
WHERE
    Student.Sno = SC.Sno 
    AND SC.Cno = Course.Cno;

 

转载于:https://www.cnblogs.com/sjfx666/p/9317307.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值