2018-08-12

排序 select 語(yǔ)句的order by 子句墓赴,根據(jù)需要排序檢索出的數(shù)據(jù)

asc(升序) desc(降序)

升序排列

select age from 表名 order by 字段名 asc笑撞;

select 字段名 from 表名 order by 字段名 desc;

多列排序(并指定方向)

select 字段名 。 from 表名 order by 字段排序级乐,字段排序。

為了按多個(gè)列排序,只要指定列名抡爹,列名之間用逗號(hào)分開即可(就 像選擇多個(gè)列時(shí)所做的那樣)。 下面的代碼檢索3個(gè)列芒划,并按其中兩個(gè)列對(duì)結(jié)果進(jìn)行排序——首先按年齡冬竟,然后再按名稱排序。

中文字段排序 腊状。 select * from 表名 order by convert(字段 using gbk) desc(順序)诱咏;

現(xiàn)將要排序的字段指明為中文編碼

限制查詢

指定返回的行數(shù)

限定查詢

SELECT語(yǔ)句返回所有匹配的行,它們可能是指定表中的每個(gè)行缴挖。為了返回第一行或前幾行袋狞,可使用LIMIT子句。下面舉一個(gè)例子:

select name from 表名 limit m映屋;

從開頭位置檢索m 行 內(nèi)容苟鸯;

select 字段名 from 表名 limit start ,count棚点。

從start的后一位置起檢索 count行早处。

1.如果limit 后面只跟了一個(gè)數(shù)字,

已知:每頁(yè)顯示m條數(shù)據(jù)瘫析,當(dāng)前顯示第n頁(yè)求第n頁(yè)的數(shù)據(jù)

SELECT * FROM sudents WHERE is_delete=0 LIMIT (n-1)*m,m

AVG() 返回某列的平均值

COUNT() 返回某列的行數(shù)

MAX() 返回某列的最大值

MIN() 返回某列的最小值

SUM() 返回某列值之和

AVG() 函數(shù)

VG()通過(guò)對(duì)表中行數(shù)計(jì)數(shù)并計(jì)算特定列值之和砌梆,求得該列的平均 值。 AVG()可用來(lái)返回所有列的平均值贬循,也可以用來(lái)返回特定列或行的平均值

select avg(字段名) as 別名 from 表名咸包;起一個(gè)別名并求此列的數(shù)據(jù)的平均值

count()函數(shù)

COUNT()函數(shù)進(jìn)行計(jì)數(shù)≌认海可利用COUNT()確定表中行的數(shù)目或符合特定條件的行的數(shù)目烂瘫。 COUNT()函數(shù)有兩種使用方式。 使用COUNT(*)對(duì)表中行的數(shù)目進(jìn)行計(jì)數(shù)奇适, 不管表列中包含的是空值( NULL)還是非空值坟比。

select count(*) from 表名;

使用COUNT(column)對(duì)特定列中具有值的行進(jìn)行計(jì)數(shù)嚷往,忽略 NULL值葛账。 SELECT COUNT(name) FROM customers;

MAX()函數(shù)

MAX()返回指定列中的最大值。 MAX()要求指定列名皮仁,如下所示

SELECT MAX(age) FROM customers;

MIN()函數(shù)

MIN()的功能正好與MAX()功能相反注竿,它返回指定列的最小值.如下所示

SELECT MIN(age) FROM customers;

SUM()函數(shù)

SUM()用來(lái)返回指定列值的和(總計(jì))茄茁。如下所示

SELECT SUM(age) as sum_age from customers;

聚集不同值

下面的例子使用AVG()函數(shù)返回同學(xué)的平均價(jià)格。 它與上面的SELECT語(yǔ)句相同巩割,但使用了DISTINCT參數(shù)裙顽,因此平均值只考慮各個(gè)不同的年齡:

SELECT AVG(DISTINCT age) from customers;

組合聚集函數(shù)

上面所有聚集函數(shù)例子都只涉及單個(gè)函數(shù)。但實(shí)際上SELECT語(yǔ)句可根據(jù)需要包含多個(gè)聚集函數(shù)宣谈。請(qǐng)看下面的例子:

SELECT COUNT(*) as total,   MIN(age) as min_age,   MAX(age) as max_age,   AVG(age) as avg_age   FROM customers;groub by 分組的含義

將查詢結(jié)果按照1個(gè)或多個(gè)字段進(jìn)行分組愈犹,字段值相同的為一組

可用于單個(gè)字段分組,也可用于多個(gè)字段分組

group by 單獨(dú)使用的意義不大

group by + 集合函數(shù)

通過(guò)的聚合函數(shù)闻丑,我們既然可以統(tǒng)計(jì)出每個(gè)分組的某字段的值的集合漩怎,也可以通過(guò)集合函數(shù)來(lái)對(duì)這個(gè)值的集合做一些操作

SELECT COUNT(*) AS totalnum,age from customers group by age;

根據(jù)age分組顯示age列表 并顯示分組里的數(shù)據(jù)個(gè)數(shù) 并命名為totalnum 字段

[圖片上傳失敗...(image-a56337-1534077722652)]

SELECT count(gender),gender FROM studentinfo GROUP BY gender;

SELECT avg(age),gender FROM studentinfo GROUP BY gender;

group by + group_concat()

group_concat(字段名)可以作為一個(gè)輸出字段來(lái)使用,

表示分組之后嗦嗡,根據(jù)分組結(jié)果勋锤,使用group_concat()來(lái)放置每一組的某字段的值的集合

SELECT gender,group_concat(student_name) FROM studentinfo GROUP BY gender;

[圖片上傳失敗...(image-23c438-1534077722652)]

group by + group_concat() + 集合函數(shù)

SELECT avg(age),gender,group_concat(student_name) FROM studentinfo GROUP BY gender;

group by + with rollup

with rollup的作用是:在最后新增一行,來(lái)記錄當(dāng)前列里所有記錄的總和

SELECT gender,count(*) FROM studentinfo GROUP BY gender with rollup;

在我們使用GROUP BY 時(shí)需要知道的一些規(guī)矩:

GROUP BY子句可以包含任意數(shù)目的列(可以根據(jù)多個(gè)列進(jìn)行分組)侥祭。這使得能對(duì)分組進(jìn)行嵌套叁执,為數(shù)據(jù)分組提供更細(xì)致的控制。如果在GROUP BY子句中嵌套了分組矮冬,數(shù)據(jù)將在最后規(guī)定的分組上進(jìn)行匯總谈宛。換句話說(shuō),在建立分組時(shí)胎署,指定的有列都起計(jì)算(所以不能從個(gè)別的列取回?cái)?shù)據(jù))吆录。

GROUP BY子句中列出的每個(gè)列都必須是檢索列或有效的表達(dá)式(但不能是聚集函數(shù))。如果在SELECT中使用表達(dá)式琼牧,則必須在GROUP BY子句中指定相同的表達(dá)式恢筝。不能使用別名。

除聚集計(jì)算語(yǔ)句外巨坊, SELECT語(yǔ)句中的每個(gè)列都必須在GROUP BY子句中給出撬槽。

如果分組列中具有NULL值,則NULL將作為一個(gè)分組返回抱究。如果列中有多行NULL值恢氯,它們將分為一組带斑。

GROUP BY子句必須出現(xiàn)在WHERE子句之后鼓寺, ORDER BY子句之前

如何過(guò)濾分組?勋磕?妈候?

MySQL還允許過(guò)濾分組,規(guī)定包括哪些分組挂滓,排除哪些分組苦银。例如,可能想要列出至少有兩個(gè)相同地區(qū)以上的用戶。為得出這種數(shù)據(jù)幔虏,必須基于完整的分組而不是個(gè)別的行進(jìn)行過(guò)濾

HAVING

HAVING子句纺念。 HAVING非常類似于WHERE。事實(shí)上想括,目前為止所學(xué)過(guò)的所有類型的WHERE子句都可以用HAVING來(lái)替代陷谱。唯一的差別是WHERE過(guò)濾行,而HAVING過(guò)濾分組瑟蜈。

having 條件表達(dá)式:用來(lái)分組查詢后指定一些條件來(lái)輸出查詢結(jié)果

having作用和where類似烟逊,但having只能用于group by

SELECT COUNT(),age,adress FROM customers GROUP BY age,adress HAVING COUNT() >= 2;

SELECT COUNT(*),age,adress FROM customers GROUP BY age,adress HAVING age >= 2;

SELECT COUNT(*),age,adress FROM customers GROUP BY age,adress HAVING age >= 2 and adress LIKE '%搜索關(guān)鍵字%';

HAVING和WHERE的差別 這里有另一種理解方法,WHERE在數(shù)據(jù)分組前進(jìn)行過(guò)濾,HAVING在數(shù)據(jù)分組后進(jìn)行過(guò)濾铺根。這是一個(gè)重要的區(qū)別宪躯, WHERE排除的行不包括在分組中。這可能會(huì)改變計(jì)算值位迂,從而影響HAVING子句中基于這些值過(guò)濾掉的分組访雪。

SELECT COUNT(),age,adress FROM customers WHERE adress LIKE '北%' GROUP BY age,adress HAVING COUNT() >= 2;

查詢語(yǔ)句的順序

select

列,列

表名

where

條件

group by

列囤官,列冬阳,

HAVING

條件

order by

列 (desc| asc)

limit srart,count

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市党饮,隨后出現(xiàn)的幾起案子肝陪,更是在濱河造成了極大的恐慌,老刑警劉巖刑顺,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件氯窍,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蹲堂,警方通過(guò)查閱死者的電腦和手機(jī)狼讨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)柒竞,“玉大人政供,你說(shuō)我怎么就攤上這事⌒嗷” “怎么了布隔?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)稼虎。 經(jīng)常有香客問(wèn)我衅檀,道長(zhǎng),這世上最難降的妖魔是什么霎俩? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任哀军,我火速辦了婚禮沉眶,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘杉适。我一直安慰自己谎倔,他們只是感情好典唇,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布熟嫩。 她就那樣靜靜地躺著,像睡著了一般屉更。 火紅的嫁衣襯著肌膚如雪彤守。 梳的紋絲不亂的頭發(fā)上毯侦,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音具垫,去河邊找鬼侈离。 笑死,一個(gè)胖子當(dāng)著我的面吹牛筝蚕,可吹牛的內(nèi)容都是我干的卦碾。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼起宽,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼洲胖!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起坯沪,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤绿映,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后腐晾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體叉弦,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年藻糖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了淹冰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡巨柒,死狀恐怖樱拴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情洋满,我是刑警寧澤晶乔,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站芦岂,受9級(jí)特大地震影響瘪弓,放射性物質(zhì)發(fā)生泄漏垫蛆。R本人自食惡果不足惜禽最,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一腺怯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧川无,春花似錦呛占、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至仅叫,卻和暖如春帜篇,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背诫咱。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工笙隙, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人坎缭。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓竟痰,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親掏呼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子坏快,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容