sqlite3 中創建帶有數據類型的表

在SQL中,創建和刪除數據庫對象的語句一般被稱爲數據定義語言(data definition language, DDL),操作這些對象中數據的語句稱爲數據操作語言(data manipulation language,DML)。創建表的語句屬於DDL,用CREATE TABLE命令,如下定義:
CREATE [TEMP] TABLE table_name (column_definitions [, constraints]);
用TEMP或TEMPORARY保留字聲明的表爲臨時表,只存活於當前會話,一旦連接斷開,就會被自動刪除。
中括號表示可選項。
另外,豎線表示在多箇中選一,如:
CREATE [TEMP|TEMPORARY] TABLE … ;
如果沒有指明創建臨時表,則創建的是基本表,將會在數據庫中持久存在。
數據庫中還有其它類型的表,如系統表和視圖,現在先不介紹。
CREATE TABLE命令至少需要一個表名和一個字段名。命令中table_name表示表名,必須與其它所有的標識符不同。column_definitions表示一個用逗號分隔的字段列表。每個字段定義包括一個名稱、一個域和一個逗號分隔的字段約束表。“域”一般情況下是一個類型,與編程語言中的數據類型同名,指明存儲在該列的數據的類型。在SQLite中有5種本地類型:INTEGER、REAL、TEXT、BLOB和NULL,所有這些域將在本章後面的“存儲類”一節中介紹。“約束”用來控制什麼樣的值可以存儲在表中或特定的字段中。例如,你可以用UNIQUE約束來規定所有記錄中某個字段的值要各不相同。約束將會在“數據完整性”一節中介紹。
在字段列表後面,可以跟隨一個附加的字段約束,如下例:
CREATE TABLE contacts ( id INTEGER PRIMARY KEY,
name TEXT NOT NULL COLLATE NOCASE,
phone TEXT NOT NULL DEFAULT 'UNKNOWN',
UNIQUE (name,phone) );

發佈了149 篇原創文章 · 獲贊 6 · 訪問量 31萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章