SQL與資料庫的維護
表格的建立
將SQL中的基本文法作了一番介紹以後,但大多是偏向於資料庫資料的查詢與過濾,但實際上,我們通過SQL命令所可以做的事還有很多,接下來要介紹的便是如何利用SQL的文法命令來建立一個資料庫中的表格。
CREATE TABLE語句
我們可以利用這個命令,來建立一個全新的表格,但前提則是:資料庫必須已經存在。
CREATE TABLE table(field1 type[(size)][index1][,field2 type[(size)][index2][,...]][,nultifieldindex[,...]])
table
欲建立的新的表格名稱。
field1,field2
在新表格中的新的欄位名稱,到少要一個欄位以上。
type
欄位的資料類型。
size
欄位的大小。
index1,index2
利用CONSTRAINT條件子句定義一個單一欄位的索引名稱。
multifieldindex
利用CONSTRAINT條件子句定義一個多重欄位的索引名稱。
例如:
建立一個擁有職員姓名與部門欄位的表格。
CREATE TABLE 職員表格 (姓名TEST,部門TEST,職員編號 INTEGER CONSTRAINT職員欄位索引PRIMARY KEY)
在這一個範例中,我們建立了一個表格名稱為“職員表格”的表格,並且定義了該表格的主索引值,以限制資料不能重複輸入。
表格索引的建立
CREATE INDEX語句
這個命令主要是對一個已存在的表格建立索引,其用法如下:
CREATE[UNIQUE]INDEX index ON table(field[ASC|DESC][,field[ASC|DESC],...])
[WITH {PRIMARY|DISALLOWNULL|IGNORENULL}]
index
欲被建立的索引名稱。
table
欲建立索引的表格名稱。
field
欲被建立的索引的欄位名稱。並可通過DESC保留字,來決定索引的順序。
例如:
在職員表格中建立一個索引。
CREATE INDEX 新索引名稱
ON 職員表格(姓名部門);
表格的欄位更新
CONSTRAINT條件子句
CONSTRAINT 的功能是類似索引(INDEX)的,雖然CONSTRAINT 也可以建立表格之間的關聯性。
單一欄位索引:
CONSTRAINT name{PRIMARY KEY|UNIQUE|REFERENCES foreigntable[(foreignfield1,foreignfield2)]}
多欄位索引:
CONSTRAINT name
{PRIMARY KEY(primary1[,primary2[,...]])
|UNIQUE(unique1[,unique2[,...]])
|FOREIGN KEY (ref1[,ref2[,...]])
|REFERENCES foreigntable[(foreignfield1[,foreignfield2[,...]])]}
name
要被建立的CONSTRAINT名稱。
primary1,primary2
被用來設計成主索引值的欄位名稱(可一個以上)。
unique1,unique2
被用來設計成唯一索引值的欄位名稱(可一個以上)。
foreign key
欄位名稱,或是參考到別的表格中欄位的欄位名稱。
foreigntable
如前所述,被參考到的表格。
foreignfield1,foreignfield2
在參考到的表格當中,被ref1,ref2欄位所指定的欄位。如果被參考的欄位是參考表格中的主索引值,你也可以省略這個條件子句。
例如:
當我們要建立一個新的職員資料表格,表格包含姓名、部門名稱與生日三個欄位,且由這三個欄位建立一個唯一的索引時,可以使用下面這段SQL的語句。
CREATE TABLE 職員資料表格
(姓名 TEST,部門名稱 TEST,生日 DATETIME,CONSTRAINT 職員資料表格限制 UNIQUE(姓名,部門名稱,生日));
以上是SQL中,與資料庫表格建立相關的命令,你可以利用這些命令,通過SQL的語句,將資料庫表格完整的建立出來,接下來的章節,將針對資料庫建立之後的維護與增刪所要使用的SQL語句作一介紹。