目录
1 SELECT语法
查找记录:
SELECT select_expr [,select_expr ...]
[
FROM table_references
[WHERE where_condition]
[GROUP BY {col_name | position} [ASC | DESC], ...]
[HAVING where_condition]
[ORDER BY {col_name | expr | position} [ASC | DESC], ...]
[LIMIT {[offset,]} row_count | row_count OFFSET offset]
]
查询表达式:
(1)每一个表达式表示想要的一列,必须有至少一个。
(2)多个列之间以英文逗号分隔。
(3)* (星号)表示所有列。tbl_name.*可以表示命名表的所有列。
(4)查询表达式可以使用[ AS ] alias_name为其赋予别名。
(5)别名可用于GROUP BY , ORDER BY 或HAVING字句。
2 查询多列数据
2.1 field
SELECT id,username FROM users;
2.2 table.field
SELECT users.id,users.username FROM users;
注意:①使用多表连接时,可能会出现不同的表出现相同的字段,这时需要使用方法二。
②SELECT 语句字段出现的顺序会影响结果集字段出现的顺序。
![](https://i-blog.csdnimg.cn/blog_migrate/ccfc5a109d9fee5af76128291f83a448.png)
3 AS(使用别名)
有时,为了方便记忆或书写方便,会使用字段别名 .
例如:SELECT id AS userid,username AS uname FROM users;
注意:AS 可省略,建议写上,避免造成歧义(如SELECT id username FROM users;)
![](https://i-blog.csdnimg.cn/blog_migrate/8cd1815a22ec0e5def8859e2f7a9b7dc.png)
4 WHERE(条件查询)
4.1 简介
WHERE条件表达式:对记录进行过滤,如果没有指定WHERE子句,则显示所有记录。在WHERE表达式中,可以使用MySQL支持的函数或运算符。
4.2 WHERE的使用
例子:SELECT id username FROM users WHERE id>5;
![](https://i-blog.csdnimg.cn/blog_migrate/7821c3b748562b51a6b3338b401934b5.png)
5 GROUP BY (查询结果分组)
5.1 查询结果分组
[GROUP BY {col_name | position} [ASC | DESC], ...]
说明:ASC表示升序,DESC表示降序,存在多个分组条件中间用逗号隔开。
5.2 使用
例一:SELECT sex FROM users GROUP BY sex;
![](https://i-blog.csdnimg.cn/blog_migrate/3d59d32893f0d3631e3291ef17753b8e.png)
6 HAVING(分组条件)
语法结构:[HAVING where_condition](对某一部分数据进行分组)
错误例子:SELECT sex FROM users GROUP BY sex HAVING age>30;
原因:在采用HAVING分组条件的指定时,分组条件要么是一个聚合函数(求和,平均数,绝对值函数等),要么该条件在当前SELECT语句出现过。
![](https://i-blog.csdnimg.cn/blog_migrate/9b017f65c9f8011ccbb965b483b98690.png)
7 ORDER BY(查询结果的排序)
语法结构:对查询结果进行排序
[ORDER BY {col_name | expr | position} [ASC | DESC], ...]
例子:SELECT * FROM users ORDER BY id DESC;(按单个字段排序)
![](https://i-blog.csdnimg.cn/blog_migrate/51e0cad71d73ac4198303eab6da071de.png)
例子:SELECT * FROM users ORDER BY sex,id DESC;(按多个字段进行排序 )
![](https://i-blog.csdnimg.cn/blog_migrate/b8804d37123be5b44ba8c13aa2708045.png)
8 LIMIT (限制查询数量)
语法结构:
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
例如:SELECT * FROM users LIMIT 2;
![](https://i-blog.csdnimg.cn/blog_migrate/81848678e85bb37ab2e3d2e8b2525b15.png)
SELECT * FROM users LIMIT 2,2;(注意:a,b a是起始位置从0开始,b是记录个数)
![](https://i-blog.csdnimg.cn/blog_migrate/92a19bf98f1cca99ae0380c138758daf.png)