版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
會(huì)計(jì)學(xué)1第8數(shù)據(jù)完整性
數(shù)據(jù)完整性概述數(shù)據(jù)完整性防止數(shù)據(jù)庫中存在不符合語義規(guī)定的數(shù)據(jù)和防止因錯(cuò)誤信息的輸入輸出造成無效操作或錯(cuò)誤信息而提出的。數(shù)據(jù)完整性有4種類型:實(shí)體完整性(EntityIntegrity)、域完整性(DomainIntegrity)、參照完整性(ReferentialIntegrity)、用戶定義的完整性(User-definedIntegrity)。在SQLServer中可以通過各種規(guī)則(Rule)、默認(rèn)(Default)、約束(Constraint)和觸發(fā)器(Trigger)等數(shù)據(jù)庫對(duì)象來保證數(shù)據(jù)的完整性。第1頁/共57頁8.1使用規(guī)則實(shí)施數(shù)據(jù)完整性8.1.1創(chuàng)建規(guī)則8.1.2查看規(guī)則8.1.3規(guī)則的綁定與松綁8.1.4刪除規(guī)則第2頁/共57頁8.1.1創(chuàng)建規(guī)則規(guī)則(Rule)就是數(shù)據(jù)庫中對(duì)存儲(chǔ)在表的列或用戶定義數(shù)據(jù)類型中的值的規(guī)定和限制。規(guī)則是單獨(dú)存儲(chǔ)的獨(dú)立的數(shù)據(jù)庫對(duì)象。規(guī)則和約束可以同時(shí)使用,表的列可以有一個(gè)規(guī)則及多個(gè)約束。規(guī)則與檢查約束在功能上相似,但在使用上有所區(qū)別。檢查約束是在CREATETABLE或ALTERTABLE語句中定義的,嵌入了被定義的表結(jié)構(gòu),即刪除表的時(shí)候檢查約束也就隨之被刪除。而規(guī)則需要用CREATERULE語句定義后才能使用,是獨(dú)立于表之外的數(shù)據(jù)庫對(duì)象,刪除表并不能刪除規(guī)則,需要用DROPRULE語句才能刪除。相比之下,使用在CREATETABLE或ALTERTABLE語句中定義的檢查約束是更標(biāo)準(zhǔn)的限制列值的方法,但檢查約束不能直接作用于用戶定義數(shù)據(jù)類型。8.2使用規(guī)則實(shí)施數(shù)據(jù)完整性第3頁/共57頁2.用CREATERULE語句創(chuàng)建規(guī)則8.2.1創(chuàng)建規(guī)則CREATERULE語句用于在當(dāng)前數(shù)據(jù)庫中創(chuàng)建規(guī)則,其語法格式如下:
CREATERULErule_nameAScondition_expression第4頁/共57頁8.2.1創(chuàng)建規(guī)則CREATERULEhire_date_ruleAS@hire_date>='1980-01-01'and@hire_date<=getdate()例8-2創(chuàng)建性別規(guī)則sex_rule。CREATERULEsex_ruleAS@sexin('男','女')例8-1創(chuàng)建雇傭日期規(guī)則hire_date_rule。第5頁/共57頁8.2.1創(chuàng)建規(guī)則CREATERULEgrade_ruleAS@valuebetween1and100例8-4創(chuàng)建字符規(guī)則my_character_rule。Createrulemy_character_ruleAs@valuelike'[a-f]%[0-9]'例8-3創(chuàng)建評(píng)分規(guī)則grade_rule。第6頁/共57頁8.2.2查看和修改規(guī)則使用sp_helptext系統(tǒng)存儲(chǔ)過程可以查看規(guī)則的文本信息。例8-5查看規(guī)則hire_date_rule的文本信息EXECUTEsp_helptexthire_date_rule運(yùn)行結(jié)果如圖所示8.1.2查看規(guī)則第7頁/共57頁8.1.3規(guī)則的綁定與松綁需要將規(guī)則與數(shù)據(jù)庫表或用戶定義對(duì)象聯(lián)系起來,才能發(fā)生作用。聯(lián)系的方法稱為綁定,所謂綁定就是指定規(guī)則作用于哪個(gè)表的哪一列或哪個(gè)用戶定義數(shù)據(jù)類型。表的一列或一個(gè)用戶定義數(shù)據(jù)類型只能與一個(gè)規(guī)則相綁定,而一個(gè)規(guī)則可以綁定多對(duì)象,這正是規(guī)則的魅力所在。解除規(guī)則與對(duì)象的綁定稱為松綁。第8頁/共57頁8.2.3規(guī)則的綁定與松綁1.用系統(tǒng)存儲(chǔ)過程sp_bindrule綁定規(guī)則系統(tǒng)存儲(chǔ)過程sp_bindrule可以綁定一個(gè)規(guī)則到表的一個(gè)列或一個(gè)用戶定義數(shù)據(jù)類型上。其語法格式如下:sp_bindrule[@rulename=]'rule',[@objname=]'object_name'[,[@futureonly=]'futureonly']第9頁/共57頁8.2.3規(guī)則的綁定與松綁EXECsp_bindrulehire_date_rule,'employee.hire_date'
運(yùn)行結(jié)果為:已將規(guī)則綁定到表的列上。例8-7定義用戶定義數(shù)據(jù)類型pat_char,將例8-4創(chuàng)建的規(guī)則my_character_rule綁定到pat_var上。EXECsp_addtypepat_char,'varchar(10)','NOTNULL'GOEXECsp_bindrulemy_character_rule,pat_char,'futureonly‘
運(yùn)行結(jié)果如下:已將規(guī)則綁定到數(shù)據(jù)類型。例8-6將例8-1創(chuàng)建的規(guī)則hire_date_rule綁定到employee表的hire_date列上。第10頁/共57頁8.2.3規(guī)則的綁定與松綁EXECsp_bindrulesex_rule,'employee.sex'運(yùn)行結(jié)果如下:已將規(guī)則綁定到表的列上。例8-8綁定例8-2創(chuàng)建的規(guī)則sex_rule到employee表的字段sex。第11頁/共57頁8.2.3規(guī)則的綁定與松綁系統(tǒng)存儲(chǔ)過程sp_unbindrule可解除規(guī)則與列或用戶定義數(shù)據(jù)類型的綁定,其語法格式如下:sp_unbindrule[@objname=]'object_name'[,[@futureonly=]'futureonly']2.用系統(tǒng)存儲(chǔ)過程sp_unbindrule解除規(guī)則的綁定第12頁/共57頁8.2.3規(guī)則的綁定與松綁例8-9解除例8-6和例8-7綁定在employee表的hire_date列和用戶定義數(shù)據(jù)類型pat_char上的規(guī)則。EXECsp_unbindrule'employee.hire_date'運(yùn)行結(jié)果如下:已解除了表列與規(guī)則之間的綁定。EXECsp_unbindrulepat_char,'futureonly'運(yùn)行結(jié)果如下:已解除了數(shù)據(jù)類型與規(guī)則之間的綁定。第13頁/共57頁8.1.4刪除規(guī)則使用DROPRULE語句刪除當(dāng)前數(shù)據(jù)庫中的一個(gè)或多個(gè)規(guī)則。其語法格式如下:DROPRULE{rule_name}[,...n]注意:在刪除一個(gè)規(guī)則前,必須先將與其綁定的對(duì)象解除綁定。例8-10刪除例8-1和8-2中創(chuàng)建的規(guī)則。DROPRULEsex_rule,hire_date_rule8.2使用規(guī)則實(shí)施數(shù)據(jù)完整性第14頁/共57頁8.2.1創(chuàng)建默認(rèn)值8.2.2查看默認(rèn)值8.2.3默認(rèn)值的綁定與松綁8.2.4刪除默認(rèn)值8.2使用默認(rèn)值實(shí)施數(shù)據(jù)完整性第15頁/共57頁8.3使用默認(rèn)值實(shí)施數(shù)據(jù)完整性8.2.1創(chuàng)建默認(rèn)值默認(rèn)值(Default)是用戶輸入記錄時(shí)往沒有指定具體數(shù)據(jù)的列中自動(dòng)插入的數(shù)據(jù)。默認(rèn)值對(duì)象與CREATETABLE或ALTERTABLE語句操作表時(shí)用默認(rèn)約束指定的默認(rèn)值功能相似,兩者的區(qū)別類似于規(guī)則與檢查約束在使用上的區(qū)別。默認(rèn)值對(duì)象可以用于多個(gè)列或用戶定義數(shù)據(jù)類型。表的一列或一個(gè)用戶定義數(shù)據(jù)類型只能與一個(gè)默認(rèn)值相綁定。默認(rèn)值的創(chuàng)建、查看、綁定、松綁和刪除等操作可在企業(yè)管理器中進(jìn)行,也可利用Transact-SQL語句進(jìn)行。第16頁/共57頁8.3.1創(chuàng)建默認(rèn)值1.用CREATEDEFAULT語句創(chuàng)建默認(rèn)值CREATEDEFAULT語句用于在當(dāng)前數(shù)據(jù)庫中創(chuàng)建默認(rèn)值對(duì)象,其語法格式如下:CREATEDEFAULTdefault_nameASconstant_expression第17頁/共57頁8.3.1創(chuàng)建默認(rèn)值CREATEDEFAULTbirthday_defaAS'1978-1-1'例8-12創(chuàng)建當(dāng)前日期默認(rèn)值today_defa。CREATEDEFAULTtoday_defaASgetdate()例8-11創(chuàng)建生日默認(rèn)值birthday_defa。第18頁/共57頁用系統(tǒng)存儲(chǔ)過程sp_helptext查看默認(rèn)值使用sp_helptext系統(tǒng)存儲(chǔ)過程可以查看默認(rèn)值的細(xì)節(jié)。例8-13查看默認(rèn)值today_defa。EXECsp_helptexttoday_defa運(yùn)行結(jié)果如圖8-10所示。8.3.2查看默認(rèn)值8.2.2查看默認(rèn)值第19頁/共57頁8.3.3默認(rèn)值的綁定與松綁1.用sp_bindefault綁定默認(rèn)值系統(tǒng)存儲(chǔ)過程sp_bindefault可以綁定一個(gè)默認(rèn)值到表的一個(gè)列或一個(gè)用戶定義數(shù)據(jù)類型上。其語法格式如下:sp_bindefault[@defname=]'default',[@objname=]'object_name'[,[@futureonly=]'futureonly']8.2.3默認(rèn)值的綁定與松綁第20頁/共57頁8.3.3默認(rèn)值的綁定與松綁例8-14綁定默認(rèn)值today_defa到employee表的hire_date列上。 EXECsp_bindefaulttoday_defa,'employee.hire_date'運(yùn)行結(jié)果如下:已將默認(rèn)值綁定到列。第21頁/共57頁8.3.3默認(rèn)值的綁定與松綁2.用sp_unbindefault解除默認(rèn)值的綁定系統(tǒng)存儲(chǔ)過程sp_unbindefault可以解除默認(rèn)值與表的列或用戶定義數(shù)據(jù)類型的綁定,其語法格式如下:
sp_unbindefault[@objname=]'object_name' [,[@futureonly=]'futureonly']第22頁/共57頁8.3.3默認(rèn)值的綁定與松綁例8-15解除默認(rèn)值today_defa與表employee的hire_date列的綁定。EXECsp_unbindefault'employee.hire_date'運(yùn)行結(jié)果如下:已解除了表列與其默認(rèn)值之間的綁定。第23頁/共57頁8.3使用默認(rèn)值實(shí)施數(shù)據(jù)完整性8.2.4刪除默認(rèn)值可以在SQLServer管理平臺(tái)中選擇默認(rèn)值,單擊右鍵,從快捷菜單中選擇“刪除”選項(xiàng)刪除默認(rèn)值,也可以使用DROPDEFAULT語句刪除當(dāng)前數(shù)據(jù)庫中的一個(gè)或多個(gè)默認(rèn)值。其語法格式如下:DROPDEFAULT{default_name}[,...n]例8-16刪除生日默認(rèn)值birthday_defa。DROPDEFAULTbirthday_defa第24頁/共57頁8.3.1主鍵約束8.3.2外鍵約束8.3.3惟一性約束8.3.4檢查約束8.3.5默認(rèn)約束8.3使用約束實(shí)施數(shù)據(jù)完整性第25頁/共57頁8.3.1主鍵約束約束(Constraint)是SQLServer提供的自動(dòng)保持?jǐn)?shù)據(jù)庫完整性的一種機(jī)制,它定義了可輸入表或表的單個(gè)列中的數(shù)據(jù)的限制條件。使用約束優(yōu)先于使用觸發(fā)器、規(guī)則和默認(rèn)值。約束獨(dú)立于表結(jié)構(gòu),作為數(shù)據(jù)庫定義部分在CREATETABLE語句中聲明,可以在不改變表結(jié)構(gòu)的基礎(chǔ)上,通過ALTERTABLE語句添加或刪除。當(dāng)表被刪除時(shí),表所帶的所有約束定義也隨之被刪除。第26頁/共57頁8.4.1主鍵約束在SQLServer中有6種約束主鍵約束外鍵約束惟一性約束檢查約束默認(rèn)約束非空值約束 其中非空值約束已在第5章中做了詳細(xì)介紹,本節(jié)介紹其他5種約束。第27頁/共57頁8.3.1主鍵約束表的一列或幾列的組合的值在表中惟一地指定一行記錄,這樣的一列或多列稱為表的主鍵(PrimaryKey,PK),通過它可強(qiáng)制表的實(shí)體完整性。主鍵不允許為空值,且不同兩行的鍵值不能相同。表中可以有不止一個(gè)鍵惟一標(biāo)識(shí)行,每個(gè)鍵都稱為侯選鍵,只可以選一個(gè)侯選鍵作為表的主鍵,其他侯選鍵稱作備用鍵。如果一個(gè)表的主鍵由單列組成,則該主鍵約束可以定義為該列的列約束。如果主鍵由兩個(gè)以上的列組成,則該主鍵約束必須定義為表約束。第28頁/共57頁8.4.1主鍵約束定義列級(jí)主鍵約束的語法格式如下:[CONSTRAINTconstraint_name]PRIMARYKEY[CLUSTERED|NONCLUSTERED]定義表級(jí)主鍵約束的語法格式如下:[CONSTRAINTconstraint_name]PRIMARYKEY[CLUSTERED|NONCLUSTERED]{(column_name[,…n])}第29頁/共57頁8.4.1主鍵約束例8-17在Sales數(shù)據(jù)庫中創(chuàng)建customer表,并聲明主鍵約束。CREATETABLESales.dbo.customer(customer_idbigintNOTNULLIDENTITY(0,1)PRIMARYKEY,customer_namevarchar(50)NOTNULL,linkman_namechar(8),addressvarchar(50),telephonechar(12)NOTNULL)第30頁/共57頁8.4.1主鍵約束非聚集主鍵約束若要定義customer_id列為非聚集主鍵約束,并指定約束名為PK_customer,使用以下語句:
customer_idchar(5)CONSTRAINTPK_customerPRIMARYKEYNONCLUSTERED第31頁/共57頁8.4.1主鍵約束例8-18創(chuàng)建一個(gè)產(chǎn)品信息表goods1,將產(chǎn)品編號(hào)goods_id列聲明為主鍵。CREATETABLEgoods1(goods_idchar(6)NOTNULL,goods_namevarchar(50)NOTNULL,classification_idchar(6)NOTNULL,unit_pricemoneyNOTNULL,stock_quantityfloatNOTNULL,order_quantityfloatNULLCONSTRAINTpk_p_idPRIMARYKEY(goods_id))ON[PRIMARY]第32頁/共57頁8.4.1主鍵約束例8-19根據(jù)商品銷售的時(shí)間和商品類別來確定銷售的商品的數(shù)量。CREATETABLEg_order(good_typeint,order_timedatetime,order_numint,CONSTRAINTg_o_keyPRIMARYKEY(good_type,order_time))第33頁/共57頁8.4使用約束實(shí)施數(shù)據(jù)完整性8.3.2外鍵約束外鍵約束定義了表與表之間的關(guān)系。通過將一個(gè)表中一列或多列添加到另一個(gè)表中,創(chuàng)建兩個(gè)表之間的連接,這個(gè)列就成為第二個(gè)表的外鍵(ForeignKey,F(xiàn)K),即外鍵是用于建立和加強(qiáng)兩個(gè)表數(shù)據(jù)之間的連接的一列或多列,通過它可以強(qiáng)制參照完整性。第34頁/共57頁8.4.2外鍵約束例如,Sales數(shù)據(jù)庫中的employee、sell_order、goods這3個(gè)表之間存在以下邏輯聯(lián)系:sell_order(銷售訂單)表中employee_id(員工編號(hào))列的值必須是employee表employee_id列中的某一個(gè)值,因?yàn)楹炗嗕N售訂單的人必須是當(dāng)前公司員工;而sell_order表中g(shù)oods_id(貨物編號(hào))列的值必須是goods(貨物)表的goods_id列中的某一個(gè)值,因?yàn)殇N售訂單上售出的只能是已知貨物。因此,在sell_order表上應(yīng)建立兩個(gè)外鍵約束FK_sell_order_employee和FK_sell_order_goods來限制sell_order表employee_id列和goods_id列的值必須分別來自employee表的employee_id列及goods表的goods_id列。第35頁/共57頁8.4.2外鍵約束級(jí)聯(lián)操作SQLServer提供了兩種級(jí)聯(lián)操作以保證數(shù)據(jù)完整性:(1)級(jí)聯(lián)刪除確定當(dāng)主鍵表中某行被刪除時(shí),外鍵表中所有相關(guān)行將被刪除。(2)級(jí)聯(lián)修改確定當(dāng)主鍵表中某行的鍵值被修改時(shí),外鍵表中所有相關(guān)行的該外鍵值也將被自動(dòng)修改為新值。第36頁/共57頁8.4.2外鍵約束外鍵約束與主鍵約束相同,也分為表約束與列約束。定義表級(jí)外鍵約束的語法格式如下:[CONSTRAINTconstraint_name]FOREIGNKEY(column_name[,…n])REFERENCESref_table[(ref_column[,…n])][ONDELETE{CASCADE|NOACTION}][ONUPDATE{CASCADE|NOACTION}]][NOTFORREPLICATION]定義列級(jí)外鍵約束的語法格式如下:[CONSTRAINTconstraint_name][FOREIGNKEY]REFERENCESref_table[NOTFORREPLICATION]第37頁/共57頁8.4.2外鍵約束例8-20創(chuàng)建一個(gè)訂貨表sell_order1,與例8-18創(chuàng)建的產(chǎn)品表goods1相關(guān)聯(lián)。CREATETABLEsell_order1(order_id1char(6)NOTNULL,goods_idchar(6)NOTNULL,employee_idchar(4)NOTNULL,customer_idchar(4)NOTNULL,transporter_idchar(4)NOTNULL,order_numfloatNULL,discountfloatNULL,order_datedatetimeNOTNULL,send_datedatetimeNULL,arrival_datedatetimeNULL,costmoneyNULL,CONSTRAINTpk_order_idPRIMARYKEY(order_id1),FOREIGNKEY(goods_id)REFERENCESgoods1(goods_id))第38頁/共57頁8.4.2外鍵約束CREATETABLEsell_order2(order_id1char(6)PRIMARYKEY,goods_idchar(6)NOTNULLCONSTRAINTFK_goods_idFOREIGNKEY(goods_id)REFERENCESGoods1(goods_id)ONDELETENOACTIONONUPDATECASCADE,employee_idchar(4)NOTNULLFOREIGNKEY(employee_id)REFERENCESemployee(employee_id)ONUPDATECASCADE,customer_idchar(4)NOTNULL,transporter_idchar(4)NOTNULL,order_numfloat,discountfloat,order_datedatetimeNOTNULL,send_datedatetime,arrival_datedatetime,costmoney,CONSTRAINTFK_customer_idFOREIGNKEY(customer_id)REFERENCEScustomer(customer_id))例8-21創(chuàng)建表sell_order2,并為goods_id、employee_id、custom_id三列定義外鍵約束。第39頁/共57頁8.4.2外鍵約束employee_id列的外鍵應(yīng)當(dāng)定義如下:CONSTRAINTFK_sell_order_employee/*可省略*/FOREIGNKEY(department_id,employee_id)REFERENCESemployee(department_id,employee_id)例如,如果employee表的主鍵是由department_id和employee_id組成的復(fù)合主鍵,則sell_order表中應(yīng)增加相同類型的department_id列定義第40頁/共57頁8.4使用約束實(shí)施數(shù)據(jù)完整性8.3.3惟一性約束惟一性(Unique)約束指定一個(gè)或多個(gè)列的組合的值具有惟一性,以防止在列中輸入重復(fù)的值,為表中的一列或者多列提供實(shí)體完整性。惟一性約束指定的列可以有NULL屬性。主鍵也強(qiáng)制執(zhí)行惟一性,但主鍵不允許空值,故主鍵約束強(qiáng)度大于惟一約束。因此主鍵列不能再設(shè)定惟一性約束。第41頁/共57頁8.4.3惟一性約束定義列級(jí)惟一性約束的語法格式如下:[CONSTRAINTconstraint_name]UNIQUE[CLUSTERED|NONCLUSTERED]惟一性約束應(yīng)用于多列時(shí)的定義格式:[CONSTRAINTconstraint_name]UNIQUE[CLUSTERED|NONCLUSTERED](column_name[,…n])第42頁/共57頁8.4.3惟一性約束例8-22創(chuàng)建goods2表,使goods_name具有惟一性約束。CREATETABLEgoods2(goods_idchar(6)NOTNULLPRIMARYKEY,goods_namevarchar(50)NOTNULLCONSTRAINTu_goods_nameUNIQUENONCLUSTERED,classification_idchar(6)NOTNULL,unit_pricemoneyNOTNULL,stock_quantityfloatNOTNULL,order_quantityfloat)第43頁/共57頁8.4.3惟一性約束CREATETABLEemployees(emp_idchar(8),emp_namechar(10),emp_cardidchar(18),CONSTRAINTpk_emp_idPRIMARYKEY(emp_id),CONSTRAINTuk_emp_cardidUNIQUE(emp_cardid))例8-23定義一個(gè)員工信息表employees,其中員工的身份證號(hào)emp_cardid列具有惟一性。第44頁/共57頁8.4使用約束實(shí)施數(shù)據(jù)完整性8.3.4檢查約束檢查(Check)約束對(duì)輸入列或整個(gè)表中的值設(shè)置檢查條件,以限制輸入值,保證數(shù)據(jù)庫的數(shù)據(jù)完整性。當(dāng)對(duì)具有檢查約束列進(jìn)行插入或修改時(shí),SQLServer將用該檢查約束的邏輯表達(dá)式對(duì)新值進(jìn)行檢查,只有滿足條件(邏輯表達(dá)式返回TRUE)的值才能填入該列,否則報(bào)錯(cuò)??梢詾槊苛兄付ǘ鄠€(gè)CHECK約束。第45頁/共57頁8.4.4檢查約束定義檢查約束的語法格式:[CONSTRAINTconstraint_name]CHECK[NOTFORREPLICATION](logical_expression)第46頁/共57頁8.4.4檢查約束例8-24更改表employee2以添加未驗(yàn)證檢查約束。ALTERTABLEemployee2WITHNOCHECKADDCONSTRAINTCK_AgeCHECK(DATEDIFF(year,Birth_Date,Hire_Date)>18)第47頁/共57頁8.4.4檢查約束例8-25創(chuàng)建一個(gè)訂貨表orders,保證各訂單的訂貨量必須不小于10。CREATETABLEorders(order_idchar(8),p_idchar(8),p_namechar(10),quantitysmallintCONSTRAINTchk_quantityCHECK(quantity>=10),CONSTRAINTpk_orders_idPRIMARYKEY(order_id))第48頁/共57頁8.4.4檢查約束CREATETABLEtransporters(transporter_idchar(4)NOTNULL,transport_namevarchar(50),linkman_namechar(8),addressvarchar(50),telephonechar(12)NOTNULLCHECK(telephoneLIKE'0[1-9][0-9][0-9]-[1-9][0-9][0-9][0-9][0-9][0-9][0-9]'ORtelephoneLIKE'0[1-9][0-9]-[1-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))例8-26創(chuàng)建transporters表并定義檢查約束第49頁/共57頁8.4使用約束實(shí)施數(shù)據(jù)完整性8.3.5默認(rèn)約束默認(rèn)(Default)約束通過定義列的默認(rèn)值或使用數(shù)據(jù)庫的默認(rèn)值對(duì)象綁定表的列,以確保在沒有為某列指定數(shù)據(jù)時(shí),來指定列的值。默認(rèn)值可以是常量,也可以是表達(dá)式,還可以為NULL值。第50頁/共57頁8.4.5默認(rèn)約束定義默認(rèn)約束的語法格式[CONSTRAINTconstraint_name]DEFAULTconstant_expression[FORcolumn_name]第51頁/共57頁8.4.5默認(rèn)約束例8-27在Sales數(shù)據(jù)庫中,為員工表employee的sex列添加默認(rèn)約束,默認(rèn)值是“男”。ALTERTABLEemployeeADDCONSTRAINTsex_defaultDEFAULT'男'FORsex例8-28更改表employee為hire_date列定義默認(rèn)約束。ALTERTABLEemployeeADDCONSTRAINThire_date_dfDEFAULT(getdate())FORhire_date第52頁/共57頁8.4.5默認(rèn)約束例8-29添加具有默認(rèn)值的可為空的列ALTERTABLEemployeeADDhire_datedatetimeDEFAULT(getdate())WITHVALUES第53頁/共57頁8.4.5默認(rèn)約束例8-30使用默認(rèn)約束。--創(chuàng)建表purchase_orderCREATETABLEpurchase_order(order_id2char(6)NOTNULL,goods_idchar(6)NOTNULL,employee_idchar(4)NOTNULL,supplier_idchar(5)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)家樂租賃合同:運(yùn)動(dòng)健身
- 產(chǎn)業(yè)園轉(zhuǎn)讓合同模板定制
- 工廠水電路施工合同
- 建筑施工協(xié)作合同條件
- 戰(zhàn)略協(xié)作協(xié)議
- 農(nóng)業(yè)行業(yè)種植合作管理
- 挖掘機(jī)體育場(chǎng)館建設(shè)合同
- 體育賽事招投標(biāo)時(shí)間規(guī)定
- 網(wǎng)絡(luò)布線大白施工合同
- 包裝設(shè)備租賃合同:提升包裝效果
- 凈化維保半年總結(jié)匯報(bào)
- 初中數(shù)學(xué)八年級(jí)上冊(cè) 軸對(duì)稱與軸對(duì)稱圖形 市賽一等獎(jiǎng)
- 人工智能行業(yè)職業(yè)生涯發(fā)展規(guī)劃
- 關(guān)聯(lián)交易培訓(xùn)課件
- 醫(yī)院放射診療中的輻射防護(hù)常識(shí)學(xué)習(xí)培訓(xùn)
- 誡子書綜合測(cè)試題及答案
- 重慶綠地系統(tǒng)規(guī)劃
- 道口開設(shè)施工方案
- 小升初數(shù)學(xué)銜接講座
- 提高自我保護(hù)意識(shí)主題班會(huì)
- 備戰(zhàn)2024年中考語文復(fù)習(xí)考點(diǎn)幫(全國通用)考點(diǎn)十三 小說閱讀(好題沖關(guān)·真題演練)(原卷版)
評(píng)論
0/150
提交評(píng)論