数据库的WHERE子句

1.概述

WHERE 子句用于提取那些满足指定条件的记录。

2. WHERE 语法

SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;

operator表示where子句中的运算符

3.LIKE 操作符

3.1. 概述

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

3.2. LIKE 语法

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;

3.3. 实例

下面的 SQL 语句选取 name 以字母 "G" 开始的所有客户:

SELECT * FROM Websites
WHERE name LIKE 'G%';

提示:"%" 符号用于在模式的前后定义通配符。

4. 通配符

4.1. 概述

在 SQL 中,通配符与 SQL LIKE 操作符一起使用。
SQL 通配符用于搜索表中的数据。
在 SQL 中,可使用以下通配符:
数据库的WHERE子句_第1张图片

5. IN 操作符

5.1. 概述

IN 操作符允许您在 WHERE 子句中规定多个值。

5.2. IN 语法

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);

5.3. 实例

下面的 SQL 语句选取 name 为 "Google" 或 "菜鸟教程" 的所有网站:

SELECT * FROM Websites
WHERE name IN ('Google','菜鸟教程');

6. BETWEEN 操作符

6.1. 概述

BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。

6.2. BETWEEN 语法

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

7.ORDER BY 关键字

7.1. 概述

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

7.2. 语法

SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC;

ASC:表示升序(从小到大),可省略
DESC:表示降序(从大到小),不可省略

7.3.连接(JOIN)

7.3.1. 概述

join 用于把来自两个或多个表的行结合起来。
下图展示了 LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相关的 7 种用法。

不同的SQL JOIN

  • INNER JOIN:如果表中有至少一个匹配,则返回行
  • LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
  • RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
  • FULL JOIN:只要其中一个表中存在匹配,则返回行

7.3.2. INNER JOIN 语法

INNER JOIN 关键字在表中存在至少一个匹配时返回行。

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;

SELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name=table2.column_name

注释:INNER JOIN 与 JOIN 是相同的。
数据库的WHERE子句_第2张图片

7.3.3. LEFT JOIN 语法

LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;

SELECT column_name(s)
FROM table1
LEFT OUTER JOIN table2
ON table1.column_name=table2.column_name;

注释:在某些数据库中,LEFT JOIN 称为 LEFT OUTER JOIN。
数据库的WHERE子句_第3张图片

7.3.4. RIGHT JOIN 语法

RIGHT JOIN 关键字从右表(table2)返回所有的行,即使左表(table1)中没有匹配。如果左表中没有匹配,则结果为 NULL。

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;

SELECT column_name(s)
FROM table1
RIGHT OUTER JOIN table2
ON table1.column_name=table2.column_name;

注释:在某些数据库中,RIGHT JOIN 称为 RIGHT OUTER JOIN。
数据库的WHERE子句_第4张图片
7.3.5.FULL OUTER JOIN 语法

FULL OUTER JOIN 关键字只要左表(table1)和右表(table2)其中一个表中存在匹配,则返回行。FULL OUTER JOIN 关键字结合了 LEFT JOIN 和 RIGHT JOIN 的结果。

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;

数据库的WHERE子句_第5张图片

8. UNION 操作符

8.1. 概述

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。

8.2. UNION 语法

SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

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

8.3.UNION ALL 语法

SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;

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

你可能感兴趣的:(sql后端)