表(SQL)
表
建立資料表
code:sql
CREATE TABLE IF NOT EXISTS mytable (
column DataType TableConstraint DEFAULT default_value,
another_column DataType TableConstraint DEFAULT default_value,
…
);
新資料表的結構由Schema定義,其會描述一系列的欄位,包含 欄位名稱
欄位可用的資料型別
(可選)插入值的資料表限制
(可選)預設值
如果已經存在同名資料表,SQL會拋出錯誤,可以使用IF NOT EXISTS子句迴避
資料型別
整數型別,某些實作中,布林值會以0或1的整數形式表示 浮點數型別,依所需精度選擇
文字型別,依所需底層效率選擇
CARACTER和VARCHAR都需指定最大字元數
日期與時間戳記
二進位資料,通常需要搭配正確的中繼資料,才能查詢或使用
資料表限制
此欄位的值必須是唯一,且每個值可用於識別每一筆資料
在整數欄位上,每次插入資料列時會自動填入且遞增
此欄位的值必須是唯一,且不可與資料表的其他資料列的欄位值重複
和PRIMARY KEY的差異是,不一定要用作資料列的主鍵
NOT NULL
使用更複雜的運算式檢查插入值是否有效
一致性檢查,確保此欄位的每個值,都對應到另一個資料表中某個欄位的值
範例
code:sql
CREATE TABLE movies (
id INTEGER PRIMARY KEY,
title TEXT,
director TEXT,
year INTEGER,
length_minutes INTEGER
);
修改資料表
新增欄位
code:sql
ALTER TABLE mytable
ADD column DataType OptionalTableConstraint
DEFAULT default_value;
刪除欄位
code:sql
ALTER TABLE mytable
DROP column_to_be_deleted;
某些資料庫(包含SQLite)不支援此功能,必須建立一個新的資料表,並把資料遷移過去
重新命名資料表
code:sql
ALTER TABLE mytable
RENAME TO new_table_name;
刪除整個資料表
code:sql
DROP TABLE IF EXISTS mytable;