跳轉到內容

資料庫基礎:資料定義語言

來自 Wikibooks,開放世界中的開放書籍

試卷 2 - ⇑ 資料庫基礎 ⇑

← DELETE(刪除) 資料定義語言 客戶端伺服器資料庫 →


資料定義語言 (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(建立)

[編輯 | 編輯原始碼]

您需要了解它們的功能(如上所述),但只需要瞭解如何使用 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)
)

ALTER(修改)

[編輯 | 編輯原始碼]

SQL 中的 ALTER 語句無需手動訪問表即可更改關係資料庫中表的屬性。

ALTER TABLE crooks ADD convictions INTEGER
ALTER TABLE crooks DROP COLUMN convictions

DROP(刪除)

[編輯 | 編輯原始碼]

刪除表就像投下一顆原子彈。它是不可逆的,通常不建議這樣做!

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)

設定外部索引鍵

[編輯 | 編輯原始碼]
華夏公益教科書