6.1 DQL 查詢語句詳解

創建學生表3

-- 創建學生表3
CREATE TABLE student3 ( 
	id INT,	-- 編號
	NAME VARCHAR(20), -- 姓名
	age INT, -- 年齡
	sex VARCHAR(5),	-- 性別
	address VARCHAR(100),	-- 地址
	math INT, -- 數學
	english INT -- 英語
);

給學生表3添加數據

-- 給學生表3添加數據
INSERT INTO student3(id,NAME,age,sex,address,math,english) VALUES 
		(1,'馬雲',55,'男','杭州',66,78),
		(2,'馬化騰',45,'女','深圳',98,87),
		(3,'馬景濤',55,'男','香港',56,77),
		(4,'柳巖',20,'女','湖南',76,65),
		(5,'柳青',20,'男','湖南',86,NULL),
		(6,'劉德華',57,'男','香港',99,99),
		(7,'馬德',22,'女','香港',99,99),
		(8,'德瑪西亞',18,'男','南京',56,65);

查詢學生表

-- 查詢學生表
SELECT * FROM student3;

在這裏插入圖片描述


基本查詢

-- 查詢姓名和年齡
SELECT NAME,age FROM student3;

在這裏插入圖片描述


-- 去除重複的結果集
SELECT DISTINCT address FROM student3;

在這裏插入圖片描述


-- 計算 math和english分數之和
SELECT NAME,english,math,math+english FROM student3;

在這裏插入圖片描述


-- 如果有NULL參與的計算,計算結果都爲NULL
SELECT NAME,english,math,math+IFNULL(english,0) FROM student3;

在這裏插入圖片描述


-- 起別名(as或者空格)
SELECT NAME,english 英語,math 數學,math+IFNULL(english,0) AS 總分 FROM student3;

在這裏插入圖片描述


-- 查詢年齡大於等於20歲
SELECT * FROM student3 WHERE age>=20;

在這裏插入圖片描述


-- 查詢年齡等於20歲
SELECT * FROM student3 WHERE age=20;

在這裏插入圖片描述


-- 查詢年齡不等於20歲
SELECT * FROM student3 WHERE age<>20;

在這裏插入圖片描述


-- 查詢年齡大於等於20歲,小於等於30歲
SELECT * FROM student3 WHERE age BETWEEN 20 AND 30;

在這裏插入圖片描述


-- 查詢年齡22歲,19歲,25歲
SELECT * FROM student3 WHERE age IN(22,19,25);

在這裏插入圖片描述


-- 查詢英語成績爲NULL(查詢表名對應的值是否爲空不能用= 或<>來判斷)
SELECT * FROM student3 WHERE english IS NULL;

在這裏插入圖片描述


-- 查詢英語成績不爲NULL(查詢表名對應的值是否爲空不能用= 或<>來判斷)
SELECT * FROM student3 WHERE english IS NOT NULL;

在這裏插入圖片描述


模糊查詢

-- 查詢姓馬的有哪些?like子句
SELECT * FROM student3 WHERE NAME LIKE '馬%';

在這裏插入圖片描述


-- 查詢第二個字是化的人(單引號,雙引號都可以)
SELECT * FROM student3 WHERE NAME LIKE '_化%';

在這裏插入圖片描述


-- 查詢姓名是三個字兒的人
SELECT * FROM student3 WHERE NAME LIKE '___';

在這裏插入圖片描述


-- 查詢姓名中包含馬字的人
SELECT * FROM student3 WHERE NAME LIKE '%馬%';

在這裏插入圖片描述


排序查詢

-- 排序查詢(默認升序):order by 排序字段1 排序方式1 ,  排序字段2 排序方式2...
SELECT * FROM student3 ORDER BY math ASC;

在這裏插入圖片描述


SELECT * FROM student3 ORDER BY math DESC;

在這裏插入圖片描述


-- 按照數學成績排名,如果數學成績一樣,則按照英語成績排名
-- 則當前邊的條件值一樣時,纔會判斷第二條件。
SELECT * FROM student3 ORDER BY math ASC,english ASC;

在這裏插入圖片描述


聚合函數

-- 查詢總人數(聚合函數的計算,會排除null值。)
SELECT COUNT(english) FROM student3;

在這裏插入圖片描述


-- 查詢總人數(聚合函數的計算,會排除null值。)
SELECT COUNT(IFNULL(english,0)) FROM student3;

在這裏插入圖片描述


-- 查詢數學成績的最高
SELECT MAX(math) FROM student3;

在這裏插入圖片描述


-- 查詢英語成績的最低
SELECT MIN(english) FROM student3;

在這裏插入圖片描述


-- 查詢英語成績的總和
SELECT SUM(english) FROM student3;

在這裏插入圖片描述


-- 查詢英語成績的平均值
SELECT AVG(english) FROM student3;

在這裏插入圖片描述


分組查詢

-- 分組查詢(分組之後查詢的字段只能是:分組字段、聚合函數)
-- 按照性別分組,分別查詢男、女同學的平均分
SELECT sex,AVG(math) FROM student3 GROUP BY sex; 

在這裏插入圖片描述


-- 按照性別分組,分別查詢男、女同學的平均分,人數
SELECT sex 性別,AVG(math) 平均分,COUNT(id) 人數 FROM student3 GROUP BY sex; 

在這裏插入圖片描述


-- 按照性別分組,分別查詢男、女同學的平均分,人數
-- 要求:分數低於70分的人,不參與分組
SELECT sex 性別,AVG(math) 平均分,COUNT(id) 人數 FROM student3 WHERE math>70 GROUP BY sex;

在這裏插入圖片描述


-- 要求:分數低於70分的人,不參與分組
-- 分組之後,人數要大於兩個人
SELECT sex 性別,AVG(math) 平均分,COUNT(id) 人數 FROM student3 WHERE math>70 GROUP BY sex HAVING COUNT(id)>2;
-- 或者 
SELECT sex 性別,AVG(math) 平均分,COUNT(id) 人數 FROM student3 WHERE math>70 GROUP BY sex HAVING 人數>2; 

在這裏插入圖片描述


分頁查詢

-- 分頁查詢(當前數據表中共有八條記錄)
   --	1. 語法:limit 開始的索引,每頁查詢的條數;
   --	2. 公式:開始的索引 = (當前的頁碼 - 1) * 每頁顯示的條數
SELECT * FROM student3 LIMIT 0,3;	-- 第1頁
SELECT * FROM student3 LIMIT 3,3;	-- 第2頁
SELECT * FROM student3 LIMIT 6,3;	-- 第3頁

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章