本文介紹資料定義語言 (DDL) 中建立、修改、刪除資料庫與資料表的核心指令,並說明常見資料類型、約束、索引與跨資料庫平台的差異注意事項。
CREATE DATABASE Catalog;
需具備建立資料庫權限,否則請 DBA 協助建立並授權。
基本語法:
CREATE TABLE table_name (
column1 data_type,
column2 data_type,
...
);
| 類型 | 範例 | 說明 |
|---|---|---|
| CHAR | CHAR(8) | 固定長度字串 |
| VARCHAR | VARCHAR(128) | 可變長度字串 |
| INT | INT(32) | 整數 |
| DECIMAL | DECIMAL(12,2) | 定點數,精確度/小數位 |
| BINARY | BINARY | 二進位物件 (BLOB) |
| BOOLEAN | BOOLEAN | 真/假 (BIT/BYTE) |
注意:各資料庫廠商對類型名稱、參數支援度不同,請參閱對應文件。
CREATE TABLE Products (
prod_id INT(16),
prod_color VARCHAR(20),
prod_descr VARCHAR(255),
prod_size DECIMAL(8,2)
);
-- 自動遞增 + 唯一約束 (MySQL 風格)
CREATE TABLE Products (
prod_id INT(16) AUTO_INCREMENT,
prod_color VARCHAR(20),
prod_descr VARCHAR(255),
prod_size DECIMAL(8,2),
UNIQUE (prod_id)
);
-- 建立索引
CREATE INDEX ProdIndex ON Products (prod_id);
-- 新增欄位 (指定位置)
ALTER TABLE Products ADD prod_name VARCHAR(20) AFTER prod_id;
-- 刪除欄位
ALTER TABLE Products DROP COLUMN prod_size;
-- 變更欄位型別
ALTER TABLE Products ALTER COLUMN prod_color INT(20); -- SQL Server 語法
-- 或 MySQL: ALTER TABLE Products CHANGE prod_color prod_color_id INT(20);
警告:變更型別可能導致資料截斷或轉換失敗(如 VARCHAR 轉 INT),生產環境務必先備份並測試。
DROP TABLE Products;
DROP DATABASE Catalog;
DROP DATABASE 會連同所有資料表一併刪除,SQL-99 標準定義。TRUNCATE TABLE 或 FLUSH TABLE 僅清空資料保留結構。IDENTITY vs AUTO_INCREMENT vs SEQUENCE) 差異極大。熟練 DDL 指令是資料庫設計與維護的基石,謹慎操作、版本控管腳本,才能守護資料資產安全。