初學者指南:深入了解 SQL 語法

Published October 20, 2024 by 徐培鈞
資料庫

SQL(Structured Query Language)是一種用於管理和操作關聯型資料庫的標準語言。

無論你是要創建資料表、插入資料,還是進行複雜的查詢,SQL 都能夠提供強大的功能。

對於初學者來說,學習 SQL 的基礎語法將幫助你快速掌握資料庫操作的基本概念。

本文將介紹 SQL 的常見語法,從最基本的語法到進階語法,我們將一步步地構建知識,讓你對 SQL 有全面的理解。


SQL 基本語法

在開始學習 SQL 語法前,先了解 SQL 語句的結構。

以下是一個簡單的 SQL 語句範例:

指令 列名1, 列名2, ...
FROM 表名
  • 指令:執行操作的關鍵字(如 SELECTINSERT INTO 等)。
  • 列名:指定要查詢或操作的欄位名稱。
  • 表名:指定要操作的資料表。

讓我們從 SQL 的基本語法開始,並逐漸介紹更進階的語法。


SELECT:查詢資料

SELECT 是最常用的 SQL 語法之一,主要用於查詢資料表中的數據。

基本語法:

SELECT 列名1, 列名2, ...
  • SELECT 指定要查詢的欄位。

範例:

SELECT first_name, last_name;

此語句會查詢並選擇名為 first_namelast_name 的欄位,但尚未指定要從哪個表查詢。


FROM:指定資料來源

FROM 用來指定資料表的來源。使用 FROM 時,你需要告訴 SQL 從哪個資料表中查詢數據。

基本語法:

SELECT 列名1, 列名2, ...
FROM 表名;

範例:

SELECT first_name, last_name
FROM employees;

這段程式碼查詢 employees 表中的 first_namelast_name 欄位。


WHERE:篩選資料

WHERE 用來過濾查詢結果,只返回符合條件的資料。

基本語法:

SELECT 列名1, 列名2, ...
FROM 表名
WHERE 條件;
  • WHERE 用來設定過濾條件,只有符合條件的資料才會被返回。

範例:

SELECT first_name, last_name
FROM employees
WHERE department = 'HR';

這段程式碼查詢 employees 表中屬於 HR 部門的員工。


DISTINCT:去除重複值

DISTINCT 用來刪除查詢結果中重複的記錄,讓返回的數據中每個值都唯一。

基本語法:

SELECT DISTINCT 列名1, 列名2, ...
FROM 表名;

範例:

SELECT DISTINCT department
FROM employees;

這段程式碼會查詢 employees 表中所有部門的名稱,但不會顯示重複的部門名稱。


ORDER BY:排序資料

ORDER BY 用來對查詢結果進行排序,可以根據指定的欄位升序(默認)或降序排序。

基本語法:

SELECT 列名1, 列名2, ...
FROM 表名
ORDER BY 列名 [ASC|DESC];
  • ASC:升序排序(默認)。
  • DESC:降序排序。

範例:

SELECT first_name, last_name
FROM employees
ORDER BY last_name DESC;

這段程式碼將 employees 表中的員工按姓氏降序排序。


LIMIT:限制返回的記錄數

LIMIT 用來限制查詢結果中返回的記錄數。它通常用來控制查詢結果集的大小。

基本語法:

SELECT 列名1, 列名2, ...
FROM 表名
LIMIT 數量;

範例:

SELECT first_name, last_name
FROM employees
LIMIT 5;

這段程式碼會從 employees 表中查詢前 5 個員工的 first_namelast_name


插入、更新與刪除資料

INSERT INTO:插入資料

INSERT INTO 用來向資料表中插入新記錄。

基本語法:

INSERT INTO 表名 (列名1, 列名2, ...)
VALUES (值1, 值2, ...);

範例:

INSERT INTO employees (first_name, last_name, department)
VALUES ('John', 'Doe', 'IT');

這段程式碼向 employees 表中插入一條新記錄,員工 John Doe 屬於 IT 部門。


UPDATE:更新資料

UPDATE 用來更新資料表中的記錄,並搭配 WHERE 子句來控制要更新的記錄範圍。

基本語法:

UPDATE 表名
SET 列名1 = 值1, 列名2 = 值2, ...
WHERE 條件;

範例:

UPDATE employees
SET department = 'HR'
WHERE last_name = 'Doe';

這段程式碼將姓氏為 Doe 的員工的部門更新為 HR。


DELETE:刪除資料

DELETE 用來從資料表中刪除一條或多條記錄,並通常搭配 WHERE 來控制刪除範圍。

基本語法:

DELETE FROM 表名
WHERE 條件;

範例:

DELETE FROM employees
WHERE last_name = 'Doe';

這段程式碼將刪除 employees 表中所有姓氏為 Doe 的記錄。


資料表操作

CREATE TABLE:創建資料表

CREATE TABLE 用來創建一個新表,並定義表中每個欄位的資料類型。

基本語法:

CREATE TABLE 表名 (
  列名1 資料類型1,
  列名2 資料類型2,
  ...
);

範例:

CREATE TABLE employees (
  id INT PRIMARY KEY,
  first_name VARCHAR(50),
  last_name VARCHAR(50),
  department VARCHAR(50)
);

這段程式碼創建了一個名為 employees 的表,包含四個欄位:idfirst_namelast_namedepartment,其中 id 是主鍵。


ALTER TABLE:修改資料表

ALTER TABLE 用來修改現有資料表的結構,比如新增、刪除或修改欄位。

基本語法:

ALTER TABLE 表名
ADD 列名 資料類型;

範例:

ALTER TABLE employees
ADD hire_date DATE;

這段程式碼為 employees 表新增了一個名為 hire_date 的欄位,類型為日期。


DROP TABLE:刪除資料表

DROP TABLE 用來刪除資料表,表中所有的記錄和結構都會被移除。

基本語法:

DROP TABLE 表名;

範例:

DROP TABLE employees;

這段程式碼刪除了 employees 表。


結語

SQL 是資料庫操作的核心語言,學習 SQL 語法可以幫助你在資料管理中變得更高效。

本文介紹了 SQL 中最基本的查詢、插入、更新、刪除資料的操作,以及一些常用的資料表管理語法。

隨著你對這些語法的熟悉,將可以更靈活地進行複雜的資料操作。


參考資料