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。 |
附:
UNIQUE
和 PRIMARY KEY
區別
UNIQUE
和 PRIMARY 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
約束,那麼此約束會在特定的列中對值進行限制。