一、SELECT语句的功能
SELECT 语句从数据库中返回信息。使用一个 SELECT 语句,可以做 下面的事:
1.1 列选择
列选择:能够使用 SELECT 语句的列选择功能选择表中的列,这些列是想要用查询返回的。当查询时,能够返回列中的数据。
1.2 行选择
行选择:能够使用 SELECT 语句的行选择功能选择表中的行,这些行是想要用查询返回的。能够使用不同的标准限制看见的行。
1.3 连接
连接:能够使用 SELECT 语句的连接功能来集合数据,这些数据被存储在不同的表中,在它们之间可以创建连接,查询出我们所关心的数据。
二、SELECT基本语法
在最简单的形式中,SELECT 语句必须包含下面的内容:
- 一个 SELECT 子句,指定被显示的列
- 一个 FROM 子句,指定表,该表包含 SELECT 子句中的字段列表
三、SELECT查询操作
3.1 列查询
①所有列
用跟在 SELECT 关键字后面的星号 (*),你能够显示表中数据的所有列。
②指定列
能够用 SELECT 语句来显示表的指定列,指定列名之间用逗号分隔。
3.2 查询中的算术表达式
需要修改数据显示方式,如执行计算,或者作假定推测,这些都可能用到算术表达式。一个算术表达式可以包含列名、固定的数字值和算术运算符。
如果算术表达式包含有一个以上的运算,乘法和除法先计算。如果在一个表达式中的运算符优先级相同,计算从左到右进行。可以用圆括号强制其中的表达式先计算。
算术表达式中的空值
如果一行中的某个列缺少数据值,该值被置为 null, 或者说包含一个空。 空是一个难以获得的、未分配的、未知的,或不适用的值。空和 0 或者空格不相同。 0 是一个数字,而空格是一个字符。
3.3 别名
AS 关键字可省略
①列别名
SELECT 列名 AS 列别名 FROM 表名 WHERE 条件;
或者
SELECT 列名 列别名 FROM 表名 WHERE 条件;
②表别名
SELECT 表别名.列名 FROM 表名 AS 表别名 WHERE 条件;
或者
SELECT 表别名.列名 FROM 表名 表别名 WHERE 条件;
3.4 去除重复的行
SELECT DISTINCT 列名 FROM 表名;
3.5 行选择(where子句)
用 WHERE 子句限制从查询返回的行。一个 WHERE 子句包含一个必须满足的条件,WHERE 子句紧跟着 FROM 子句。如果条件是 true,返回满足条件的行。
在语法中:
SELECT * | 投影列 FROM 表名 WHERE 选择条件;
- WHERE 限制查询满足条件的行
- 选择条件 由列名、表达式、常数和比较操作组成
where子句中经常使用的运算符:
3.6 比较条件
符号 != 也能够表示不等于条件。
①使用 between ...and...
可以用 BETWEEN 范围条件显示基于一个值范围的行。指定的范围包含一个下限和一个上限。
②使用 in
③使用like
④使用NULL
NULL 条件,包括 IS NULL 条件和 IS NOT NULL 条件。
IS NULL 条件用于空值测试。空值的意思是难以获得的、未指定的、未知的或者不适用的。因此,你不能用 = ,因为 null 不能等于或不等于任何值。
⑤逻辑条件
逻辑条件组合两个比较条件的结果来产生一个基于这些条件的单个的结果,或者逆转一个单个条件的结果。当所有条件的结果为真时,返回行。
SQL 的三个逻辑运算符是:
- AND
- OR
- NOT
可以在 WHERE 子句中用 AND 和 OR 运算符使用多个条件。
⑥优先规则
⑦排序(ORDER BY)
在一个不明确的查询结果中排序返回的行。ORDER BY 子句用于排 序。如果使用了 ORDER BY 子句,它必须位于 SQL 语句的最后。
别名排序
多列排序
3.7 SELECT 语句的执行顺序
- FROM 子句
- WHERE 子句
- SELECT 子句
- ORDER BY 子句