国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > 文庫 > 正文

SQL:基本表的創(chuàng)建與管理

2024-09-07 22:12:22
字體:
供稿:網(wǎng)友

本文講解了使用SQL語言創(chuàng)建基本表的方法,以及使用SQL修改基本表和刪除基本表的方法。

首先說一下什么是基本表,本身獨(dú)立存在的表稱為基本表,在SQL語言中一個(gè)關(guān)系唯一對(duì)應(yīng)一個(gè)基本表。基本表的定義指建立基本關(guān)系模式,而變更則是指對(duì)數(shù)據(jù)庫中已存在的基本表進(jìn)行刪除與修改。

1、基本表的定義

SQL使用CREATE TABLE語句來定義基本表,其語句格式為:

CREATE TABLE [<數(shù)據(jù)庫名>.]<表名>
(<列名> 數(shù)據(jù)類型 [缺省值] [NOT NULL / NULL]
[,<列名> 數(shù)據(jù)類型 [缺省值] [NOT NULL / NULL]]......
[,UNIQUE (列名[,列名]......)]
[,PRIMARY KEY(列名)]
[,F(xiàn)OREIGN KEY(列名[,列名]......)REFERENCE <表名>(列名[,列名]
......)]
[,CHECK(條件)] [其它參數(shù)])

其中,〈數(shù)據(jù)庫名〉.]指出將新建立的表存放于該數(shù)據(jù)庫中; 新建的表由兩部分組成:其一為表和一組列名,其二是實(shí)際存放的數(shù)據(jù)(即可在定義表的同時(shí),直接存放數(shù)據(jù)到表中);

列名為用戶自定義的易于理解的名稱,列名中不能使用空ge;數(shù)據(jù)類型為上面所介紹的幾種標(biāo)準(zhǔn)數(shù)據(jù)類型;

[NOT NULL/NULL]指出該列是否允許存放空值,SQL語言支持空值的概念,所謂空值是"不知道"或"無意義"的值,值得注意的是數(shù)據(jù)"0"和空ge都不是空值,系統(tǒng)一般默認(rèn)允許為空值,所以當(dāng)不允許為空值時(shí),必須明確使用NOT NULL;

[,UNIQUE]將列按照其規(guī)定的順序進(jìn)行排列,如不指定排列順序,則按列的定義順序排列;

[PRIMARY KEY]用于指定表的主鍵(即關(guān)系中的主屬性),實(shí)體完整性約束條件規(guī)定:主鍵必須是唯一的,非空的;

[,F(xiàn)OREIGN KEY (列名[,列名]......) REFERENCE<表名>(列名[,列名] ......)]是用于指定外鍵參照完整性約束條件,F(xiàn)OREIGN KEY指定相關(guān)列為外鍵,其參照對(duì)象為另外一個(gè)表的指定列,即使用REFERENCE引入的外表中的列,當(dāng)不指定外表列名時(shí),系統(tǒng)將默認(rèn)其列名與參照鍵的列名相同,要注意的是:使用外鍵時(shí)必須使用參照,另外數(shù)據(jù)的外鍵參照完整性約束條件規(guī)定:外鍵的值要么與相對(duì)應(yīng)的主鍵相同,要么為空值(具體由實(shí)現(xiàn)系統(tǒng)不同而異)

[,CHECK]用于使用指定條件對(duì)存入表中的數(shù)據(jù)進(jìn)行檢查,以確定其合法性,提高數(shù)據(jù)的安全性。

例1:要建立一個(gè)學(xué)生情況表(student)

CREATE TABLE student                //創(chuàng)建基本表student
(st_class CHAR(8),           // 定義列st_class班級(jí),數(shù)據(jù)類型為8位定長字符串
st_no CHAR(10) NOT NULL,       //定義列st_no學(xué)號(hào),類型為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學(xué)號(hào)為主鍵。
)  

例2:要建立課程設(shè)置表(subject)

CREATE TABLE subject              --創(chuàng)建基本表subject
(su_no CHAR(4) NOT NULL,       --定義列su_no課號(hào),類型為4位定長字符串,非空
su_subject CHAR(20) NOT NULL,--定義列su_subject課程名,類型為20位定長字符 串,非空
su_credit INTEGER,      --定義列su_credit學(xué)分,類型為長整數(shù)
su_period INTEGER,       --定義列su_period學(xué)時(shí),類型為長整數(shù)
su_preno CHAR(4),        --定義列su_preno先修課號(hào),類型為4位定長字符串
PRIMARY KEY(su_no)  --定義su_no課號(hào)為主鍵。
)

例3:要建立學(xué)生選課表(score)

CREATE TABLE score        --創(chuàng)建基本表score
(st_no CHAR(10),               --定義列st_no學(xué)號(hào),類型為10位定長字符串
su_no CHAR(4),                  --定義列su_no課號(hào),類型為4位定長字符串
sc_score INTEGER NULL,--定義列sc_score,類型為長整形,可以為空值
FOREIGN KEY (st_no) REFERENCE student(st_no ),
--從表student中引入?yún)⒄胀怄Ist_no,以確保本表與表student的關(guān)聯(lián)與同步
FOREIGN KEY (suno) REFERENCE subject(su_no)
--//從表subject中引入?yún)⒄胀怄Isu_no,以確保本表與表subject的關(guān)聯(lián)與同步
)

2、基本表的刪除

如果確認(rèn)基本表不再需要,可以使用DROP TABLE語句將其刪除,這樣表的結(jié)構(gòu)及存儲(chǔ)在表中的內(nèi)容全部刪除。其語句格式為:

DROP TABLE[<數(shù)據(jù)庫名>.]表名

例如:將上面建立的表都刪除

DROP TABLE student,subject,score

3、基本表的修改

可以根據(jù)實(shí)際需要對(duì)表的定義進(jìn)行修改,修改基本表的SQL語句是ALTER TABLE ,其語句格式如下:

 ALTER TABLE [<數(shù)據(jù)庫名>.]表名
        ADD  (<列名> 數(shù)據(jù)類型 [缺省值] [NOT NULL / NULL] 
             [,<列名> 數(shù)據(jù)類型[缺省值][NOT NULL / NULL]]......
            [,UNIQUE (列名[,列名]......)]
           [,PRIMARY KEY(列名)] 
           [,F(xiàn)OREIGN KEY(列名[,列名]......) REFERENCE <表名>(列名[,列名] ......)]
           [,CHECK(條件)][其它參數(shù)])

例如:在基本表student中加入列stborn出生日期,數(shù)據(jù)類型為DATE,且不能為空值

ALTER TABLE student ADD (stborn DATE NOT NULL)

刪除屬性的語句格式為:

ALTER TABLE [<數(shù)據(jù)庫名>.]表名 DROP
( <列名> 數(shù)據(jù)類型 [缺省值][NOT NULL / NULL]
[,<列名> 數(shù)據(jù)類型 [缺省值][NOT NULL / NULL]]......)

例如:將基本表student中的列st_age刪除

ALTER TABLE student DROP (st_age) 

以上對(duì)使用SQL定義、修改和刪除基本表的方法進(jìn)行了介紹。實(shí)際很簡單,只要不斷地練習(xí)和琢磨,你還可以定義出更加復(fù)雜的基本表。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 普兰县| 吐鲁番市| 英德市| 东安县| 九台市| 嵊泗县| 山东| 饶阳县| 县级市| 禄丰县| 济南市| 浦城县| 霸州市| 马山县| 浦北县| 中方县| 西吉县| 兰州市| 大埔县| 惠安县| 丹凤县| 天津市| 雅江县| 高淳县| 贡嘎县| 京山县| 汉源县| 兴海县| 凌海市| 万载县| 根河市| 泸定县| 大渡口区| 天长市| 邵东县| 盘锦市| 文山县| 浦江县| 禄劝| 砀山县| 沙洋县|