常用 SQL 通用語法 - DDL - 創建庫表及約束

SQL 的數據定義語言 DDL 部分使我們有能力創建或刪除表格。

我們也可以定義索引(鍵),規定表之間的鏈接,以及施加表間的約束

操作 作用
CREATE DATABASE 創建新數據庫
ALTER DATABASE 修改數據庫
CREATE TABLE 創建新表
ALTER TABLE 變更(改變)數據庫表
DROP TABLE 刪除表
CREATE INDEX 創建索引(搜索鍵)
DROP INDEX 刪除索引

常用實例

實例 語法
CREATE DATABASE database_name 創建數據庫

創建表

CREATE TABLE 表名稱
(
列名稱1 數據類型,
列名稱2 數據類型,
列名稱3 數據類型,
....
)

例:

create table person
(
name char(20),
age int(3)
)

SQL 約束

約束用於限制加入表的數據的類型

可以在創建表時規定約束(通過 CREATE TABLE語句),或者在表創建之後也可以(通過 ALTER TABLE 語句)。

常見幾種約束

約束 作用
NOT NULL NOT NULL 約束強制 列 不接受 NULL 值。
UNIQUE UNIQUE 約束唯一標識數據庫表中的每條記錄
PRIMARY KEY PRIMARY KEY 約束唯一標識數據庫表中的每條記錄。
FOREIGN KEY 一個表中的 FOREIGN KEY 指向另一個表中的 PRIMARY KEY
CHECK CHECK 約束用於限制列中的值的範圍
DEFAULT DEFAULT 約束用於向列中插入默認值,如果沒有規定其他的值,那麼會將默認值添加到所有的新記錄
AUTO INCREMENT 隨 列數自動增長 ,AUTO_INCREMENT 的開始值是 1,每條新記錄遞增 1。

附:

UNIQUEPRIMARY KEY區別

UNIQUEPRIMARY KEY約束均爲列或列集合提供了唯一性的保證。

PRIMARY KEY 擁有自動定義的 UNIQUE 約束。

請注意,每個表可以有多個 UNIQUE 約束,但是每個表只能有一個 PRIMARY KEY 約束

FOREIGN KEY在不同DBMS中有不同的語法

以下例子爲MySQL FOREIGN KEY的設置

create table person
(
id   int(8) NOT NULL, 
name char(20) UNIQUE,
other_name char(20),
PRIMARY KEY(id),
FOREIGN KEY(other_name) REFERENCES 另一張表名(other_name)
)

FOREIGN KEY 約束用於預防破壞表之間連接的動作。

FOREIGN KEY 約束也能防止非法數據插入外鍵列,因爲它必須是它指向的那個表中的值之一。

CHECK 約束用於限制列中的值的範圍。

如果對單個列定義 CHECK 約束,那麼該列只允許特定的值

如果對一個表定義 CHECK 約束,那麼此約束會在特定的列中對值進行限制

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章