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語句
這個指令主要是對一個已存在的表格建立索引,其用法如下:
[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
{PRIMARMAR
多欄位索引:
CONSTRAINT name
{PRIMARMARMAR
多欄位索引:
CONSTRAINT name
{PRIMARMARMAR
多欄位索引:
CONSTRAINT name
{PRIMARMARMAR
多欄位索引:
CONSTRAINT name
{PRIMARMARMARgEY(primary1[]...; |UNIQUE(unique1[,unique2[,...]])
|FOREIGN KEY (ref1[,ref2[,...]])
|REFERENCES foreigntable[(foreignfield1[,foreignfield2[,...]]) ]}
name
要被建立的CONSTRAINT名稱。
primary1,primary2
被用來設計成主鍵值的欄位名稱(可一個以上)。
unique1,unique2
被用來設計成唯一鍵值的欄位名稱(可一個以上)。
foreign key
foreigntable
如前所述,被參考到的表格。
在參考到的表格當中,被ref1,ref2欄位所指定的欄位。如果被參考的欄位是參考表格中的主鍵值,你也可以省略這個條件子句。
例如: