表的查询
语法:
SELECT
[DISTINCT] {* | {column [, column] ...}
[FROM table_name]
[WHERE ...]
[ORDER BY column [ASC | DESC], ...]
LIMIT ...
先创建一个表:
1.查找所有列
一般不建议这样写。
2.查找指定列
3.查询字段为表达式
4.别名
为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称.
语法:
select column [AS] alias_name [...] from table_name;
5.针对查询结果进行去重
使用distinct关键字对某列数据进行去重:
6.排序:
使用order by关键字对数据进行排列:
语法:
-- asc 为升序(从小到大)
-- desc 为降序(从大到小)
-- 默认为 asc
select ... form table_name [where ...]
order by column [asc|desc], [...];
(1)没有 order by子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序;
(2)null 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面;
(3)使用表达式及别名排序
(4)可以对多个字段进行排序,排序优先级随书写顺序
7.条件查询where
比较运算符:
运算符 | 说明 |
---|---|
>, >=, <, <= | 大于,大于等于,小于,小于等于 |
= | 等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL |
<=> | 等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1) |
!=, <> | 不等于 |
BETWEEN a0 AND a1 | 范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE(1) |
IN (option, …) | 如果是 option 中的任意一个,返回 TRUE(1) |
IS NULL | 是 NULL |
IS NOT NULL | 不是 NULL |
LIKE | 模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字符 |
AND | 多个条件必须都为 TRUE(1),结果才是 TRUE(1) |
OR | 任意一个条件为 TRUE(1), 结果为 TRUE(1) |
NOT | 条件为 TRUE(1),结果为 FALSE(0) |
注意:
- WHERE条件可以使用表达式,但不能使用别名;
- AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分.
案例:
-
基本查询:
-
and与or:
-
范围查询:
1.between…and…
2.in
-
模糊查询:LIKE
-
NULL 的查询:IS [NOT] NULL
8.分页查询
语法:
-- 从 0 开始,筛选 n 条结果
select ... from table_name [where ...] [order by...] limit n;
-- 从 s 开始,筛选 n 条结果
select ... from table_name [where ...] [order by ...] limit s, n;
-- 从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用
select ... from table_name [where ...] [order by ...] limit n offset s;
案例: