SQL结构化查询语句(Structure Query Language)包括DDL数据定义语言(Data Definition Language)、DML数据操作语言(Data Manipulation Language)和DCL数据控制语言(Data Control Language)。
DDL包括create、frop、alter、truncate语句
DML包括增insert 删delete truncate 改replace updata 查select
DCL包括grant revoke
本文讨论下SELECT语句和写SQL语句的注意事项
1.select语句
select @@autoincrement 查找变量
SELECT *|{[DISTINCT] column|select_expr [alias], ...]} [FROM [database.]table]
{}大括号表示里面的内容必须写一个
[]中括号表示里面的内容是可选的
| 表示二选一
, …表示前面的内容可重复若干个
小写字母表示此处应该使用实际的名称
*表示任意字段
DISTINCT表示对查询的结果去重
[alias] 别名
#查询所有字段
# 使用别名
2.where子句
where condition 需要配合select语句使用condition为条件,又称过滤条件
#不能在WHERE子句中使用列别名
3.order by子句
[ORDER BY {column, expr, numeric_position} [ASC|DESC]];
需与select语句使用ASC升序,DESC降序,默认升序、
4.组函数
组函数又叫聚集函数,它在一个行的集合上操作,对每个组给出一个结果
常见组函数
AVG([DISTINCT] expr) :求平均值
COUNT({*|[DISTINCT] } expr) :统计行的数量
MAX([DISTINCT] expr) :求最大值
MIN([DISTINCT] expr) :求最小值
SUM([DISTINCT] expr) :求累加和
#组函数之间不允许嵌套使用,可以是函数表达式,可出现多个聚集函数
GROUP_CONCAT()函数
5.HAVING子句
[HAVING where_condition] 专门用来对分组后的结果进行过滤
HAVING子句中可以使用组函数,where不可以和组函数搭配使用
6.多表连接查询
SELECT paymentno, pen.playerno, amount,NAME
FROM penalties pen, players p
WHERE pen.playerno = p.playerno;
7.子查询