| 類型 | 說明 |
| CHAR(size) | 固定長度字串,最大 255 位元組 |
| VARCHAR(size) | 變動長度字串,最大由 size 指定 |
| NUMBER(size) | 整數,最大位數 size |
| NUMBER(size, d) | 定點數,總位數 size,小數位 d |
| DATE | 日期時間 |
常見約束
NOT NULL:欄位不可為空
PRIMARY KEY:主鍵,唯一識別每列
UNIQUE:唯一值
CHECK (condition):自訂驗證規則
FOREIGN KEY:外鍵參考
2. 插入資料 (INSERT)
INSERT INTO "table_name" (col1, col2, ...) VALUES (val1, val2, ...);
範例
INSERT INTO employee (first_name, last_name, age, address, city)
VALUES ('Luke', 'Duke', 45, '2130 Boars Nest', 'Hazard Co');
-- 中文資料
INSERT INTO employee (first_name, last_name, age, address, city)
VALUES ('Zhang', 'Weiguo', 28, '北京601信箱', '北京');
- 字串/日期常值必須用單引號括住,數值直接書寫。
- 欄位順序與 VALUES 順序必須一一對應。
3. 更新資料 (UPDATE)
UPDATE "table_name"
SET col1 = new_val1 [, col2 = new_val2 ...]
WHERE condition;
範例
-- 單欄位更新
UPDATE phone_book SET area_code = 623 WHERE prefix = 979;
-- 多欄位更新
UPDATE phone_book
SET last_name = 'Smith', prefix = 555, suffix = 9292
WHERE last_name = 'Jones';
-- 運算式更新 (年齡 +1)
UPDATE employee
SET age = age + 1
WHERE first_name = 'Mary' AND last_name = 'Williams';
4. 刪除資料 (DELETE)
DELETE FROM "table_name" WHERE condition;
範例
-- 刪除特定姓氏
DELETE FROM employee WHERE last_name = 'May';
-- 刪除多重條件 (OR)
DELETE FROM employee WHERE first_name = 'Mike' OR first_name = 'Eric';
-- ⚠️ 危險:無 WHERE 將刪除全表資料 (結構保留)
DELETE FROM employee;
5. 刪除資料表 (DROP TABLE)
DROP TABLE "table_name";
DROP vs DELETE 差異
| 操作 | 影響範圍 |
| DELETE FROM table | 刪除所有資料列,保留表結構、索引、約束、權限 |
| DROP TABLE table | 徹底移除表定義、所有資料、索引、約束、權限、觸發器等中繼資料 |
練習題
- Jonnie Weber 改嫁 Bob Williams,將 last_name 改為 'Weber-Williams'。
- Dirk Smith 生日到,age +1。
- 所有職稱 'Secretary' 改為 'Administrative Assistant'。
-- 參考答案
UPDATE employee SET last_name = 'Weber-Williams' WHERE first_name = 'Jonnie' AND last_name = 'Weber';
UPDATE employee SET age = age + 1 WHERE first_name = 'Dirk' AND last_name = 'Smith';
UPDATE employee SET title = 'Administrative Assistant' WHERE title = 'Secretary';
- 上一篇文章: VB6 結合 ADO 實作 SQL Server 2000 資料庫備份與還原完整模組代碼
- 下一篇文章: SQL 基礎教程(一):認識結構化查詢語言、核心指令分類與基本查詢範例
Copyright ©
程式碼之家 All Rights Reserved