查詢作爲各大數據庫中最爲重要的一環,相信每個小夥伴對其都是非常重視的,今天,窩瓜就對於MySQL中,就DQL(單表)的相關操作,給大家一個詳細的解釋!
簡單查詢
SELECT * FROM 表名;
這是MySQL中最爲簡單的一條查詢語句,也稱爲簡單查詢,結果會返回想要查找表格的全部信息,對於數據量較小的表,這樣的查詢確實非常方便,但是一旦數據量超過一個界限,恐怕在性能上就要差很多了~
條件查詢
SELECT * FROM 表名 WHERE 條件;
條件查詢,顧名思義,就是在簡單查詢的基礎之上附帶了條件。原本的簡單查詢,是將數據集的所有信息都顯示出來,而在增加了條件之後,就會將結果集進行過濾,留下符合條件的,方便用戶觀看。
模糊查詢
SELECT * FROM 表名 WHERE 列名 LIKE 列值;
如果當我們遇到“查詢名字中含有李的學生”、“查詢名字是三個字的同學”、“查詢男生中姓張的同學”等這樣的需求時,就要輪到我們的模糊查詢登場了,比如:查詢名字中含有李的學生(表名students,表中有着列name,loc,age等)我們就要使用下面的語句進行查詢:
SELECT * FROM students WHERE name LIKE '%李%';
像這樣,就可以查詢出所有名字中含有“李”字的同學了!!
分組查詢(縱向查詢)
前面的幾種查詢語句都是針對於記錄的查詢,也就是對於表中每一行數據的查詢,而聚合函數所針對的,則是——列!
例如:給出一張員工表,要求查詢出公司人數、工資總和、最大工資等,就要用到聚合函數。
- 聚合函數
SELECT 聚合函數(列名) FROM 表名;
上面命令中的聚合函數,在MySQL中一共爲大家提供了五種,下面就爲大家全部列出:
聚合函數 | 作用 |
---|---|
count(列名) | 計數 |
sum(列名) | 求和 |
max(列名) | 最大值 |
min(列名) | 最小值 |
avg(列名) | 平均值 |
注意:對於count()函數,如果參數爲列名,計數方式爲如果這一列有值爲NULL,就不計數,反之,計數;如果傳入參數爲“*”或者數字,計數方式就變爲如果這一行都爲NULL,纔不計數,反之,一行中,但凡有一個不爲NULL,就要計數!
此處要特別記憶,面試中比較容易考到~
- 分組查詢
對於分組查詢,我們就需要用到關鍵字“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之多表查詢詳細介紹!!