DQL:查詢表中的記錄

DQL:查詢表中的記錄

* select * from 表名;

1. 語法:
	select
		欄位列表
	from
		表名列表
	where
		條件列表
	group by
		分組欄位
	having
		分組之後的條件
	order by
		排序
	limit
		分頁限定


2. 基礎查詢
	1. 多個欄位的查詢
		select 欄位名1,欄位名2... from 表名;
		* 注意:
			* 如果查詢所有欄位,則可以使用*來替代欄位列表。
	2. 去除重複:
		* distinct
	3. 計算列
		* 一般可以使用四則運算計算一些列的值。(一般只會進行數值型的計算)
		* ifnull(表達式1,表達式2):null參與的運算,計算結果都為null
			* 表達式1:哪個欄位需要判斷是否為null
			* 如果該欄位為null後的替換值。
	4. 起別名:
		* as:as也可以省略
		

3. 條件查詢
	1. where子句後跟條件
	2. 運算符
		* > 、< 、<= 、>= 、= 、<>
		* BETWEEN...AND  
		* IN( 集合) 
		* LIKE:模糊查詢
			* 佔位符:
				* _:單個任意字元
				* %:多個任意字元
		* IS NULL  
		* and  或 &&
		* or  或 || 
		* not  或 !
		
			-- 查詢年齡大於20歲

			SELECT * FROM student WHERE age > 20;
			
			SELECT * FROM student WHERE age >= 20;
			
			-- 查詢年齡等於20歲
			SELECT * FROM student WHERE age = 20;
			
			-- 查詢年齡不等於20歲
			SELECT * FROM student WHERE age != 20;
			SELECT * FROM student WHERE age <> 20;
			
			-- 查詢年齡大於等於20 小於等於30
			
			SELECT * FROM student WHERE age >= 20 &&  age <=30;
			SELECT * FROM student WHERE age >= 20 AND  age <=30;
			SELECT * FROM student WHERE age BETWEEN 20 AND 30;
			
			-- 查詢年齡22歲,18歲,25歲的資訊
			SELECT * FROM student WHERE age = 22 OR age = 18 OR age = 25
			SELECT * FROM student WHERE age IN (22,18,25);
			
			-- 查詢英語成績為null
			SELECT * FROM student WHERE english = NULL; -- 不對的。null值不能使用 = (!=) 判斷
			
			SELECT * FROM student WHERE english IS NULL;
			
			-- 查詢英語成績不為null
			SELECT * FROM student WHERE english  IS NOT NULL;



			-- 查詢姓馬的有哪些? like
			SELECT * FROM student WHERE NAME LIKE '馬%';
			-- 查詢姓名第二個字是化的人
			
			SELECT * FROM student WHERE NAME LIKE "_化%";
			
			-- 查詢姓名是3個字的人
			SELECT * FROM student WHERE NAME LIKE '___';
			
			
			-- 查詢姓名中包含德的人
			SELECT * FROM student WHERE NAME LIKE '%德%';
Tags: