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

posted on 2021-02-16 21:01  C_yuyan  阅读(155)  评论(0)    收藏  举报