1. 程式人生 > >20180813 mysql 數據查詢

20180813 mysql 數據查詢

子句 最大值 tro 數據查詢 都是 特殊 tar 多條 比較

數據查詢語言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 ‘要查找字符’;

說明:

1like語法(模糊查找)用於對字符類型的字段進行字符匹配查找

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 數據查詢