MySQL之DQL詳解(單表)

查詢作爲各大數據庫中最爲重要的一環,相信每個小夥伴對其都是非常重視的,今天,窩瓜就對於MySQL中,就DQL(單表)的相關操作,給大家一個詳細的解釋!

簡單查詢
SELECT * FROM 表名;

這是MySQL中最爲簡單的一條查詢語句,也稱爲簡單查詢,結果會返回想要查找表格的全部信息,對於數據量較小的表,這樣的查詢確實非常方便,但是一旦數據量超過一個界限,恐怕在性能上就要差很多了~

條件查詢
SELECT * FROM 表名 WHERE 條件;

條件查詢,顧名思義,就是在簡單查詢的基礎之上附帶了條件。原本的簡單查詢,是將數據集的所有信息都顯示出來,而在增加了條件之後,就會將結果集進行過濾,留下符合條件的,方便用戶觀看。

模糊查詢
SELECT * FROM 表名 WHERE 列名 LIKE 列值;

如果當我們遇到“查詢名字中含有李的學生”、“查詢名字是三個字的同學”、“查詢男生中姓張的同學”等這樣的需求時,就要輪到我們的模糊查詢登場了,比如:查詢名字中含有李的學生(表名students,表中有着列name,loc,age等)我們就要使用下面的語句進行查詢:

SELECT * FROM students WHERE name LIKE '%李%';

像這樣,就可以查詢出所有名字中含有“李”字的同學了!!

分組查詢(縱向查詢)

前面的幾種查詢語句都是針對於記錄的查詢,也就是對於表中每一行數據的查詢,而聚合函數所針對的,則是——列!

例如:給出一張員工表,要求查詢出公司人數、工資總和、最大工資等,就要用到聚合函數。

  1. 聚合函數
SELECT 聚合函數(列名) FROM 表名;

上面命令中的聚合函數,在MySQL中一共爲大家提供了五種,下面就爲大家全部列出:

聚合函數 作用
count(列名) 計數
sum(列名) 求和
max(列名) 最大值
min(列名) 最小值
avg(列名) 平均值

注意:對於count()函數,如果參數爲列名,計數方式爲如果這一列有值爲NULL,就不計數,反之,計數;如果傳入參數爲“*”或者數字,計數方式就變爲如果這一行都爲NULL,纔不計數,反之,一行中,但凡有一個不爲NULL,就要計數!

此處要特別記憶,面試中比較容易考到~

  1. 分組查詢

對於分組查詢,我們就需要用到關鍵字“GROUP BY”~

SELECT 列名,聚合函數 FROM 表名 GROUP BY 分組目標列;

例如:查詢公司中男女分別有多少人,顯然,這是利用性別進行分組,假如一張員工表(staffs)中有sex這個列,代表着性別,查詢的方式就如下:

SELECT sex,count(*) FROM staffs GROUP BY sex;

這樣,就完成了一次分組查詢!

排序

有的時候,爲了使得查詢的結果更加具有觀賞性,我們會對於數據進行排序,在MySQL中,也有着關於排序的語法:

SELECT * FROM 表名 ORDER BY 列名 ASC;

MySQL中,ASC關鍵字代表升序排列,而降序排列用DESC~

分頁查詢

對於分頁查詢,MySQL有着關鍵字LIMIT,這裏要強調,LIMIT關鍵字只是對於MySQL中有作用,如果此時換成Oracle,就不會在起作用了!

SELECT * FROM 表名 LIMIT 0,5

以上語句的含義是:查詢的結果,從第零行開始,每頁顯示五條記錄。

總結

到這裏我們來回顧一下這次所講的查詢語句:

SELECT * FROM 表名;//簡單查詢
SELECT * FROM 表名 WHERE 條件;//條件查詢
SELECT * FROM 表名 WHERE 列名 LIKE 列值;//模糊查詢
SELECT 聚合函數 FROM 表名;//聚合函數(列查詢)
SELECT 列名,聚合函數 FROM 表名 GROUP BY 分組列名;//分組查詢(列查詢)
SELECT * FROM 表名 ORDER BY ASC/DESC;//排序
SELECT * FROM 表名 LIMIT INT,INT;//分頁查詢

這一次,對於MySQL中簡單DQL的介紹就到這裏,如果小夥伴們覺得,DQL就這難度的話,就太小瞧它了~
這次爲大家介紹MySQL的DQL之單表查詢,下一次,窩瓜將會給大家帶來DQL之多表查詢詳細介紹!!

發佈了11 篇原創文章 · 獲贊 0 · 訪問量 7061
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章