本文講解了使用SQL語言創建基本表的方法,以及使用SQL修改基本表和刪除基本表的方法。
首先說一下什么是基本表,本身獨立存在的表稱為基本表,在SQL語言中一個關系唯一對應一個基本表。基本表的定義指建立基本關系模式,而變更則是指對數據庫中已存在的基本表進行刪除與修改。
1、基本表的定義
SQL使用CREATE TABLE語句來定義基本表,其語句格式為:
CREATE TABLE [<數據庫名>.]<表名>
(<列名> 數據類型 [缺省值] [NOT NULL / NULL]
[,<列名> 數據類型 [缺省值] [NOT NULL / NULL]]......
[,UNIQUE (列名[,列名]......)]
[,PRIMARY KEY(列名)]
[,FOREIGN KEY(列名[,列名]......)REFERENCE <表名>(列名[,列名]
......)]
[,CHECK(條件)] [其它參數])
其中,〈數據庫名〉.]指出將新建立的表存放于該數據庫中; 新建的表由兩部分組成:其一為表和一組列名,其二是實際存放的數據(即可在定義表的同時,直接存放數據到表中);
列名為用戶自定義的易于理解的名稱,列名中不能使用空ge;數據類型為上面所介紹的幾種標準數據類型;
[NOT NULL/NULL]指出該列是否允許存放空值,SQL語言支持空值的概念,所謂空值是"不知道"或"無意義"的值,值得注意的是數據"0"和空ge都不是空值,系統一般默認允許為空值,所以當不允許為空值時,必須明確使用NOT NULL;
[,UNIQUE]將列按照其規定的順序進行排列,如不指定排列順序,則按列的定義順序排列;
[PRIMARY KEY]用于指定表的主鍵(即關系中的主屬性),實體完整性約束條件規定:主鍵必須是唯一的,非空的;
[,FOREIGN KEY (列名[,列名]......) REFERENCE<表名>(列名[,列名] ......)]是用于指定外鍵參照完整性約束條件,FOREIGN KEY指定相關列為外鍵,其參照對象為另外一個表的指定列,即使用REFERENCE引入的外表中的列,當不指定外表列名時,系統將默認其列名與參照鍵的列名相同,要注意的是:使用外鍵時必須使用參照,另外數據的外鍵參照完整性約束條件規定:外鍵的值要么與相對應的主鍵相同,要么為空值(具體由實現系統不同而異)
[,CHECK]用于使用指定條件對存入表中的數據進行檢查,以確定其合法性,提高數據的安全性。
例1:要建立一個學生情況表(student)
CREATE TABLE student //創建基本表student
(st_class CHAR(8), // 定義列st_class班級,數據類型為8位定長字符串
st_no CHAR(10) NOT NULL, //定義列st_no學號,類型為10位定長字符串,非空
st_name CHAR(8) NOT NULL, //定義列st_name姓名,類型為8位定長字符串,非空
st_sex CHAR(2), //定義列st_sex性別,類型為2位定長字符串
st_age SMALLINT, //定義列st_age年齡,類型為短整型
PRIMARY KEY (st_no) //定義st_no學號為主鍵。
)
例2:要建立課程設置表(subject)
CREATE TABLE subject --創建基本表subject
(su_no CHAR(4) NOT NULL, --定義列su_no課號,類型為4位定長字符串,非空
su_subject CHAR(20) NOT NULL,--定義列su_subject課程名,類型為20位定長字符 串,非空
su_credit INTEGER, --定義列su_credit學分,類型為長整數
su_period INTEGER, --定義列su_period學時,類型為長整數
su_preno CHAR(4), --定義列su_preno先修課號,類型為4位定長字符串
PRIMARY KEY(su_no) --定義su_no課號為主鍵。
)
例3:要建立學生選課表(score)
CREATE TABLE score --創建基本表score
(st_no CHAR(10), --定義列st_no學號,類型為10位定長字符串
su_no CHAR(4), --定義列su_no課號,類型為4位定長字符串
sc_score INTEGER NULL,--定義列sc_score,類型為長整形,可以為空值
FOREIGN KEY (st_no) REFERENCE student(st_no ),
--從表student中引入參照外鍵st_no,以確保本表與表student的關聯與同步
FOREIGN KEY (suno) REFERENCE subject(su_no)
--//從表subject中引入參照外鍵su_no,以確保本表與表subject的關聯與同步
)
2、基本表的刪除
如果確認基本表不再需要,可以使用DROP TABLE語句將其刪除,這樣表的結構及存儲在表中的內容全部刪除。其語句格式為:
DROP TABLE[<數據庫名>.]表名
例如:將上面建立的表都刪除
DROP TABLE student,subject,score
3、基本表的修改
可以根據實際需要對表的定義進行修改,修改基本表的SQL語句是ALTER TABLE ,其語句格式如下:
ALTER TABLE [<數據庫名>.]表名
ADD (<列名> 數據類型 [缺省值] [NOT NULL / NULL]
[,<列名> 數據類型[缺省值][NOT NULL / NULL]]......
[,UNIQUE (列名[,列名]......)]
[,PRIMARY KEY(列名)]
[,FOREIGN KEY(列名[,列名]......) REFERENCE <表名>(列名[,列名] ......)]
[,CHECK(條件)][其它參數])
例如:在基本表student中加入列stborn出生日期,數據類型為DATE,且不能為空值
ALTER TABLE student ADD (stborn DATE NOT NULL)
刪除屬性的語句格式為:
ALTER TABLE [<數據庫名>.]表名 DROP
( <列名> 數據類型 [缺省值][NOT NULL / NULL]
[,<列名> 數據類型 [缺省值][NOT NULL / NULL]]......)
例如:將基本表student中的列st_age刪除
ALTER TABLE student DROP (st_age)
以上對使用SQL定義、修改和刪除基本表的方法進行了介紹。實際很簡單,只要不斷地練習和琢磨,你還可以定義出更加復雜的基本表。
新聞熱點
疑難解答