SQL 範例語法

October 1, 2024

-- 從 students 表格中回傳全部欄位的資料 SELECT * FROM students;

-- 從 students 表格中選取姓名、班級、成績三個欄位 SELECT 姓名, 班級, 成績 FROM students;

-- 每次顯示 5 筆資料,跳過前面 10 筆 SELECT 姓名, 班級, 成績 FROM Students LIMIT 5 OFFSET 10;

-- 顯示 1 年 2 班的資料 SELECT 姓名, 班級, 成績 FROM Students WHERE 班級 = '1 年 2 班';

-- 顯示 1 年 2 班以外的資料 SELECT 姓名, 班級, 成績 FROM Students WHERE 班級 <> '1 年 2 班';

-- 使用班級名稱來進行排序 SELECT 姓名, 班級, 成績 FROM Students WHERE 班級 <> '1 年 2 班' ORDER BY 班級;

-- 使用班級名稱和成績來進行排序 SELECT 姓名, 班級, 成績 FROM Students WHERE 班級 <> '1 年 2 班' ORDER BY 班級, 成績;

-- 使用班級名稱和成績來進行排序 (成績由高排到低) SELECT 姓名, 班級, 成績 FROM Students WHERE 班級 <> '1 年 2 班' ORDER BY 班級, 成績 DESC;

-- 查詢張小婷同學 SELECT 姓名, 班級, 成績 FROM students WHERE 姓名 = '張小婷';

-- 查詢所有姓「張」的同學 SELECT 姓名, 班級, 成績 FROM students WHERE 姓名 LIKE '張%';

-- 替詢所有姓「張」,名字只有兩個字的同學 SELECT 姓名, 班級, 成績 FROM students WHERE 姓名 LIKE '張_';

-- 查詢成績大於且等於 80 分 SELECT 姓名, 班級, 成績 FROM students WHERE 成績 >= 80;

-- 查詢成績介於 80 和 90 分 SELECT 姓名, 班級, 成績 FROM students WHERE 成績 >= 80 AND 成績 <90;

-- 使用 BETWEEN 關鍵字來查詢分數區間 SELECT 姓名, 班級, 成績 FROM students WHERE 成績 BETWEEN 80 AND 90;

-- 查詢出成績在 80 到 90 之間,且班級是「1 年 1 班」或「1 年 2 班」的學生 SELECT 姓名, 班級, 成績 FROM students WHERE 成績 BETWEEN 80 AND 90 AND (班級 = '1 年 1 班' OR 班級 = '1 年 2 班');

-- 使用 IN 關鍵字來簡化多個 OR 條件的使用 SELECT 姓名, 班級, 成績 FROM students WHERE 成績 BETWEEN 80 AND 90 AND (班級 IN ('1 年 1 班', '1 年 2 班'));

-- 計算成績欄的平均值、加總值、最大值、最小值、計數 SELECT AVG(成績), SUM(成績), MAX(成績), MIN(成績), COUNT(成績) FROM students;

-- 使用 AS 關鍵字設定別名 SELECT AVG(成績) AS 成績平均, MAX(成績) AS 最高分 FROM students;

-- 四捨五入到小數第一位 SELECT ROUND(AVG(成績),1) AS 成績平均 FROM students;

-- 四捨五入到整數位 SELECT ROUND(AVG(成績)) AS 成績平均 FROM students;

-- 查詢各班的成績平均,並將分數由高至低排序 SELECT 班級, ROUND(AVG(成績)) AS 成績平均 From students GROUP BY 班級 ORDER BY 成績平均 DESC;

-- 查詢成績平均大於且等於 80 的班級,並將分數由高至低排序 SELECT 班級, ROUND(AVG(成績)) AS 成績平均 From students GROUP BY 班級 HAVING 成績平均 >= 80 ORDER BY 成績平均 DESC;

-- 計算整個表格的行數 SELECT COUNT(*) FROM students;

-- 計算「社團」欄的行數 (會忽略空白值) SELECT COUNT(社團) FROM students;

-- 計算有多少種社團 SELECT COUNT(DISTINCT 社團) FROM students;

-- 列出社團的編號名稱 SELECT DISTINCT 社團 FROM students;

-- 列出社團的編號名稱 (不包含空值) SELECT DISTINCT 社團 FROM students WHERE 社團 IS NOT NULL ORDER BY 社團;

-- 建立名為 clubs 的表格,包含社團編號 (主鍵) 和社團名稱兩個欄位 CREATE TABLE clubs ( 社團編號 INT PRIMARY KEY, 社團名稱 VARCHAR(15) );

-- 刪除名為 clubs2 的表格 DROP TABLE clubs2;

-- 插入資料到社團表格 INSERT INTO clubs (社團編號, 社團名稱) VALUES (101, '吉他社'), (102, '籃球社'), (103, '美術社'), (104, NULL);

SELECT * FROM clubs;

-- 更新資料 UPDATE clubs SET 社團名稱 = '舞蹈社' WHERE 社團編號 = 104;

-- 刪除資料 DELETE FROM clubs WHERE 社團編號 = 104;

-- 查詢學生報名的社團名稱 (LEFT JOIN) Select students.姓名, students.社團, clubs.社團名稱 From Students LEFT JOIN clubs On students.社團 = clubs.社團編號 WHERE 班級 = '1 年 1 班'

-- 查詢學生報名的社團名稱 (INNER JOIN) Select students.姓名, students.社團, clubs.社團名稱 From Students INNER JOIN clubs On students.社團 = clubs.社團編號 WHERE 班級 = '1 年 1 班'