格式顺序
格式顺序:
select
from
where
group by
having
order by
limit
书写格式顺序
(1) SELECT (2)DISTINCT<select_list>
(3) FROM <left_table>
(4) <join_type> JOIN <right_table>
(5) ON <join_condition>
(6) WHERE <where_condition>
(7) GROUP BY <group_by_list>
(8) WITH {CUBE|ROLLUP}
(9) HAVING <having_condition>
(10) ORDER BY <order_by_condition>
(11) LIMIT <limit_number>
sql语句执行顺序
(8) SELECT (9)DISTINCT<select_list>
(1) FROM <left_table>
(3) <join_type> JOIN <right_table>
(2) ON <join_condition>
(4) WHERE <where_condition>
(5) GROUP BY <group_by_list>
(6) WITH {CUBE|ROLLUP}
(7) HAVING <having_condition>
(10) ORDER BY <order_by_list>
(11) LIMIT <limit_number>
数字类型column
如果where后面的column跟的是数字类型
符号 | 意义 |
---|---|
<,<=,>,>=,=,!= | 小于,小于等于,大于,大于等于,等于,不等于 |
BETWEEN…AND… | 介于多少和多少之间 |
NOT BETWEEN…AND… | 不在多少和多少之间 |
IN… | 在数字集合()中 |
NOT IN… | 不在数字集合()中 |
字符串类型column
如果where后面跟的column是如字符串等文本类型
符号 | 意义 |
---|---|
= | 等于 |
!= or <> | 不等于 |
LIKE | 没有用通配符等价于= |
NOT LIKE | 没有用通配符等价于!= |
% | 通配符,表示匹配0个以上字符 ,模糊匹配 |
- | 匹配1个字符,模糊匹配 |
IN… | 在字符集合()中 |
NOT IN… | 不在字符集合()中 |
举个栗子:
select * from table where column like “%feng”
表示可以匹配字符串feng前面可以包含多个字符
如feng,dfeng,ssdfeng,xfeng等等
Filtering讨滤和sorting排序
DISTINCT关键字
DISTINCT关键字来指定某个或某些属性列唯一返回。
选取出唯一的结果的语法
SELECT DISTINCT column ,another_column , …
FROM table1
WHERE condition(s);
例如,要从学生表中查询所有学生姓名的值,
-使用DISTINCT关键词去除重复的学生信息
select distinct StuName from Student
排序
操作关键字 | 解释 | 例子 |
---|---|---|
ORDER BY col ASC/DESC | 多列升序或者降序排序 | ORDER BY col1 ASC,col2 DESC |
LIMIT OFFSET | 从offset取limit | LIMIT num_limit OFFSET num_offset |
LIMIT和OFFSET子句通常和ORDER BY 语句一起使用
需要对结果rows排序和筛选部分rows
SELECT column, another_column, …
FROM table2
WHERE condition ( s)
ORDER BY column ASC/DESC
LIMIT num__limit长度 OFFSET num_offset取的起点;
LIMIT 4 OFFSET 6 (表示 从6开始取长度为4的结果)