入門MySQL——查詢語法練習(xí)

前言:

前面幾篇文章為大家介紹了DML以及DDL語句的使用方法,本篇文章將主要講述常用的查詢語法悲雳。其實(shí)MySQL官網(wǎng)給出了多個(gè)示例數(shù)據(jù)庫供大家實(shí)用查詢,下面我們以最常用的員工示例數(shù)據(jù)庫為準(zhǔn)晌端,詳細(xì)介紹各自常用的查詢語法谚殊。

1.員工示例數(shù)據(jù)庫導(dǎo)入

官方文檔員工示例數(shù)據(jù)庫介紹及下載鏈接:

https://dev.mysql.com/doc/employee/en/employees-installation.html

同樣的,為了方便大家仇参,我這里將員工庫的數(shù)據(jù)庫備份分享給大家嘹叫,大家也可以下載我這份數(shù)據(jù),然后再解壓導(dǎo)入進(jìn)你們本地庫就可以了诈乒。

鏈接: https://pan.baidu.com/s/13s1OH-3DepN-rpejys76Ww
密碼: 2xqx
下載解壓后罩扇,直接導(dǎo)入即可,如鏈接失效可后臺(tái)聯(lián)系我怕磨。

如果你導(dǎo)入完成喂饥,就可以看到下面這6張表了,這就是我們接下來練習(xí)查詢語法要用的表哦肠鲫。

image.png

為了讓大家對(duì)示例數(shù)據(jù)庫更了解员帮,這里給出此數(shù)據(jù)庫各表之間的關(guān)系圖:

employees-schema.png

簡(jiǎn)單介紹下這6張表:

  • departments :部門表,記錄的是9個(gè)部門的部門編號(hào)和部門名稱导饲。
  • dept_emp :部門員工表捞高,記錄各部門員工數(shù)據(jù),員工id和部門id渣锦,起始時(shí)間和結(jié)束時(shí)間(注:9999-01-01的意思就是仍在該部門就職)硝岗。
  • dept_manager :部門經(jīng)理表,同第二張表結(jié)構(gòu)差不多袋毙,記錄每個(gè)部門的每個(gè)經(jīng)理的任職時(shí)期型檀。
  • employees :?jiǎn)T工信息表,記錄員工信息听盖,員工編號(hào)emp_no是唯一鍵值胀溺。
  • salaries :薪資表,記錄每個(gè)員工每段時(shí)期的薪資媳溺。
  • titles :職稱表月幌,記錄每個(gè)員工每段時(shí)期的職位名稱。

2.模糊查詢

#查找名字以L開頭的員工信息
SELECT * FROM employees WHERE first_name LIKE 'L%'悬蔽;

3.排序

#按部門編號(hào)排序
mysql> SELECT * FROM departments ORDER BY dept_no;
+---------+--------------------+
| dept_no | dept_name          |
+---------+--------------------+
| d001    | Marketing          |
| d002    | Finance            |
| d003    | Human Resources    |
| d004    | Production         |
| d005    | Development        |
| d006    | Quality Management |
| d007    | Sales              |
| d008    | Research           |
| d009    | Customer Service   |
+---------+--------------------+
9 rows in set (0.00 sec)
總結(jié):
order by排序默認(rèn)按asc升序來排列
也可指定desc降序排列

4.限制多少行

#取前5行
mysql> SELECT * FROM employees LIMIT 5;
+--------+------------+------------+-----------+--------+------------+
| emp_no | birth_date | first_name | last_name | gender | hire_date  |
+--------+------------+------------+-----------+--------+------------+
|  10001 | 1953-09-02 | Georgi     | Facello   | M      | 1986-06-26 |
|  10002 | 1964-06-02 | Bezalel    | Simmel    | F      | 1985-11-21 |
|  10003 | 1959-12-03 | Parto      | Bamford   | M      | 1986-08-28 |
|  10004 | 1954-05-01 | Chirstian  | Koblick   | M      | 1986-12-01 |
|  10005 | 1955-01-21 | Kyoichi    | Maliniak  | M      | 1989-09-12 |
+--------+------------+------------+-----------+--------+------------+
5 rows in set (0.00 sec)

mysql> SELECT * FROM employees ORDER BY hire_date desc LIMIT 5;
+--------+------------+------------+-----------+--------+------------+
| emp_no | birth_date | first_name | last_name | gender | hire_date  |
+--------+------------+------------+-----------+--------+------------+
| 463807 | 1964-06-12 | Bikash     | Covnot    | M      | 2000-01-28 |
| 428377 | 1957-05-09 | Yucai      | Gerlach   | M      | 2000-01-23 |
| 499553 | 1954-05-06 | Hideyuki   | Delgrande | F      | 2000-01-22 |
| 222965 | 1959-08-07 | Volkmar    | Perko     | F      | 2000-01-13 |
|  47291 | 1960-09-09 | Ulf        | Flexer    | M      | 2000-01-12 |
+--------+------------+------------+-----------+--------+------------+
5 rows in set (0.11 sec)

總結(jié):
limit限定顯示前多少行扯躺,可與order by聯(lián)合使用

5.聚合函數(shù)

#查找某員工薪水總和
SELECT SUM(salary) FROM salaries WHERE emp_no = 10001;
#統(tǒng)計(jì)歷史上各個(gè)部門所擁有的員工數(shù)量,并降序排序
mysql> SELECT dept_no, COUNT(*) AS emp_sum FROM dept_emp GROUP BY dept_no ORDER BY emp_sum DESC;
+---------+---------+
| dept_no | emp_sum |
+---------+---------+
| d005    |   85707 |
| d004    |   73485 |
| d007    |   52245 |
| d009    |   23580 |
| d008    |   21126 |
| d001    |   20211 |
| d006    |   20117 |
| d003    |   17786 |
| d002    |   17346 |
+---------+---------+
9 rows in set (0.07 sec)

6.JOIN

#可以試下下面3個(gè)語句執(zhí)行結(jié)果的不同
SELECT *
FROM salaries INNER JOIN dept_emp
ON salaries.emp_no = dept_emp.emp_no
WHERE salaries.emp_no = 10010;

SELECT *
FROM salaries LEFT JOIN dept_emp
ON salaries.emp_no = dept_emp.emp_no
WHERE salaries.emp_no = 10010;

SELECT *
FROM salaries RIGHT JOIN dept_emp
ON salaries.emp_no = dept_emp.emp_no
WHERE salaries.emp_no = 10010;

總結(jié):
a left join b  a表全,用b表去匹配a表
LEFT JOIN 關(guān)鍵字會(huì)從左表 (a) 那里返回所有的行录语,即使在右表 (b) 中沒有匹配的行,匹配不到的列用NULL代替

a right join b  b表全倍啥,用a表去匹配b表
RIGHT JOIN 關(guān)鍵字會(huì)右表 (b) 那里返回所有的行,即使在左表 (a) 中沒有匹配的行,匹配不到的列用NULL代替

inner join 與join 效果一樣
在表中存在至少一個(gè)匹配時(shí)澎埠,INNER JOIN 關(guān)鍵字返回行

總結(jié):

推薦大家在本地導(dǎo)入這個(gè)示例數(shù)據(jù)庫虽缕,其實(shí)這個(gè)數(shù)據(jù)庫是練習(xí)查詢語法的好素材。對(duì)于我們?nèi)粘W(xué)習(xí)或工作中蒲稳,用的最多的應(yīng)該就是查詢語句了氮趋,個(gè)人以為寫查詢SQL沒有技巧,只有多加練習(xí)才能快速寫出能解決需求的SQL江耀。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末剩胁,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子祥国,更是在濱河造成了極大的恐慌昵观,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舌稀,死亡現(xiàn)場(chǎng)離奇詭異啊犬,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)壁查,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門觉至,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人潮罪,你說我怎么就攤上這事康谆×斐猓” “怎么了嫉到?”我有些...
    開封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)月洛。 經(jīng)常有香客問我何恶,道長(zhǎng),這世上最難降的妖魔是什么嚼黔? 我笑而不...
    開封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任细层,我火速辦了婚禮,結(jié)果婚禮上唬涧,老公的妹妹穿的比我還像新娘疫赎。我一直安慰自己,他們只是感情好碎节,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開白布捧搞。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪胎撇。 梳的紋絲不亂的頭發(fā)上介粘,一...
    開封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音晚树,去河邊找鬼姻采。 笑死,一個(gè)胖子當(dāng)著我的面吹牛爵憎,可吹牛的內(nèi)容都是我干的慨亲。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼宝鼓,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼巡雨!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起席函,我...
    開封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤铐望,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后茂附,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體正蛙,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年营曼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了乒验。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蒂阱,死狀恐怖锻全,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情录煤,我是刑警寧澤鳄厌,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站妈踊,受9級(jí)特大地震影響了嚎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜廊营,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一歪泳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧露筒,春花似錦呐伞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽假哎。三九已至,卻和暖如春鞍历,著一層夾襖步出監(jiān)牢的瞬間舵抹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來泰國打工劣砍, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留惧蛹,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓刑枝,卻偏偏與公主長(zhǎng)得像香嗓,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子装畅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

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

  • 1. 了解SQL 1.1 數(shù)據(jù)庫基礎(chǔ) ? 學(xué)習(xí)到目前這個(gè)階段靠娱,我們就需要以某種方式與數(shù)據(jù)庫打交道。在深入學(xué)習(xí)MyS...
    鋒享前端閱讀 1,071評(píng)論 0 1
  • 一掠兄、SQL速成 結(jié)構(gòu)查詢語言(SQL)是用于查詢關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言像云,它包括若干關(guān)鍵字和一致的語法,便于數(shù)據(jù)庫元件...
    shadow雨軒閱讀 514評(píng)論 0 3
  • 數(shù)據(jù)庫的概述 1.數(shù)據(jù)庫的作用:倉庫蚂夕,存儲(chǔ)數(shù)據(jù)迅诬。 2.關(guān)系型的數(shù)據(jù)庫,保存實(shí)體與實(shí)體之間的關(guān)系婿牍。 3.常見的數(shù)據(jù)庫...
    三萬_chenbing閱讀 905評(píng)論 0 3
  • 懶得猜先生有著治愈系的笑容侈贷,在他的眼眸里能看到獨(dú)有的溫柔。 想太多小姐很普通等脂,就像風(fēng)里的一顆塵埃落在眼...
    這就是最終的幸福生活閱讀 566評(píng)論 0 0
  • 臨近高考那一年俏蛮,我一直都坐在教室靠窗口偏里的位置,每一天上遥,對(duì)于老師的諄諄教導(dǎo)我都是絲毫沒聽進(jìn)去搏屑,完全就沉浸在自己寫...
    想偷偷懶懶閱讀 262評(píng)論 0 2