20180813 mysql 數據查詢
數據查詢語言DQL
select [all | distinct] 字段或表達式列表 [from子句] [where子句] [group by子句] [having子句] [order by子句] [limit子句];
where中可用的運算符:
算術運算符: + - * / %
比較運算符: > >= < <= =(等於) <>(不等於)
==(等於,mysql擴展),!=(不等於,mysql擴展)
邏輯運算符: and(與) or(或) not(非)
between語法:
XX between 值1 and
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 數據查詢