數(shù)據(jù)庫(kù)基礎(chǔ)與實(shí)例教程(達(dá)夢(mèng)DM8) 課件 3.4表創(chuàng)建及管理_第1頁(yè)
數(shù)據(jù)庫(kù)基礎(chǔ)與實(shí)例教程(達(dá)夢(mèng)DM8) 課件 3.4表創(chuàng)建及管理_第2頁(yè)
數(shù)據(jù)庫(kù)基礎(chǔ)與實(shí)例教程(達(dá)夢(mèng)DM8) 課件 3.4表創(chuàng)建及管理_第3頁(yè)
數(shù)據(jù)庫(kù)基礎(chǔ)與實(shí)例教程(達(dá)夢(mèng)DM8) 課件 3.4表創(chuàng)建及管理_第4頁(yè)
數(shù)據(jù)庫(kù)基礎(chǔ)與實(shí)例教程(達(dá)夢(mèng)DM8) 課件 3.4表創(chuàng)建及管理_第5頁(yè)
已閱讀5頁(yè),還剩43頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

數(shù)據(jù)庫(kù)基礎(chǔ)(基于達(dá)夢(mèng)DM8)數(shù)據(jù)庫(kù)對(duì)象管理33.4表創(chuàng)建及管理02表單創(chuàng)建01理解表的常規(guī)數(shù)據(jù)類型03表的更改04管理完整性約束05表的刪除理解表和常規(guī)數(shù)據(jù)類型3.4.13.4.1理解表和常規(guī)數(shù)據(jù)類型1.表的概念一個(gè)關(guān)系是對(duì)應(yīng)一張由行和列組成的二維表。表是數(shù)據(jù)庫(kù)中用來(lái)存儲(chǔ)數(shù)據(jù)的對(duì)象,是有結(jié)構(gòu)的數(shù)據(jù)的集合,是整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)的基礎(chǔ)表是數(shù)據(jù)庫(kù)中數(shù)據(jù)存儲(chǔ)的基本單元,是對(duì)用戶數(shù)據(jù)進(jìn)行讀和操縱的邏輯實(shí)體。3.4.1理解表和常規(guī)數(shù)據(jù)類型2.常規(guī)數(shù)據(jù)類型關(guān)系表中的每一列(即每個(gè)屬性或字段)都來(lái)自同一個(gè)域,屬于同一種數(shù)據(jù)類型。創(chuàng)建數(shù)據(jù)表之前,需要為表中的每一個(gè)屬性設(shè)置一種數(shù)據(jù)類型。常見(jiàn)的數(shù)據(jù)類型如表所示。3.4.1理解表和常規(guī)數(shù)據(jù)類型2.常規(guī)數(shù)據(jù)類型3.4.1理解表和常規(guī)數(shù)據(jù)類型2.常規(guī)數(shù)據(jù)類型3.4.1理解表和常規(guī)數(shù)據(jù)類型2.常規(guī)數(shù)據(jù)類型表的創(chuàng)建3.4.23.4.2表的創(chuàng)建1.創(chuàng)建表語(yǔ)法數(shù)據(jù)表是由行和列組成的,創(chuàng)建數(shù)據(jù)表的過(guò)程就是定義數(shù)據(jù)表的列的過(guò)程,也就是定義數(shù)據(jù)表結(jié)構(gòu)的過(guò)程。創(chuàng)建表需指定表名、表所屬的模式名;列定義;完整性約束等。CREATETABLE[<模式名>.]<表名>(<列定義>{,<列定義>}[,<表級(jí)約束定義>{,<表級(jí)約束定義>}])[<STORAGE子句>]3.4.2表的創(chuàng)建1.創(chuàng)建表語(yǔ)法CREATETABLE[<模式名>.]<表名>(<列定義>{,<列定義>}[,<表級(jí)約束定義>{,<表級(jí)約束定義>}])[<STORAGE子句>]創(chuàng)建表中的參數(shù)說(shuō)明如下。①<模式名>指明該表屬于哪個(gè)模式,缺省為當(dāng)前模式;②<表名>指明被創(chuàng)建的基表名,基表名最大長(zhǎng)度128字節(jié);③<列名>指明基表中的列名,列名最大長(zhǎng)度128字節(jié);④<數(shù)據(jù)類型>指明列的數(shù)據(jù)類型;3.4.2表的創(chuàng)建1.創(chuàng)建表語(yǔ)法<列定義>具體語(yǔ)法為。<列名><數(shù)據(jù)類型>[DEFAULT<列缺省值表達(dá)式>|<IDENTITY子句>|<列級(jí)約束定義>]③<列名>指明基表中的列名,列名最大長(zhǎng)度128字節(jié);④<數(shù)據(jù)類型>指明列的數(shù)據(jù)類型;3.4.2表的創(chuàng)建1.創(chuàng)建表語(yǔ)法<列定義>具體語(yǔ)法為。<列名><數(shù)據(jù)類型>[DEFAULT<列缺省值表達(dá)式>|<IDENTITY子句>|<列級(jí)約束定義>]⑤<IDENTITY子句>可以將某列定義為自增列具體語(yǔ)法為IDENTITY[(<種子>,<增量>)]。<種子>和<增量>分別制定IDENTITY的起始值和增量值;3.3.2創(chuàng)建模式1.創(chuàng)建表語(yǔ)法<列定義>具體語(yǔ)法為。<列名><數(shù)據(jù)類型>[DEFAULT<列缺省值表達(dá)式>|<IDENTITY子句>|<列級(jí)約束定義>]⑥<列缺省值表達(dá)式>通過(guò)DEFAULT指定的一個(gè)缺省值,當(dāng)該寫(xiě)入數(shù)據(jù)行時(shí)如該列的值為指定,則使用缺省值。DEFAULT表達(dá)式串的長(zhǎng)度不能超過(guò)2048字節(jié);3.4.2表的創(chuàng)建【案例3-10】使用命令行以SYSDBA用戶身份登錄,創(chuàng)建一個(gè)表TEST。該表有兩個(gè)列,第一個(gè)列的列名是ID,數(shù)據(jù)類型是INT,并且該列是自增列,從2022001開(kāi)始,增量為1;第二列的列名是NAME,數(shù)據(jù)類型是VARCHAR(50)。思考該表創(chuàng)建在哪個(gè)模式下。創(chuàng)建語(yǔ)句為:CREATETABLETEST(

IDINTIDENTITY(2022001,1),

NAMEVARCHAR(50));

如在登錄后未設(shè)置模式,則登錄后的模式應(yīng)為默認(rèn)模式。SYSDBA的默認(rèn)模式為SYSDBA模式。那么TEST表應(yīng)該創(chuàng)建在SYSDBA模式下。表的更改3.4.33.4.3表的更改1.表的更改想更改的表如果在所屬當(dāng)前用戶的模式中,用戶必須具有ALTERTABLE數(shù)據(jù)庫(kù)權(quán)限;若在其他模式中,用戶必須有ALTERANYTABLE的數(shù)據(jù)庫(kù)權(quán)限。3.4.3表的更改1.表的更改通過(guò)更改表,用戶可以對(duì)數(shù)據(jù)庫(kù)中的表作如下修改。重命名表;添加或刪除列,修改現(xiàn)有的列的定義(列名、數(shù)據(jù)類型、長(zhǎng)度、默認(rèn)值);添加、修改或刪除與表相關(guān)的完整性約束;啟動(dòng)或停用與表相關(guān)的觸發(fā)器;增刪自增列等。3.4.3表的更改2.表的更改語(yǔ)法ALTERTABLE[<模式名>.]<表名>RENAMETO<表名>| --修改表名ADD<<列定義>|(<列定義>{,<列定義>})>| --添加列定義MODIFY<列定義>| --修改列定義DROP<<列名>|IDENTITY>| --刪除列|自增列屬性3.4.3表的更改2.表的更改語(yǔ)法ALTER[COLUMN]<列名> --指定要修改的列名<

SETDEFAULT<列缺省值表達(dá)式>| --設(shè)置列的缺省值

DROPDEFAULT| --刪除列的缺省值

RENAMETO<列名>| --修改列名為新名字

SET<NULL|NOTNULL>| --設(shè)置列是否允許空值

SET[NOT]VISIBLE| --設(shè)置列是否可見(jiàn)>3.4.3表的更改2.表的更改語(yǔ)法MOVETABLESPACE<表空間名>| --移動(dòng)表至新的表空間ADD<列名>[<IDENTITY子句>] --添加列的自增屬性ADD<表級(jí)約束定義>| --添加表級(jí)約束ADD[CONSTRAINT[<約束名>]]<表級(jí)完整性約束>[<CHECK選項(xiàng)>][ENABLE|DISABLE]|3.4.3表的更改2.表的更改語(yǔ)法DROPCONSTRAINT<約束名>[RESTRICT|CASCADE]|

--刪除約束MODIFYCONSTRAINT<約束名>TO<表級(jí)完整性約束>[<CHECK選項(xiàng)>][RESTRICT|CASCADE]

|

--更改表級(jí)約束<ENABLE|DISABLE>CONSTRAINT<約束名>

--啟用或停用約束3.4.3表的更改【案例3-14】在案例3-11中創(chuàng)建了SCH_FACTORY模式中的TEST表,現(xiàn)將其表名修改為TEST1。

ALTERTABLESCH_FACTORY.TESTRENAMETOTEST1;3.4.3表的更改【案例3-16】在TEST1中添加“電話號(hào)碼”列,數(shù)據(jù)類型為CHAR(13);“籍貫”列,數(shù)據(jù)類型為VARCAHR(50);“備注”列,數(shù)據(jù)類型為VARCHAR(255)。

ALTERTABLESCH_FACTORY.TEST1ADD( 電話號(hào)碼CHAR(13), 籍貫VARCHAR(50), 備注VARCHAR(255)

);3.4.3表的更改【案例3-17】將TEST1中“籍貫”列使用MODIFY修改為數(shù)據(jù)類型為VARCAHR(75),且默認(rèn)值為‘重慶’。

ALTERTABLESCH_FACTORY.TEST1MODIFY籍貫VARCHAR(75)DEFAULT'重慶';3.4.3表的更改【案例3-18】將TEST1中“備注”列刪除;將“ID”列的自增列屬性刪除。ALTERTABLESCH_FACTORY.TEST1DROP備注;ALTERTABLESCH_FACTORY.TEST1DROPIDENTITY;管理完整性約束3.4.41.完整性約束的概念

完整性約束規(guī)則,限制表中一個(gè)或者多個(gè)列的值的規(guī)則。

關(guān)系完整性包括實(shí)體完整性、參照完整性和域完整性。經(jīng)定義后的完整性約束被存入系統(tǒng)的數(shù)據(jù)字典中,用戶操作數(shù)據(jù)庫(kù)時(shí),并由數(shù)據(jù)庫(kù)管理系統(tǒng)進(jìn)行完整性控制。1.完整性約束的概念

列級(jí)約束和表級(jí)約束都是為了實(shí)現(xiàn)完整性約束,從名稱上較好理解。

列級(jí)約束:只能應(yīng)用于一列上,用空格分隔后直接跟在該列的其他定義之后。非空約束和默認(rèn)約束僅能在列級(jí)約束中定義。表級(jí)約束:與列定義相互獨(dú)立,一般在完成列定義后定義,與列定義用“,”分隔。約束可應(yīng)用于一列上,也可以應(yīng)用在一個(gè)表中的多個(gè)列上,可定義約束名。1.完整性約束的概念

如果完整性約束只涉及當(dāng)前正在定義的列,則既可定義成列級(jí)約束,也可以定義成表級(jí)約束;如果完整性約束涉及該基表的多個(gè)列,則只能在定義語(yǔ)句的后面定義成表級(jí)完整性約束。

定義列級(jí)或表級(jí)完整性約束時(shí),可以用CONSTRAINT<約束名>子句對(duì)約束命名,系統(tǒng)中相同模式下的約束名不得重復(fù)。如果不指定約束名,系統(tǒng)將為此約束自動(dòng)命名。1.完整性約束的意義

就如法律保障了國(guó)家治理體系的系統(tǒng)性、規(guī)范性、協(xié)調(diào)性、穩(wěn)定性,完整性約束根據(jù)定義的約束規(guī)則,數(shù)據(jù)庫(kù)按照規(guī)則進(jìn)行完整性控制,確保數(shù)據(jù)在添加、更新后仍然滿足完整性約束,保證了數(shù)據(jù)庫(kù)的正確運(yùn)行。2.執(zhí)行SQL語(yǔ)句管理完整性約束<列級(jí)約束定義>::=<列級(jí)完整性約束>

{_<列級(jí)完整性約束>}1)列級(jí)約束定義語(yǔ)法格式如下。注意:

此處“_”為空格,在實(shí)際編寫(xiě)語(yǔ)句時(shí)要替換為空格。即多個(gè)列完整性約束定義在一個(gè)列上時(shí)用空格分隔開(kāi)。2.執(zhí)行SQL語(yǔ)句管理完整性約束<列級(jí)完整性約束>::=[CONSTRAINT<約束名>]<column_constraint_action>[ENABLE|DISABLE]1)列級(jí)約束定義語(yǔ)法格式如下。

系統(tǒng)中相同模式下的約束名不得重復(fù)。如果不指定約束名,系統(tǒng)將為此約束自動(dòng)命名。2.執(zhí)行SQL語(yǔ)句管理完整性約束<列級(jí)完整性約束>::=[CONSTRAINT<約束名>]<column_constraint_action>[ENABLE|DISABLE]1)列級(jí)約束定義語(yǔ)法格式如下。

可以指定一個(gè)約束是啟用(ENABLE)或停用(DISABLE)。如果啟用一個(gè)約束,那么在插入數(shù)據(jù)或者是更新數(shù)據(jù)時(shí)會(huì)對(duì)數(shù)據(jù)進(jìn)行檢查,不符合約束的數(shù)據(jù)被阻止進(jìn)入。如果約束是停用(DISABLE)的,不符合約束的數(shù)據(jù)被允許進(jìn)入數(shù)據(jù)庫(kù)。2.執(zhí)行SQL語(yǔ)句管理完整性約束<column_constraint_action>::=[NOT]NULL|

PRIMARYKEY|

UNIQUE|

[NOT]CLUSTERPRIMARYKEY|

CLUSTER[UNIQUE]KEY|

[FOREIGNKEY]REFERENCES[<模式名>.]<表名>[(<列名>{[,<列名>]})]|

CHECK(<檢驗(yàn)條件>)|

NOTVISIBLE1)列級(jí)約束定義語(yǔ)法格式如下。

2.執(zhí)行SQL語(yǔ)句管理完整性約束【案例3-22】每個(gè)部門有一個(gè)部門經(jīng)理,每個(gè)經(jīng)理只擔(dān)任一個(gè)部門的經(jīng)理。在SCH_FACTORY模式中創(chuàng)建如后表要求的部門表DEPT,其中部門不能重名,命名規(guī)范要求必須以“部”結(jié)尾。使用列級(jí)約束創(chuàng)建相關(guān)約束。列級(jí)約束定義案例2.執(zhí)行SQL語(yǔ)句管理完整性約束

列級(jí)約束定義案例列名數(shù)據(jù)類型是否允許為空約束備注部門號(hào)INT×主鍵自增列部門名VARCHAR(50)×CHECK(部門名LIKE'%部')

經(jīng)理號(hào)INT×REFERENCESSCH_FACTORY.MANAGER(經(jīng)理號(hào))2.執(zhí)行SQL語(yǔ)句管理完整性約束CREATETABLESCH_FACTORY.DEPT(

部門號(hào)INTIDENTITY(100001,1)PRIMARYKEY,

部門名VARCHAR(50)NOTNULLUNIQUECHECK(部門名LIKE'%部'),

經(jīng)理號(hào)INTNOTNULLFOREIGNKEYREFERENCESSCH_FACTORY.MANAGER(經(jīng)理號(hào)));

列級(jí)約束定義案例3.圖形界面管理完整性約束<表級(jí)約束定義>::=[CONSTRAINT<約束名>]<表級(jí)完整性約束>[ENABLE|DISABLE]2)表級(jí)約束定義語(yǔ)法格式如下。表級(jí)約束定義也可以指定一個(gè)約束是啟用(ENABLE)或停用(DISABLE)。3.圖形界面管理完整性約束<表級(jí)完整性約束>::=UNIQUE|PRIMARYKEY|[NOT]CLUSTERPRIMARYKEY|CLUSTER[UNIQUE]KEY(<列名>{,<列名>})}|FOREIGNKEY(<列名>{,<列名>})REFERENCES[<模式名>.]<表名>[(<列名>{[,<列名>]})][WITHINDEX]|

CHECK(<檢驗(yàn)條件>)2)表級(jí)約束定義語(yǔ)法格式如下。2.執(zhí)行SQL語(yǔ)句管理完整性約束【案例3-24】在介紹E-R概念模型中,定義了某高科技制造企業(yè)的職工參與項(xiàng)目的聯(lián)系。且一個(gè)職工可以參與多個(gè)項(xiàng)目,一個(gè)項(xiàng)目也可以有多個(gè)職工參與,故職工與項(xiàng)目是m:n聯(lián)系。前面的案例中已經(jīng)創(chuàng)建了職工表(STAFF)和項(xiàng)目表(PROJECT),現(xiàn)創(chuàng)建能夠表示這種聯(lián)系的表。表級(jí)約束定義案例2.執(zhí)行SQL語(yǔ)句管理完整性約束CREATETABLESCH_FACTORY.STAFF_PROJECT( 職工號(hào)INT, 項(xiàng)目號(hào)INT, 加入時(shí)間DATETIME, PRIMARYKEY(職工號(hào),項(xiàng)目號(hào)), CONSTRAINTFK_SP_STAFFFOREIGNKEY(職工號(hào))REFERENCESSCH_FACTORY.STAFF(職工號(hào)), CONSTRAINTFK_SP_PROJECTFOREIGNKEY(項(xiàng)目號(hào))REFERENCESSCH_FACTORY.PROJECT(項(xiàng)目號(hào)));表級(jí)約束定義案例表的刪除3.4.53.4.5表的刪除刪除表操作只能由具有DBA權(quán)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論