MySQL内连接和外连接

MySQL内连接和外连接
MySQL的连接种类分为:

内连接:只连接匹配的行
外连接:
    左外连接:连接中左边的表不加限制,在结果集中保留连接表达式左表中非匹配记录。
    右外连接:连接中右边的表不加限制,在结果集中保留连接表达式右表中非匹配记录。
    全外连接:两个表都不加限制,两个表中的行都会包括在结果集中。
自连接:连接操作不只是在不同的表之间进行,一张表中还可以进行自身连接操作,
同一表的不同行连接起来。在连接中,必须为指定的表取别名,使之在逻辑上成为两张表。
交叉连接:两个表之间进行迪卡儿积操作,得到的结果集的行数是两个表的行数的乘积。

如下例子:

student表

(https://img-blog.csdn.net/20160820195649621)

course表

(https://img-blog.csdn.net/20160820195751482)

sc表

(https://img-blog.csdn.net/20160820195843403)

交叉连接:

select A.* , B.* from course A, student B;

(https://img-blog.csdn.net/20160820200024188)

内连接:

(1)内连接的有两种指定条件的方式,一种是在where子句中指定,一种是在from子句中指定。
(2)from后可以跟多个表,表名与表名之间用空格间隔。
(3)当连接类型在where子句中指定是,where后一定要有连接条件表达式,即两个表的公共字段相等。
(4)若不定义别名,表的别名默认为表名,定义别名后使用定义的别名。
(5)若在输出列或条件表达式中出现两个表的公共字段,则在公共字段名前必须加别名。
(6)在省略inner字段时,默认是内连接。

输出所有女学生的学号,姓名,课程号及成绩(方式一)

select A.sno , sname, cno,  degree from student A, sc B where A.sno = B.sno and  ssex = '女';

(https://img-blog.csdn.net/20160820201929339)
方式二

select A.sno, sname, cno, degree from student A inner join sc B on A.sno = B.sno where ssex = '女';

(https://img-blog.csdn.net/20160820202352165)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值