SQL语句总结3之多表查询

[b][*]使用别名[/b]
FROM tablename1 AS a, tablename2 AS b
注意:ORACLE数据库不支持AS,直接后面加别名

[b][*]内连接-INNER JOIN[/b]
数据库默认的都是INNER JOIN,所以INNER可以省略

SELECT columns
FROM table1 [INNER] JOIN table2
ON condition_statement

[b]说明:[/b]
1.condition可以是table1.column1=table2.column2,也是可以>或者<
2.condition中依然可以实用And, OR之类的操作符
3.内连接返回匹配的数据

[b][*]外连接[/b]
外连接分为左外连接,右外连接,全连接,使用 ** JOIN ON方式,当有LEFT等修饰的时候OUTER可以省略

[b]1.左外连接-LEFT OUTER JOIN[/b]
左外部连接 = 内部连接 + 左边表中失配的元组
以左边的表为中心,左边的表记录一定要显示,右边现实匹配的数据,没有的话,就用NULL值补上

[b]2.右外连接-RIGHT OUTER JOIN[/b]
右外部连接 = 内部连接 + 右边表中失配的元组

[b]3.全外连接-FULL OUTER JOIN[/b]
全外部连接= 内部连接 + 左边表中失配的元组 + 右边表中失配的元组
这个相当于是左外连接+右外连接的并集

[b][*]交叉连接-CROSS JOIN[/b]
没有WHERE子句的交叉连接将产生连接所涉及的表的笛卡尔积
所以,以下表达式返回相同的结果。
SELECT * FROM table1, table2
SELECT * FROM table1 CROSS JOIN table2

[*]UNION运算符以及UNION JOIN
1.UNION用来执行集合并运算
2.UNION JOIN的每行来自一个表的列值以及另外一张表的NULL值
3.SQL SERVER不支持UNOIN JOIN
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值