DQL 針對數據行的查詢語句

select

? ? 作用:獲取MySQL中的數據行

單獨使用select:

? ? select @@xxx? 查詢參數信息

? ? ? ? ? ? ? mysql> select @@port;

? mysql> show variables like '%innodb%';

? ? select 函數? mysql> select database(); 查看當前所在的庫

? ? ? ? ? ? ? ? ? ? ? mysql> select now();? ? ? 查看當前時間

? ? ? ? ? ? ? ? ? ? ? mysql> select version();? 查看當前數據庫版本


? ? select語法執行順序


select開始:至少要配合一個from

? ? ? ? ? ? ↓ 例子:1.use 數據庫名;? 2.select *from city;適合表數據行比較少的? 3.

from自句

? ? ? ? ? ? ↓

where子句

? ? ? ? ? ? ↓

group by子句

? ? ? ? ? ? ↓

select后執行條件

? ? ? ? ? ? ↓

having子句

? ? ? ? ? ? ↓

order by

? ? ? ? ? ? ↓

limit

? select開始:至少要配合一個from

? ? ? ? ? ? ↓ 例子1:1.use 數據庫名;?

? ? ? ? ? ? ? ? ? ? ? ? 2.select *from city;適合表數據行比較少的?

? ? ? 例子2: 查詢name列 和 population列所有的值

? ? ? select name,population from world.city;


? where子句:

? ? ? ? ? ? 例子1:where 配合 等值查詢

? 查詢city 表中 中國城市信息

? select * from world.city where countrycode='CHN';? 從 world庫的city表中? 查詢 關于 CHN 的


查詢city 表中 美國城市信息 ?

? select * from world.city where countrycode='USA';? 從 world庫的city表中? 查詢 關于 USA 的


? ? ? ? ? ? 例子2:where 配合 不等值查詢< >? <=? >=? <>


查詢世界人口小于100人的城市

select *? from? world.city? where population<100;? 從 world庫的city表中? 查詢 關于 人口<100 的


查詢世界人口大于10000000人的城市

select *? from? world.city? where population>10000000;? 從 world庫的city表中? 查詢 關于 人口>10000000 的

? ? ? ? ? ? 例子2:where 配合 模糊查詢(like)

? ? 查詢國家代號是C的城市

select *? from? world.city? where countrycode like 'C%';

注意!!! like語句中 不要出現%在前面的情況 因為效率很低 不走索引

? ? ? ? ? ? 例子3:where 配合 邏輯連接符查詢(AND? OR)

? ? 查詢城市人口1萬 到 2萬之間的

? ? select * from world.city? where population > 10000 and population < 20000;

從 world庫的city表中? 查詢 關于 10000<人口< 20000 的

查詢中國 或 美國的城市信息

select *? ?from? world.city where countrycode='CHN' or countrycode='USA';

select *? from? world.city? where countrycode in ('CHN','USA');

建議吧以上兩種 改寫為下邊的這種? 因為這樣效率比較快

select *? from? world.city? where countrycode='CHN'

union [all]

select *? from? world.city? where countrycode='USA';

? group by子句:配合聚合函數應用

?常用聚合函數

平均 AVG()

個數 count()

總和 SUM()

最大 MAX()

最小 MIN()

集合 GROUP_CONCAT()


例子1:統計每個國家的總人口

select countrycode,SUM(population) from city group by countrycode;

例子2:統計每個國家的城市個數

select countrycode,count(id) from city group by countrycode;

從city 這個表中 以國家為基準 統計國家城市的個數

1. 拿什么為基準

? ? ? ? ? ? ? ? ? ? ? GROUP BY? countrycode

? ? ? ? ? ? ? ? 2. 統計什么東西

? ? ? ? ? ? ? ? ? ? ? 城市id,name

? ? ? ? ? ? ? ? 3. 統計東西的種類是什么?

? ? ? ? ? ? ? ? ? ? ? COUNT(id)


例子3:統計每個國家的省名字列表

SELECT countrycode,GROUP_CONCAT(district)?

FROM city

GROUP BY countrycode;

從city 這個表中 以國家為基準 統計國家 和 城市名稱的統計

例子4:統計中國每個省的城市名列表

select District,GROUP_CONCAT(NAME)

from city

where countrycode='CHN'

GROUP BY district;

從city? 這個表中? 以城市為基準? 統計城市和名稱 關于中國的

例子5:統計中國每個省的總人口數

select district,SUM(population)

from city

where countrycode='CHN'

GROUP BY district;

從city? 這個表中? 以城市為基準 統計城市和人口總數 關于中國的

HAVING? ? 比較條件

? ? ? ? --- 統計中國,每個省的總人口大于1000w的省及人口數

? ? ? ? SELECT? district ,SUM(population) FROM city

? ? ? ? WHERE countrycode='CHN'

? ? ? ? GROUP BY district

? ? ? ? HAVING? SUM(population)>10000000

? ? ? ? 說明: having后的條件是不走索引的,可以進行一些優化手段處理。

? ? ORDER BY? 排序 從小到大? 從大到小

? ? ? ? SELECT? district ,SUM(population)

FROM city

? ? ? ? WHERE countrycode='CHN'

? ? ? ? GROUP BY district

? ? ? ? ORDER BY SUM(population) DESC? ;


? ? ? ? --- 例子:查詢中國所有的城市,并以人口數降序輸出

? ? ? ? SELECT *

FROM city

WHERE countrycode='CHN'

ORDER BY? population DESC;人口數從大到小輸出

? ? LIMIT

? ? ? ? SELECT *

? ? ? ? FROM city

? ? ? ? WHERE countrycode='CHN'

? ? ? ? ORDER BY? population DESC

? ? ? ? LIMIT 5;? 顯示5行


? ? ? ? SELECT *

? ? ? ? FROM city

? ? ? ? WHERE countrycode='CHN'

? ? ? ? ORDER BY? population DESC

? ? ? ? LIMIT 10; 顯示10行


? ? ? ? SELECT *

? ? ? ? FROM city

? ? ? ? WHERE countrycode='CHN'

? ? ? ? ORDER BY? population DESC

? ? ? ? LIMIT 5,3;跳過頭5行 顯示隨后3行


? ? ? ? LIMIT M,N? ? 跳過M行,顯示N行

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,646評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,595評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,560評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,035評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,814評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,224評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,301評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,444評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,988評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,804評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,998評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,544評論 5 360
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,237評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,665評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,927評論 1 287
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,706評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,993評論 2 374

推薦閱讀更多精彩內容