亚洲欧美日韩综合系列在线_91精品人妻一区二区_欧美大肥婆一级特大AA片_九色91视频免费观看_亚洲综合国产精品_av中文字幕在线不卡_久久精品色综合网_看黄色视频的软件_无卡无码高清中文字幕码2024_亚洲欧美日韩天堂网

數(shù)據(jù)庫——怎樣實(shí)現(xiàn)數(shù)據(jù)完整性

來源:竇孟園 發(fā)布時(shí)間:2018-12-05 11:41:24 閱讀量:1046

一:可以使用約束實(shí)現(xiàn)數(shù)據(jù)完整性


二:可以使用規(guī)則和默認(rèn)值


三:在此之前先了解創(chuàng)建數(shù)據(jù)表的基本知識


建立一個名字為student的數(shù)據(jù)庫


然后在student 的下邊建立一個名字為student1的表


要求如下


屬性名


數(shù)據(jù)類型


可否為空


約束要求


學(xué)號


Char



主鍵


姓名


varchar



 


性別


Char



 


年齡


Tinyint



 


所在系


Char



 


 


建立數(shù)據(jù)庫和數(shù)據(jù)表有兩種方式,一種是在企業(yè)管理器(2000的低版本里)用設(shè)計(jì)完成,另一種是通過(查詢分析器2000)新建查詢完成,sql2008沒有明顯的企業(yè)管理器和查詢分析器,他們都在一個窗體,這樣很方便了,由于通過新建查詢寫代碼的方式要簡便的多,盡量使用寫代碼來實(shí)現(xiàn)吧


建立數(shù)據(jù)庫




建立數(shù)據(jù)表student1




查看數(shù)據(jù)表有沒有建成




學(xué)會了建庫建表,已經(jīng)邁出了第一步,然而建表不能隨便建表,我們需要限制,來實(shí)現(xiàn)數(shù)據(jù)的完整性,開始奔入主題。


【約束】


下邊通過一個總體說明約束怎樣保證數(shù)據(jù)完整性的


名稱


作用


體現(xiàn)的完整性


Primary key


定義外鍵,保證被設(shè)定的列內(nèi)不出現(xiàn)重復(fù)值


實(shí)體完整性


Unique


不出現(xiàn)重復(fù)


實(shí)體完整性


Foreign key


定義外鍵,保證表和表之間的一致性


參照完整性


Check


定義列中數(shù)據(jù)的范圍


自定義完整性


default


為列的數(shù)據(jù)設(shè)定默認(rèn)值


自定義完整性


 


 


 


 


1:主鍵    一個表中只能有一個主鍵   定義主鍵可以設(shè)定,也可以在代碼中需要的時(shí)候加在相應(yīng)的字段


2:unique    數(shù)據(jù)表中非主鍵列在各行記錄中不能出現(xiàn)相同的非空值,這時(shí)就需要有unique的特性,用法和主鍵一樣


3:外鍵   是不同的表之間的關(guān)系,當(dāng)其中有一些數(shù)據(jù)存在關(guān)系是可以建立外鍵,(可以避免出錯)


[constraint 約束名] foreign key (列名)   reference 表名(列名)


4:check   限定列之間數(shù)據(jù)的參照關(guān)系   比如一個表中包含學(xué)生的“出生日期”和“入校日期”,入校日期肯定要晚于出生日期,這個時(shí)候可以用check來限定


[constraint 約束名]  check  (關(guān)系式)


5:default  當(dāng)有非常多的相同數(shù)據(jù)要輸入到數(shù)據(jù)表中的時(shí)候,可以設(shè)定一個默認(rèn)值,這樣減少工作量


[constraint 約束名]  default 常量表達(dá)式    for   字段名


說明::在沒有單獨(dú)拿出定義約束的時(shí)候可以省略[constraint  約束名]


【規(guī)則和默認(rèn)值】


1:規(guī)則


規(guī)則可以做:驗(yàn)證數(shù)據(jù)的值是否處于一定的范圍內(nèi)


                                是否和特定格式相匹配   是否與制定列表中的輸入相匹配(想到了學(xué)生信息管理系統(tǒng)一些東西我們都可以在數(shù)據(jù)庫里設(shè)定,比如時(shí)間的格式)


創(chuàng)建規(guī)則:create  rule  規(guī)則名 as   規(guī)則的表達(dá)式(如果表達(dá)式中含有參數(shù)要加上@)


使用規(guī)則:sp_bindrule   規(guī)則名, ‘表名.列名’


查看規(guī)則:sp_helptext  規(guī)則名


解除規(guī)則: sp_unbindrule  規(guī)則名, ‘表名.列名’


刪除規(guī)則:drop rule  規(guī)則名組


2:默認(rèn)值


創(chuàng)建默認(rèn)值:create default  默認(rèn)名  as   表達(dá)式


使用默認(rèn)值:sp_bindefault  默認(rèn)名, ‘表名.列名’(注意在敲代碼的時(shí)候注意必須是英文)


查看默認(rèn)值:sp_helpconstraint  表名


解除默認(rèn)值:sp_unbindefault  默認(rèn)名, ‘表名.列名’


刪除默認(rèn)值:drop_default   默認(rèn)值名


四:【總結(jié)】


規(guī)則和約束都可以保證數(shù)據(jù)完整性,二者的區(qū)別


1:約束是基于表的操作


規(guī)則和默認(rèn)值在創(chuàng)建了以后,他不屬于某個表,只有在綁定了命令了以后才會發(fā)生關(guān)系


2:一個約束只能對一個表的一個列產(chǎn)生作用,


規(guī)則和默認(rèn)值可以綁定到多個表多個列中。

--------------------- 



標(biāo)簽: 數(shù)據(jù)庫
分享:
評論:
你還沒有登錄,請先