1.基本语法
select 用于选择
select colums_name, select distinct colums_name,指示数据库只返回不同的值
top&limit
top 5 返回前5行数据
offset 指定从哪开始,limit 指定返回的行数
limit 2 offset 5 ,limit 5,2 这两条语句都返回第6行、第7行的数据
where 用于过滤
where colum_name operator value (在SQL中,讲值与字符类型的列进行比较时用单引号,将值与数字类型的列进行比较的时候不实用单引号)
in 允许在 where 字句中规定多个值
like 在 where 子句中搜索列中的指定的模式
and&or 用于过滤
存在"懒惰"模式
order by 对结果集进行排序
order by colum_name ASC|DESC
order by 还支持按照列的相对顺序进行排序
select username,password from users order by 2 (按照第二列,也就是password进行排序,如果进行排序的列不在 select 表中则会报错)
2.函数
聚集函数
检索汇总数据,而不是数据本身
函数 | 说明 |
---|---|
avg | 返回某列的平均值 |
count | 返回某列的行数 |
max | 返回某列的最大值 |
min | 返回某列的最小值 |
sum | 返回某列之和 |
avg()函数
列名作为函数参数给出
count()函数
count(column_name)对 column_name中有值的行进行计数
count(*)对表中的所有行进行计数,不管各列中有什么值,即使是空值也进行统计
3.分组
分组可以将数据分为多个逻辑组,然后对逻辑组进行计算
group by 创建分组
除了聚集语句之外,select 语句中的每一列都必须在 group by 子句中给出
group 出现在 where 之后,order by 之前
having 过滤分组
where 用来过滤行,having 用来过滤分组
where 在分组前进行过滤,having 在分组后进行过滤
顺序
SQL 语法顺序
select->from->where->group by->having->union->order by
SQL执行顺序
from->where->group by->having->select->distinct->union->order by