SELECT-数据表的基础查询
记录查询-SELECT
- 最基本的查询语句是由SELECT和FROM关键字组成
# 查找表的所有数据
SELECT * FROM 表名;
# 查找表的某一列或者某些列的数据
SELECT 列1,列2,... FROM 表名
- SELECT 语句屏蔽了物理层的操作,用户不必关心数据数据真实存储,交由数据库高效的查找数据
使用列别名-AS
通常情况下,SELECT子句中使用了表达式,那么这个列的名字就默认为表达式,因此需要一种对列名重命名的机制
SELECT name AS "名字" FROM 表名;
SELECT
empno,
sal*12 AS "income"
FROM t_emp;
数据分页-LIMIT
- 比如我们查看朋友圈,只会加载少量部分信息,不用一次性加载全部朋友圈,那样只会浪费CPU时间、内存和网络带宽
- 如果结果集的记录很多,则可以使用LIMIT关键字限定结果集数量。
- 如果LIMIT子句只有一个参数,它表示的是偏移量,起始位置默认为0
SELECT ... FROM ... LIMIT 起始位置,偏移量;
# 示例:显示从0开始, 20条数据
SELECT empno,ename FROM t_emp LIMIT 0,20;
# 简写
SELECT empno,ename FROM t_emp LIMIT 20;
对查询结果集排序-ORDER BY
如果没有设置,查询语句不会对结果集进行排序。
若想让结果集按照某种顺序排序,就必须使用ORDER BY子句。
SELECT ... FROM ... ORDER BY 列名 [ASC|DESC];
# ASC表示升序 DESC表示降序 默认为升序。
/*
排序规则:
如果排序列是数字类型,数据库就按照数字大小排序
日期类型,按照日期大小排序
字符型,按照字符集序号排序
*/
删除结果集中的重复记录-DISTINCT
- 如果需要删除重复的数据,可以使用DISTINCT关键字实现
- 使用DISTINCT的SELECT子句中只能查询一列数据,如果查询多列,去除重复记录就会失效
SELECT DISTINCT 字段 FROM ...;
# 不会删除表中的记录
条件查询-WHERE
如果要查询的数据能够满足一种或者多种条件,这类条件可以使用where子句来实现数据筛选
WHERE子句中,条件执行的顺序是从左到右的。所以应该把筛选掉记录最多的条件写在最左侧
SELECT ... FROM ... WHERE 条件 [AND|OR] 条件...;
WHERE条件运算四种运算符
| 序号 | 运算符 |
|---|---|
| 1 | 数学运算符 |
| 2 | 比较运算符 |
| 3 | 逻辑运算符 |
| 4 | 按位运算符 |
算数运算符
| 表达式 | 意义 | 例子 |
|---|---|---|
| + | 加法 | 1+1 |
| - | 减法 | 2-1 |
| * | 乘法 | 1*2 |
| / | 除法 | 1/2 |
| % | 取模 | 10/2 |
比较运算符
| 表达式 | 意义 | 例子 |
|---|---|---|
| > | 大于 | age > 18 |
| >= | 大于等于 | age >= 18 |
| < | 小于 | age < 18 |
| <= | 小于等于 | age <= 18 |
| = | 等于 | age = 18 |
| != | 不等于 | age != 18 |
| IN | 包含 | age IN(10,20,30) |
| IS NULL | 为空 | comm IS NULL |
| IS NOT NULL | 不为空 | comm IS NOT NULL |
| BETWEEN AND | 范围 | age BETWEEN 18 AND 20 |
| LIKE | 模糊查询 | name LIKE "A%" |
| REGEXP | 正则表达式 | name REGEXP "[A-Z]{4}" |
逻辑运算符
| 表达式 | 意义 | 例子 |
|---|---|---|
| AND | 与关系 | age > 18 AND sex = "男" |
| OR | 或关系 | age > 18 OR sex = "男" |
| NOT | 非关系 | NOT age = 20 |
| XOR | 异或关系 | age > 18 XOR sex = "男" |
异或关系,如果两个条件都成立或者不成立,结果都为false,如果有一个成立,一个不成立,结果为true
按位运算
| 表达式 | 意义 | 例子 |
|---|---|---|
| & | 位与关系 | 3&7 |
| | | 位或关系 | 3|7 |
| ~ | 位取反 | ~10 |
| ^ | 位异或 | 3^7 |
| << | 左移 | 10 << 1 |
| >> | 右移 | 10 >> 1 |
浙公网安备 33010602011771号