SQL简单而常用的模板

SQL语句
375
0
0
2022-03-30

SELECT DISTINCT 语句

对于重复的记录,使用关键词 DISTINCT 可返回唯一不同的值。

SELECT DISTINCT 列名 FROM 表名

TOP 子句

TOP 返回前N条数目的记录。(适用大部分数据库系统,如:MSSQL、MySQL 、Oracle 等)

--MSSQL
SELECT TOP N 列名
FROM 表名

--MySQL
SELECT 列名
FROM 表名
LIMIT N

--Oracle 
SELECT 列名
FROM 表名
WHERE ROWNUM <= N

LIKE

用于匹配指定模式的记录。

SELECT 列名
FROM 表名
WHERE 列名 LIKE 匹配条件

IN

筛选出IN子句中限定值的记录

SELECT 列名
FROM 表名
WHERE 列名 IN (值1,值2,...)

BETWEEN

BETWEEN ... AND 会选取介于两个值之间的记录范围。这些值可以是数值、文本或者日期。

SELECT 列名
FROM 表名
WHERE 列名
BETWEEN1 AND2

UNION

合并两个或多个 SELECT 筛选结果集。

注意这些结果集列数目相同、列顺序相同,数据类型相似。

UNION:默认是过滤重复记录

UNION ALL:保留重复的记录

SELECT 列名 FROM 表名
UNION|UNION ALL
SELECT 列名 FROM 表名

SQL连接【重点】

所谓连接就是从不同的数据表中,根据它们之间的关系【显现了关系数据库的特点】,关联得到我们需要的完整结果集。

SQL连接可以分为:内连接[INNER JOIN]、外连接[LEFT JOIN、RIGHT JOIN]、全连接[FULL JOIN]、交叉连接[CROSS JOIN]。

  • INNER JOIN: 列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值
  • LEFT JOIN(左联接): 以左表为基准比较,即使右表中没有匹配,也从左表返回所有的行,某些数据库称LEFT OUTER JOIN
  • RIGHT JOIN(右联接): 以右表为基准比较,即使左表中没有匹配,也从右表返回所有的行,某些数据库称RIGHT OUTER JOIN
  • FULL JOIN: 只要其中一个表中存在匹配,就返回行,另一个表不存在则用空值代替,需要ON条件,某些数据库称FULL OUTER JOIN
  • CROSS JOIN:也称笛卡尔积,返回两个表的所有行记录组合
--INNER JOIN | LEFT JOIN | RIGHT JOIN | FULL JOIN
SELECT 列名
FROM1
INNER JOIN | LEFT JOIN | RIGHT JOIN | FULL JOIN2 
ON1.列名=2.列名

--CROSS JOIN
SELECT 列名 FROM1 CROSS JOIN2

提示:SQL连接使用较多,而且很实用,需要知道各种连接的差异。后面也会进一步的辅以实例说明。

SELECT INTO 语句

从一个表中选取数据,并把数据插入另一个表中。对于备份数据很有效又实用。

SELECT 列名
INTO 新表名
FROM 旧表名	    --可以连接其它表
WHERE 旧表列名=1  --可选

SQL简单而常用的模板理解了才能更好的应用