目录
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 语句字段出现的顺序会影响结果集字段出现的顺序。
3 AS(使用别名)
有时,为了方便记忆或书写方便,会使用字段别名 .
例如:SELECT id AS userid,username AS uname FROM users;
注意:AS 可省略,建议写上,避免造成歧义(如SELECT id username FROM users;)
4 WHERE(条件查询)
4.1 简介
WHERE条件表达式:对记录进行过滤,如果没有指定WHERE子句,则显示所有记录。在WHERE表达式中,可以使用MySQL支持的函数或运算符。
4.2 WHERE的使用
例子:SELECT id username FROM users WHERE id>5;
5 GROUP BY (查询结果分组)
5.1 查询结果分组
[GROUP BY {col_name | position} [ASC | DESC], ...]
说明:ASC表示升序,DESC表示降序,存在多个分组条件中间用逗号隔开。
5.2 使用
例一:SELECT sex FROM users GROUP BY sex;
6 HAVING(分组条件)
语法结构:[HAVING where_condition](对某一部分数据进行分组)
错误例子:SELECT sex FROM users GROUP BY sex HAVING age>30;
原因:在采用HAVING分组条件的指定时,分组条件要么是一个聚合函数(求和,平均数,绝对值函数等),要么该条件在当前SELECT语句出现过。
7 ORDER BY(查询结果的排序)
语法结构:对查询结果进行排序
[ORDER BY {col_name | expr | position} [ASC | DESC], ...]
例子:SELECT * FROM users ORDER BY id DESC;(按单个字段排序)
例子:SELECT * FROM users ORDER BY sex,id DESC;(按多个字段进行排序 )
8 LIMIT (限制查询数量)
语法结构:
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
例如:SELECT * FROM users LIMIT 2;
SELECT * FROM users LIMIT 2,2;(注意:a,b a是起始位置从0开始,b是记录个数)