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中,講值與字符類型的列進(jìn)行比較時(shí)用單引號(hào),將值與數(shù)字類型的列進(jìn)行比較的時(shí)候不實(shí)用單引號(hào))
in 允許在 where 字句中規(guī)定多個(gè)值
like 在 where 子句中搜索列中的指定的模式
and&or 用于過濾
存在"懶惰"模式
order by 對(duì)結(jié)果集進(jìn)行排序
order by colum_name ASC|DESC
order by 還支持按照列的相對(duì)順序進(jìn)行排序
select username,password from users order by 2 (按照第二列舞终,也就是password進(jìn)行排序,如果進(jìn)行排序的列不在 select 表中則會(huì)報(bào)錯(cuò))
2.函數(shù)
聚集函數(shù)
檢索匯總數(shù)據(jù)癣猾,而不是數(shù)據(jù)本身
函數(shù) | 說明 |
---|---|
avg | 返回某列的平均值 |
count | 返回某列的行數(shù) |
max | 返回某列的最大值 |
min | 返回某列的最小值 |
sum | 返回某列之和 |
avg()函數(shù)
列名作為函數(shù)參數(shù)給出
count()函數(shù)
count(column_name)對(duì) column_name中有值的行進(jìn)行計(jì)數(shù)
count(*)對(duì)表中的所有行進(jìn)行計(jì)數(shù)敛劝,不管各列中有什么值,即使是空值也進(jìn)行統(tǒng)計(jì)
3.分組
分組可以將數(shù)據(jù)分為多個(gè)邏輯組纷宇,然后對(duì)邏輯組進(jìn)行計(jì)算
group by 創(chuàng)建分組
除了聚集語句之外夸盟,select 語句中的每一列都必須在 group by 子句中給出
group 出現(xiàn)在 where 之后,order by 之前
having 過濾分組
where 用來過濾行像捶,having 用來過濾分組
where 在分組前進(jìn)行過濾上陕,having 在分組后進(jìn)行過濾
順序
SQL 語法順序
select->from->where->group by->having->union->order by
SQL執(zhí)行順序
from->where->group by->having->select->distinct->union->order by