天天看点

sql leftjoin 如果为空不关联_SQL简单而常用的模板

SELECT DISTINCT 语句

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

SELECT DISTINCT 列名 FROM 表名
           

TOP 子句

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

--MSSQLSELECT TOP N 列名FROM 表名--MySQLSELECT 列名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 列名BETWEEN 值1 AND 值2
           

UNION

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

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

UNION:默认是过滤重复记录

UNION ALL:保留重复的记录

SELECT 列名 FROM 表名UNION|UNION ALLSELECT 列名 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 JOINSELECT 列名FROM 表1INNER JOIN | LEFT JOIN | RIGHT JOIN | FULL JOIN 表2 ON 表1.列名=表2.列名--CROSS JOINSELECT 列名 FROM 表1 CROSS JOIN 表2
           

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

SELECT INTO 语句

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

SELECT 列名INTO 新表名FROM 旧表名    --可以连接其它表WHERE 旧表列名=值1  --可选
           
sql leftjoin 如果为空不关联_SQL简单而常用的模板

理解了才能更好的应用