1.基本語法
select 用于選擇
select colums_name, select distinct colums_name,指示數(shù)據(jù)庫只返回不同的值
top&limit
top 5 返回前5行數(shù)據(jù)
offset 指定從哪開始,limit 指定返回的行數(shù)
limit 2 offset 5 ,limit 5,2 這兩條語句都返回第6行、第7行的數(shù)據(jù)
where 用于過濾
where colum_name operator value (在SQL中,講值與字符類型的列進行比較時用單引號,將值與數(shù)字類型的列進行比較的時候不實用單引號)
in 允許在 where 字句中規(guī)定多個值
like 在 where 子句中搜索列中的指定的模式
and&or 用于過濾
存在"懶惰"模式
order by 對結(jié)果集進行排序
order by colum_name ASC|DESC
order by 還支持按照列的相對順序進行排序
select username,password from users order by 2 (按照第二列,也就是password進行排序,如果進行排序的列不在 select 表中則會報錯)
2.函數(shù)
聚集函數(shù)
檢索匯總數(shù)據(jù),而不是數(shù)據(jù)本身
| 函數(shù) | 說明 |
|---|---|
| avg | 返回某列的平均值 |
| count | 返回某列的行數(shù) |
| max | 返回某列的最大值 |
| min | 返回某列的最小值 |
| sum | 返回某列之和 |
avg()函數(shù)
列名作為函數(shù)參數(shù)給出
count()函數(shù)
count(column_name)對 column_name中有值的行進行計數(shù)
count(*)對表中的所有行進行計數(shù),不管各列中有什么值,即使是空值也進行統(tǒng)計
3.分組
分組可以將數(shù)據(jù)分為多個邏輯組,然后對邏輯組進行計算
group by 創(chuàng)建分組
除了聚集語句之外,select 語句中的每一列都必須在 group by 子句中給出
group 出現(xiàn)在 where 之后,order by 之前
having 過濾分組
where 用來過濾行,having 用來過濾分組
where 在分組前進行過濾,having 在分組后進行過濾
順序
SQL 語法順序
select->from->where->group by->having->union->order by
SQL執(zhí)行順序
from->where->group by->having->select->distinct->union->order by