SQL-筆記-2022-11-30
--給查詢的欄位給別名,也可以給表給別名
SELECT `studentno` AS 學號,`studentname` AS 學生姓名 FROM student AS S
-- 函式 CONCAT(a,b)
SELECT CONCAT('姓名= ',`studentname`) AS 新名字 FROM student
-- 去重
SELECT `studentno` FROM result
-- 發現有重複的名字出現,一個學生考了多門功課,其實只需要一個學生顯示一次即可,去重
SELECT DISTINCT `studentno` FROM result
SELECT VERSION() -- 函式
SELECT 200*3-8+2 AS 計算結果 -- 表示式
SELECT @@auto_increment_increment -- 步長 變數
SELECT `studentno`,`studentresult`+5 AS 加分後的結果 FROM result -- 學生考試成績加五分後的結果
資料庫中的表示式:文字值,列,NULL,函式,計算表示式,系統變數 等等
SELECT 表示式 FROM 表
18課 WHERE 條件子句
檢索資料中符合條件的值
運算子:儘量使用英文字母
and && a&&b a and b 邏輯與
or || a||b a or b 邏輯或
not ! not a !a 邏輯非
-- =====================WHERE============================
SELECT `studentno`,`studentresult` FROM result
WHERE `studentresult`>=70 AND `studentresult`<=80
SELECT `studentno`,`studentresult` FROM result
WHERE `studentno`=1000
SELECT `studentno`,`studentresult` FROM result
WHERE NOT `studentno`=1000
--模糊查詢 比較運算子
IS NULL a IS NULL 如果操作符為null ,結果為真
IS NOT NULL a IS NOT NULL 如果操作符為NOT null ,結果為真
BETWEEN a between b and c
like a like b 如果a 可以匹配為b 結合% (0到任意個字元) - 任意一個字元
in a in (a1,a2,a3,a4....) 如果a 在其中一個內則為真
SELECT `studentno`,`studentname` FROM student -- 張姓後不管長度的所有名字
WHERE `studentname` LIKE '張%'
SELECT `studentno`,`studentname` FROM student -- 張姓後1個字的所有名字
WHERE `studentname` LIKE '張_'
SELECT `studentno`,`studentname` FROM student -- 張姓後2個字的所有名字
WHERE `studentname` LIKE '張__'
SELECT `studentno`,`studentname` FROM student -- 有名為偉的所有名字
WHERE `studentname` LIKE '%偉%'
SELECT `studentno`,`studentname` FROM student -- 有名為偉的所有名字
WHERE `studentno` IN (1000,1001)