資料庫基礎:資料定義語言
外觀
資料定義語言 (DDL) 是一種調整資料庫結構的方法。您可能過去使用過 Access 或 MySQL 等 GUI 建立過資料庫。DDL 允許您從純程式碼建立資料庫,包括以下功能:
- 建立表:CREATE TABLE(建立表)
- 更改表結構:ALTER(修改)
- 刪除表:DROP(刪除)
要建立表,使用者需要定義表名和每個屬性,包括資料型別和長度。
CREATE TABLE Customer(CustomerID varchar(5), CustomerName varchar(255), CustomerAddress varchar(255), PRIMARY KEY (CustomerID));
支援的資料型別示例(取決於資料庫)
| 資料型別 | 描述 |
|---|---|
| Character (n) | 固定長度 (n) 的字元字串 |
| Varchar (n) | 可變長度字元字串,最大欄位長度為 (n) |
| Boolean | 真或假 |
| Int | 整數的簡稱,表示整數 |
| Decimal (p,s) | 十進位制數,包括小數點前後的位數 |
| Real | 任何最多包含 7 位小數的數字 |
| Date | 格式為日、月、年 |
| Time | 格式為時、分、秒 |
您需要了解它們的功能(如上所述),但只需要瞭解如何使用 CREATE TABLE 命令即可。讓我們看看如何建立上面提到的 crooks 表。
CREATE TABLE crooks
(
ID INTEGER PRIMARY KEY,
NAME VARCHAR(16),
GENDER VARCHAR(6),
DOB DATE,
TOWN VARCHAR(20),
NUMSCARS INTEGER
)
|
問題 編寫一個 DDL 語句來建立表 Customer(CustomerID, CustomerName, Address, Postcode, Email) 答案
CREATE TABLE customer (
CustomerID INTEGER PRIMARY KEY,
CustomerName VARCHAR(16),
Address VARCHAR(30),
Postcode VARCHAR(8),
Email VARCHAR(20)
)
|
SQL 中的 ALTER 語句無需手動訪問表即可更改關係資料庫中表的屬性。
ALTER TABLE crooks ADD convictions INTEGER
ALTER TABLE crooks DROP COLUMN convictions
刪除表就像投下一顆原子彈。它是不可逆的,通常不建議這樣做!
DROP TABLE crooks
透過執行此程式碼行,表“crooks”將從資料庫中刪除,並且無法恢復,除非之前已建立備份。
主鍵可以透過 alter 語句在表建立後設置。
ALTER TABLE Persons
ADD PRIMARY KEY (id)
主鍵也可以在建立表時設定。
CREATE TABLE users
(
user_id int NOT NULL,
username varchar(255) NOT NULL,
password varchar(255) NOT NULL,
Address varchar(255),
PRIMARY KEY (user_id)
)
要在建立表時設定由兩列組成的主鍵,您可以執行以下操作
CREATE TABLE users
(
user_id int NOT NULL,
username varchar(255) NOT NULL,
password varchar(255) NOT NULL,
Address varchar(255),
CONSTRAINT pk_UserId PRIMARY KEY (user_id,username)
)
其中約束名稱為 UserId,表的屬性為 user_id 和 username 列。
這也可以在表建立後完成。
ALTER TABLE users
ADD CONSTRAINT pk_UserID PRIMARY KEY (user_id,username)