外观
组函数
组函数
min()取最小值
max()取最大值
avg()取平均值
count()统计非空行数
sum()求和
round()四舍五入
group by分组
在select语句之后的列除非使用了组函数处理,否则它必须出现在group by 之后
在group by 之后出现的不必须出现在select之后
where与group by同时出现时,先where筛选再group by筛选
在where子句中不可使用组函数,可使用单行函数
order by 列1 desc,列2 desc 表示先按列1降序排列,当条件相同时使用列2降序
SQL语句顺序
书写顺序 | 关键字 | 执行顺序 |
---|---|---|
1 | SELECT 查询列表(确定结果集中包含哪些列) | |
2 | FROM 表名(确定查询哪张表) | 7 |
3 | JOIN 关联表(确定与哪张表连接) | 1 |
4 | ON 关联条件(确定连接条件是什么) | 2 |
5 | WHERE 筛选条件(有连接查询时表示过滤连接后的结果) | 3 |
6 | GROUP BY 分组字段(确定数据分组条件) | 4 |
7 | HAVING 分组后筛选条件(对分组后的数据进行筛选) | 5 |
8 | ORDER BY 排序字段(对数据进行排序) | 6 |
9 | LIMIT 输出限制(限制输出数据的范围) | 8 |
另外,DISTINCT
在 SELECT
执行时执行。
在 MySQL 中,书写时LIMIT
在 ORDER BY
语句之后,执行时也在ORDER BY
之后执行。
Oracle数据库中不支持
LIMIT
语句。
表1 left join 表2 on 条件 表1的数据无论怎样都会存在
表1 right join 表2 on 条件 表2的数据无论怎样都会存在
多表连接
表1 join 表2 on 条件1 join 表3 on 条件2
复合主键 primary key(列名1,列名2,列名3,........)各个列共同确定某一行
字段定义时使用comment关键字定义注释
在information_schema数据库的tables表可查看所有的表的注释(通过 information_schema
数据库中的 tables
可以查看所有表的注释。)
在information_schema数据库的columns表中可查看所有的列注释(通过 information_schema
数据库中的 columns
可以查看所有列的注释。)
drop databse if exists 数据库名 删除指定数据库如果已存在
多重查询 子查询的结果为父查询的查询条件
select 要查询列表 from 要查询的表 where 列名 in(select 子查询列表 from 子查询要查询的表 where 子查询条件)