首先說說怎麼用SQL語句創建數據庫,創建數據庫的語句有如下幾種:
1. CREATE TABLE(創建新表)
2. CREATE INDEX(增加索引)
3. DROP INDEX(刪除索引)
4. CONSTRAINT(約束語句)
5. ALTER TABLE(修改表)
6. DROP TABLE(刪除表)
CREATE TABLE語句:
在數據庫中生成新表,表中字段的類型可以為:INTEGER(整型)、LONG(長整型)、 SINGLE(單精度浮點數)、DOUBLE(雙精度浮點數)、DATETIME(日期型,也可以寫成DATE)、BIT(布爾型)、 TEXT(字符串型,最大255個字節)、MEMO(字符串型,最大可達1.2G字節)、 COUNTER(自動遞增長整型,可確定記錄的唯一性)、CURRENCY(貨幣型,精確到小數點左邊15位,右邊4位)、 BINARY(字節型,最大255個)、LONGBINARY(用於OLE對象)、GUID(全局唯一標識符)。
生成表NewTable,該表有文本字段Field1和整型字段FIEld2,表名和字段名可以隨便你取,不區分大小寫,但是,有些保留字不能用作表名字段名,比如Number
CREATE TABLE NewTable(Field1 TEXT(30), FIEld2 INTEGER);
CREATE INDEX語句:
INDEX是為了加快查找記錄的速度,或者是為了增加字段約束關系而設置的。
創建索引語句執行前表中可以有記錄,但存在的記錄必須滿足該索引語句的約束關系,否則語句不能執行,另外要注意的是在同一個數據庫中(而不僅僅是在同一個表中),索引名不能相同,否則語句也會失敗。
生成字段FIEld1的索引字段NewIndex,兩條語句作用相同
生成後FIEld1字段可以有相同的值,可以有空值(NULL)
CREATE INDEX NewIndex ON NewTable (FIEld1);
CREATE INDEX NewIndex ON NewTable (FIEld1) WITH IGNORE NULL;
生成字段Field1的索引字段NewIndex,注意,每個表裡只能有一個主索引(PRIMARY)。生成後FIEld1字段不能有相同的值,不能有空值(當然,如果是TEXT類型,可以有一個空串,但是空串不是空值)
CREATE INDEX NewIndex ON NewTable(FIEld1) WITH PRIMARY;
字段FIEld1不能有相同的值,但可以有空值(兩個空值不算相同的值)
CREATE UNIQUE INDEX NewIndex ON NewTable(FIEld1);
字段FIEld1可以有相同的值,但不能有空值
CREATE INDEX NewIndex ON NewTable(FIEld2) WITH DISALLOW NULL
可以在索引語句中加入ASC(升序)或DESC(降序)來控制記錄排列順序如果不使用順序字,SQL則默認使用ASC順序
CREATE INDEX NewIndex ON NewTable(Field1 ASC, FIEld2 DESC);
DROP INDEX語句:
刪除表NewTable中的索引NewIndex,語句執行前索引NewIndex必須存在
DROP INDEX NewIndex ON NewTable;
CONSTRAINT語句:
CONSTRAINT子句用於創建數據庫完整性的索引,它和INDEX語句作用一樣,有些地方可以互相替代,它可以使用PRIMARY KEY(主關鍵字),UNIQUE(唯一)和FOREIGN KEY(外部關鍵字),和INDEX相比不能使用IGNOR NULL和DISALLOW NULL,但多了FOREIGN KEY(這也是它最強大的地方)。另外, CONSTRAINT語句必須和CREATE TABLE或ALTER TABLE語句一起使用。
生成表NewTable,主關鍵字段是FIEld1,主索引是NewPK
CREATE TABLE NewTable(Field1 LONG CONSTRAINT NewPK PRIMARY KEY, Field2 MEMO, FIEld3 DATETIME);
生成索引為NewUK的表NewTable,FIEld1不能有相同值,可以有空值
CREATE TABLE NewTable(FIEld1 INTEGER CONSTRAINT NewUK UNIQUE);
生成多列的主索引,兩條記錄的Field1和FIEld2不能全部相同,