WeHelp
SQL 是操作與管理關聯式資料庫的標準語言,也是資料處理、資料分析工作中的重要組成。
  1. 簡介 SQL 語法用途
  2. 建立、修改資料表
  3. 新增資料
  4. 更新資料
  5. 刪除資料
  6. 取得、篩選、排序資料
  7. 分群、聚合資料
取得、篩選、排序資料
以下用一個簡單的「員工資料表」示範 SQL 如何取得、篩選與排序資料。 ## 1. 建立資料表 ```sql CREATE TABLE employees ( employee_id INT PRIMARY KEY, name VARCHAR(50), department VARCHAR(50), salary INT, hire_date DATE ); ``` ## 2. 新增範例資料 ```sql INSERT INTO employees (employee_id, name, department, salary, hire_date) VALUES (1, '王小明', '資訊部', 55000, '2022-03-15'), (2, '李小華', '人事部', 48000, '2021-07-01'), (3, '陳美玲', '資訊部', 62000, '2020-11-20'), (4, '林志偉', '業務部', 50000, '2023-01-10'), (5, '張雅婷', '業務部', 58000, '2022-09-05'); ``` 資料表內容如下: | employee_id | name | department | salary | hire_date | |---:|---|---|---:|---| | 1 | 王小明 | 資訊部 | 55000 | 2022-03-15 | | 2 | 李小華 | 人事部 | 48000 | 2021-07-01 | | 3 | 陳美玲 | 資訊部 | 62000 | 2020-11-20 | | 4 | 林志偉 | 業務部 | 50000 | 2023-01-10 | | 5 | 張雅婷 | 業務部 | 58000 | 2022-09-05 | --- # 一、取得資料:`SELECT` ## 取得所有欄位 ```sql SELECT * FROM employees; ``` `*` 代表選取所有欄位。 ## 取得指定欄位 ```sql SELECT name, department, salary FROM employees; ``` 只顯示員工姓名、部門與薪資。 ## 使用別名 ```sql SELECT name AS 員工姓名, salary AS 薪資 FROM employees; ``` `AS` 可以替欄位設定顯示名稱。 --- # 二、篩選資料:`WHERE` ## 篩選特定部門 ```sql SELECT * FROM employees WHERE department = '資訊部'; ``` 取得部門為「資訊部」的員工。 ## 篩選薪資大於 50,000 的員工 ```sql SELECT name, salary FROM employees WHERE salary > 50000; ``` 常用比較運算子: | 運算子 | 意義 | |---|---| | `=` | 等於 | | `<>` 或 `!=` | 不等於 | | `>` | 大於 | | `<` | 小於 | | `>=` | 大於或等於 | | `<=` | 小於或等於 | ## 使用 `AND` 同時符合多個條件 ```sql SELECT * FROM employees WHERE department = '業務部' AND salary >= 55000; ``` 找出部門為業務部,且薪資至少 55,000 的員工。 ## 使用 `OR` 符合其中一個條件 ```sql SELECT * FROM employees WHERE department = '資訊部' OR department = '業務部'; ``` ## 使用 `IN` ```sql SELECT * FROM employees WHERE department IN ('資訊部', '業務部'); ``` 這與前面的 `OR` 條件類似,適合篩選多個固定值。 ## 使用 `LIKE` 模糊搜尋 ```sql SELECT * FROM employees WHERE name LIKE '陳%'; ``` `%` 代表任意長度的文字,因此會找出姓「陳」的員工。 --- # 三、排序資料:`ORDER BY` ## 依薪資由小到大排序 ```sql SELECT name, salary FROM employees ORDER BY salary ASC; ``` `ASC` 代表升冪排序,也是預設值。 ## 依薪資由大到小排序 ```sql SELECT name, salary FROM employees ORDER BY salary DESC; ``` `DESC` 代表降冪排序。 ## 先依部門,再依薪資排序 ```sql SELECT name, department, salary FROM employees ORDER BY department ASC, salary DESC; ``` 排序規則為: 1. 部門按照字母或資料庫排序規則排列 2. 同一部門內,再依薪資由高到低排列 --- # 四、綜合使用 ```sql SELECT name, department, salary FROM employees WHERE salary >= 50000 ORDER BY salary DESC; ``` 這段 SQL 的意思是: 1. 從 `employees` 資料表取得資料 2. 只保留薪資至少 50,000 的員工 3. 依薪資由高到低排序 基本 SQL 查詢結構通常如下: ```sql SELECT 欄位 FROM 資料表 WHERE 篩選條件 ORDER BY 排序欄位 ASC 或 DESC; ```
相關學習地圖、教學課程
Python 資料工程
從 0 開始,成為資料工程師的學習路徑。
Python 後端工程、資料庫
從 0 開始,成為後端工程師的學習路徑。