1. 程式人生 > 其它 >SQL-筆記-2022-11-30

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)