標籤:分組 dql 串連 sql group 均值 行號 order by 資料
資料查詢語言DQL
select [all | distinct] 欄位或運算式列表 [from子句] [where子句] [group by子句] [having子句] [order by子句] [limit子句];
where中可用的運算子:
算術運算子: + - * / %
比較子: > >= < <= =(等於) <>(不等於)
==(等於,mysql擴充),!=(不等於,mysql擴充)
邏輯運算子: and(與) or(或) not(非)
between文法:
XX between 值1 and 值2;
in文法:
XX in (1,2,3,4,5) XX not in ()
like文法(模糊尋找):
文法形式: XX like ‘要尋找字元’;
說明:
1,like文法(模糊尋找)用於對字元類型的欄位進行字元匹配尋找
2,要尋找的字元中,有2個特殊含義的字元:
2.1: % 其含義是:代表任意個數的任一字元
2.2: _ 其含義是:代表1個的任一字元
2.3:這裡的字元,都是指現實中可見的一個“符號”,而不是位元組。
3,實際應用中的模糊尋找,通常都是這樣:like ‘%關鍵字%’;
group by 分組子句
count(*): 統計一組中的數量,通常用“*”做參數
max(欄位名):擷取該欄位中在該組中的最大值。
min(欄位名):擷取該欄位中在該組中的最小值。
sum(欄位名):擷取該欄位中在該組中的總和。
avg(欄位名):擷取該欄位中在該組中的平均值。
group_concat(欄位名):擷取該分組內的這個欄位所有資訊,每條逗號分隔
having子句
select count(*) as f1 , max(f1) as f2 from tab1 group by f3 having f1 > 5 and f2 < 1000;
Order by子句
order by 排序欄位1 [排序方式], 排序欄位2 [排序方式], .....
說明:
對前面取得的資料(含from子句,where子句,group子句,having子句的所有結果)來指定按某個欄位的大小進行排列(排序),排序只有2種方式:
正序: ASC(預設值),可以省略
倒序: DESC
limit子句
形式:
limit [起始行號start], 要取出的行數num
子查詢
把一個查詢的結果當作另一個查詢的條件
串連查詢 對列的擴充
一個兩列的表加上一個三列的表串連查詢出一個五列的表
串連方式
左右兩張表的資料量不同,多出來的或者少的在同一行上怎麼顯示
聯集查詢 對行的擴充
兩張表的相同欄位查出多條資料
20180813 mysql 資料查詢