三条常用的sql语句

union(联合)

定义: 表和表之间的数据以纵向的方式连接在一起。之前的内连接,外连接都是以横向的方式连接在一起

注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT
语句中的列的顺序必须相同。

SQL UNION 语法

SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
--返回table1的column_name(s)字段和table2的column_name(s)(去重)

注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL

SQL UNION ALL 语法

SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
--返回table1的column_name(s)字段和table2的student字段(不去重)

注释:UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。

order by(排序)

定义:ORDER BY 关键字用于对结果集进行排序。

ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。 ORDER BY 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。

select * from student order by a;
--默认按照升序排序
select * from student order by b,a;
--先按照b排升序,b相同则按照a排升序
select * from student order by b desc,a;
--先按照b排降序,b相同则按照a排升序
select * from student order by b,a desc;
--先按照b排升序,然后按照a排降序
select * from student order by b desc,a desc;
--先按照b排降序,然后按照a排降序
SELECT a,b FROM table ORDER BY a;    
--返回a和b列,并将结果按照a升序排序
SELECT a,b FROM table ORDER BY a,b;  
--返回a和b列,并将结果按a升序排序,如a有重复,则重复部分按b升序排序
SELECT a,b FROM table ORDER BY a DESC, b ASC;
--返回a和b列,并将结果按a降序排序,如a有重复,则重复部分按b升序排序

即 desc 或者 asc 只对它紧跟着的第一个列名有效,其他不受影响,仍然是默认的升序。

join(连接)

定义:JOIN 用于把来自两个或多个表的行结合起来。

内连接(inner join):返回表1和表2满足条件(ON后面的是条件)的全部行。即取满足条件的交集
如果表中有至少一个匹配,则返回行

在这里插入图片描述

SELECT * FROM table1 INNER JOIN table2 ON table1.a=table2.b;SELECT * FROM table1 JOIN table2 ON table1.a=table2.b;
--INNER JOIN 与 JOIN 是相同的。

左连接(left join):返回表1(左表)的全部行以及表2(右表)满足条件的全部行,即取左表+交集,缺失数据用NULL表示
即使右表中没有匹配,也从左表返回所有的行
blob.png

SELECT * FROM table1 LEFT JOIN table2 ON table1.a=table2.b;SELECT * FROM table1 LEFT OUTER JOIN table2 ON table1.a=table2.b;
--在某些数据库中,LEFT JOIN 称为 LEFT OUTER JOIN。

右连接(right join):返回右表全部行和左表满足条件的全部行,即右表+交集,缺失数据用NULL表示
即使左表中没有匹配,也从右表返回所有的行
blob.png

SELECT * FROM table1 RIGHT JOIN table2 ON table1.a=table2.b;SELECT * FROM table1 RIGHT OUTER JOIN table2 ON table1.a=table2.b;
--在某些数据库中,RIGHT JOIN 称为 RIGHT OUTER JOIN。

全连接(full join):FULL OUTER JOIN 关键字结合了 LEFT JOIN 和 RIGHT JOIN 的结果。返回左右表全部行,缺失数据用NULL表示.
只要其中一个表中存在匹配,则返回行
blob.png

SELECT * FROM table1 FULL OUTER JOIN table2 ON table1.a=table2.b;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Atkxor

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值