SQL之DQL

DQL用于從數(shù)據(jù)庫(kù)查詢數(shù)據(jù)鸥鹉,并不會(huì)修改數(shù)據(jù)

  • 基本查詢
  • 條件控制
  • 查詢排序
  • 分組查詢
  • limit限制

一.基本查詢

  1. 字段(列)控制
    (1) 查詢所有列
    SELECT * FROM 表名;
    (2) 查詢指定列
    SELECT 列1 [列2, ... 列N] FROM 表名;
    (3) 完全重復(fù)的記錄只一次
    當(dāng)查詢結(jié)果中的多行記錄一模一樣時(shí)持偏,只顯示一行。一般查詢所有列時(shí)很少會(huì)有這種情況,但只查詢一列(或幾列)時(shí)哥攘,可能會(huì)出現(xiàn)
    SELECT DISTINCT * | 列1 [列2, ... 列N] FROM 表名;
    (4) 列運(yùn)算
    1. 數(shù)字類型的列可以做加寥粹、減渣锦、乘欧芽、除運(yùn)算
      SELECT sal*1.5 FROM emp;
      SELECT sal+comm FROM emp;

    2. 字符串類型可以做連續(xù)運(yùn)算
      SELECT CONCAT('$', sal) FROM emp;

    3. 轉(zhuǎn)換NULL值
      有時(shí)需要把NULL轉(zhuǎn)換成其它值男韧,例如com+1000時(shí)朴摊,如果com列存在NULL值,那么NULL+1000還是NULL此虑,而這時(shí)希望把NULL當(dāng)前0來(lái)運(yùn)算甚纲。
      SELECT IFNULL(comm, 0)+1000 FROM emp;
      IFNULL(comm, 0):如果comm中存在NULL值,那么當(dāng)成0來(lái)運(yùn)算

    4. 給列起別名
      當(dāng)使用列運(yùn)算后朦前,查詢出的結(jié)果集中的列名稱很不好看介杆,這時(shí)我們需要給列名起個(gè)別名,這樣在結(jié)果集中列名就顯示別名了
      SELECT IFNULL(comm, 0)+1000 AS 獎(jiǎng)金 FROM emp;
      其中AS可以省略


二.條件控制

1. 條件查詢

  • 與前面介紹的UPDATE和DELETE語(yǔ)句一樣况既,SELECT語(yǔ)句也可以使用WHERE子句來(lái)控制記錄
    SELECT empno,ename,sal,comm FROM emp WHERE sal > 10000 AND comm IS NOT NULL;
    SELECT empno,ename,sal FROM emp WHERE sal BETWEEN 20000 AND 30000;
    SELECT empno,ename,job FROM emp WHERE job IN ('經(jīng)理', '董事長(zhǎng)');

2. 模糊查詢

  • 當(dāng)你想查詢姓張这溅,并且姓名一共兩個(gè)字的員工時(shí),這時(shí)就可以使用模糊查詢
    SELECT * FROM emp WHERE ename LIKE '張_';

  • 模糊查詢需要使用運(yùn)算符:LIKE棒仍,其中匹配一個(gè)任意字符悲靴,注意,只匹配一個(gè)字符而不是多個(gè)莫其。
    SELECT * FROM emp WHERE ename LIKE '
    __';
    姓名由3個(gè)字組成的員工

  • 如果想查詢姓張癞尚,名字幾個(gè)字都可以的員工時(shí)就要使用“%”
    SELECT * FROM emp WHERE ename LIKE '張%';

  • 其中%匹配0~N個(gè)任意字符,所以上面語(yǔ)句查詢的是姓張的所有員工*
    SELECT * FROM emp WHERE ename LIKE '%阿%';

  • 上面語(yǔ)句是在查詢姓名中間帶有阿字的員工乱陡,因?yàn)?匹配0~N個(gè)字符浇揩,所以姓名以阿開(kāi)頭和結(jié)尾的員工也都會(huì)查詢到*
    SELECT * FROM emp WHERE ename LIKE '%';
    這個(gè)條件等同與不存在,但如果姓名為NULL的查詢不出來(lái)


三. 排序查詢

1. 升序

SELECT * FROM 表名 WHERE 條件 ORDER BY 列名 ASC;

默認(rèn)情況下就是按照升序排列憨颠,可以省略

2. 降序

SELECT * FROM 表名 WHERE 條件 ORDER BY 列名 DESC;

其中DESC不能省略

3. 使用多列作為排序條件

SELECT * FROM 表名 WHERE 條件 ORDER BY 列名1 ASC, 列名2 DESC;

使用列名1升序排胳徽,如果列名1相同時(shí),使用列名2的降序排


四爽彤、聚合函數(shù)

聚合函數(shù)用來(lái)做某列的縱向運(yùn)算

1. COUNT

SELECT COUNT(*) FROM emp;

計(jì)算emp表中所有列都不為NULL的記錄的行數(shù)

SELECT COUNT(comm) FROM emp;

計(jì)算emp表中comm列不為NULL的記錄的行數(shù)

2. MAX

SELECT MAX(sal) FROM emp;

查詢最高工資

3. MIN

SELECT MIN(sal) FROM emp;

查詢最低工資

4. SUM

SELECT SUM(sal) FROM emp;

查詢工資總和

5. AVG

SELECT AVG(sal) FROM emp;

查詢平均工資


四养盗、分組查詢

分組查詢是把記錄使用某一列進(jìn)行分組,然后查詢組信息适篙。

  • 使用deptno分組往核,查詢部門編號(hào)和每個(gè)部門的記錄數(shù)
    SELECT deptno, COUNT(*) FROM emp GROUP BY deptno;
  • 使用job分組,查詢每種工作的最高工資
    SELECT job, MAX(SAL) FROM emp GROUP BY job;
  • 以部門分組嚷节,查詢每組記錄數(shù)聂儒。條件為記錄數(shù)大于3
    SELECT deptno, COUNT() FROM emp GROUP BY deptno HAVING COUNT() > 3;

五虎锚、limit子句

LIMIT用來(lái)限定查詢結(jié)果的起始行,以及總行數(shù)

  • 查詢起始行為第5行衩婚,一共查詢3行記錄
    SELECT * FROM emp LIMIT 4, 3;
    其中4表示從第5行開(kāi)始窜护,其中3表示一共查詢3行。即第5谅猾、6柄慰、7行記錄
  • 查詢起始行為第1行,一共查詢5行記錄
    SELECT * FROM emp LIMIT 0, 5;
  • 查詢第3頁(yè)(每頁(yè)的記錄數(shù):10行)
    SELECT * FROM emp LIMIT 20, 10;
    (當(dāng)前頁(yè)-1) * 每頁(yè)記錄數(shù)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末税娜,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子藏研,更是在濱河造成了極大的恐慌敬矩,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蠢挡,死亡現(xiàn)場(chǎng)離奇詭異弧岳,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)业踏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門禽炬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人勤家,你說(shuō)我怎么就攤上這事腹尖。” “怎么了伐脖?”我有些...
    開(kāi)封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵热幔,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我讼庇,道長(zhǎng)绎巨,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任蠕啄,我火速辦了婚禮场勤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘歼跟。我一直安慰自己和媳,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布嘹承。 她就那樣靜靜地躺著窗价,像睡著了一般。 火紅的嫁衣襯著肌膚如雪叹卷。 梳的紋絲不亂的頭發(fā)上撼港,一...
    開(kāi)封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天坪它,我揣著相機(jī)與錄音,去河邊找鬼帝牡。 笑死往毡,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的靶溜。 我是一名探鬼主播开瞭,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼罩息!你這毒婦竟也來(lái)了嗤详?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤瓷炮,失蹤者是張志新(化名)和其女友劉穎葱色,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體娘香,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡苍狰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了烘绽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片淋昭。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖安接,靈堂內(nèi)的尸體忽然破棺而出翔忽,到底是詐尸還是另有隱情,我是刑警寧澤赫段,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布呀打,位于F島的核電站,受9級(jí)特大地震影響糯笙,放射性物質(zhì)發(fā)生泄漏贬丛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一给涕、第九天 我趴在偏房一處隱蔽的房頂上張望豺憔。 院中可真熱鬧,春花似錦够庙、人聲如沸恭应。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)昼榛。三九已至,卻和暖如春剔难,著一層夾襖步出監(jiān)牢的瞬間胆屿,已是汗流浹背奥喻。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留非迹,地道東北人环鲤。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像憎兽,于是被迫代替她去往敵國(guó)和親冷离。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

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