【第二章】从单一表格中检索数据
前言
单一表中SELECT语句的使用以及一些关键字
一、SELECT语句以及一些关键字
SELECT语句基本格式
SELECT */【distinct】目标列表达式 AS 别名
FROM 表名或视图名或者(select语句)as 表名(属性)
WHERE 条件表达式
GROUP BY 列名 【having 条件表达式】
ORDER BY 列名 【asc|desc】
WHERE子句
WHERE 是行筛选条件,实际是一行一行/一条条记录依次验证是否符合条件,进行筛选。其中优先级是学运算>比较运算>逻辑运算。
WHERE也可以对日期或者文本进行比较运算,文本字符串通过比较按顺序比较每个字母的Ascll码表,日期视为’特殊’的字符串,需用单引号或者双引号包裹
逻辑表达式AND,OR,NOT
逻辑运算符 | 意义 |
---|---|
AND | 双值运算符,如果左右两个条件都为真,则得到的值就为真 |
OR | 双值运算符,只要左右两个条件有一个为真,则得到的值就为真 |
NOT | 单值表达式,若原条件为真,则得到假,若原条件为假,则得到真 |
其中优先级NOT>AND>OR
IN运算符
IN运算符将某一属性与多个值(一系列值)进行比较
实质是多重相等比较运算条件的简化
BETWEEN运算符
BETWEEN X AND Y
等同于x<=?<=y
本质也是一种特定的 多重比较运算条件 的简化
LIKE运算符
模糊查找,查找具有某种模式的字符串的记录/行
具有两种通配符:
- % 代表任意数量的字符(不为负,包含零)
- _ 代表一个字符
REGEXP运算符
正则表达式相当于强化版的like
一些常用的通配符
通配符 | 意义 |
---|---|
^ | 字符必须以^后字符为开头 |
$ | 字符必须以^后字符为结尾 |
[abc] | 含abc中任意一个 |
[a-h] | 含a到h中任意一个 |
| | 等同于OR |
IS NULL运算符
找出空值,找出有某些属性缺失的记录
ORDER BY子句
排序语句
- 可多列 可以是列间的数学表达式
- 可包括任何列,包括没被SELECT语句选择的列(MySQL特性,其它DBMS可能报错)
- 可以是之前定义好的别名列(MySQL特性,甚至可以是用一个常数设置的列别名)
- 任何一个排序依据列后面都可选加 DES
LIMIT子句
限制返回结果的记录数量,‘前N个’ 或 ‘跳过M个后的前N个’
LIMIT N
LIMIT M,N
二、注意
SQL会完全无视大小写(绝大数情况下的大小写)、多余的空格(超过一个的空格)、缩进和换行,SQL语句间完全由分号 ; 分割
总结
需牢记各种关键字的用法,忘记其实也没关系,需要的时候查一下官网,但是牢记总是好很多