一:可以使用約束實現資料完整性
二:可以使用規則和預設值
三:在此之前先了解建立資料表的基本知識
建立乙個名字為student的資料庫
然後在student 的下邊建立乙個名字為student1的表
要求如下
屬性名資料型別
可否為空
約束要求
學號char否主鍵
姓名varchar否性別
char否年齡
tinyint
可所在系
char否
建立資料庫和資料表有兩種方式,一種是在企業管理器(2000的低版本裡)用設計完成,另一種是通過(查詢分析器2000)新建查詢完成,sql2008沒有明顯的企業管理器和查詢分析器,他們都在乙個窗體,這樣很方便了,由於通過新建查詢寫**的方式要簡便的多,盡量使用寫**來實現吧
建立資料庫
建立資料表student1
檢視資料表有沒有建成
學會了建庫建表,已經邁出了第一步,然而建表不能隨便建表,我們需要限制,來實現資料的完整性,開始奔入主題。
【約束】
下邊通過乙個總體說明約束怎樣保證資料完整性的
名稱作用
體現的完整性
primary key
定義外來鍵,保證被設定的列內不出現重複值
實體完整性
unique
不出現重複
實體完整性
foreign key
定義外來鍵,保證表和表之間的一致性
參照完整性
check
定義列中資料的範圍
自定義完整性
default
為列的資料設定預設值
自定義完整性
1:主鍵 乙個表中只能有乙個主鍵 定義主鍵可以設定,也可以在**中需要的時候加在相應的字段
2:unique 資料表中非主鍵列在各行記錄中不能出現相同的非空值,這時就需要有unique的特性,用法和主鍵一樣
3:外來鍵 是不同的表之間的關係,當其中有一些資料存在關係是可以建立外來鍵,(可以避免出錯)
[constraint 約束名] foreign key (列名) reference 表名(列名)
4:check 限定列之間資料的參照關係 比如乙個表中包含學生的「出生日期」和「入校日期」,入校日期肯定要晚於出生日期,這個時候可以用check來限定
[constraint 約束名] check (關係式)
5:default 當有非常多的相同資料要輸入到資料表中的時候,可以設定乙個預設值,這樣減少工作量
[constraint 約束名] default 常量表示式 for 欄位名
說明::在沒有單獨拿出定義約束的時候可以省略[constraint 約束名]
【規則和預設值】
1:規則
規則可以做:驗證資料的值是否處於一定的範圍內
是否和特定格式相匹配 是否與制定列表中的輸入相匹配(想到了學生資訊管理系統一些東西我們都可以在資料庫裡設定,比如時間的格式)
建立規則:create rule 規則名 as 規則的表示式(如果表示式中含有引數要加上@)
使用規則:sp_bindrule 規則名, 『表名.列名』
檢視規則:sp_helptext 規則名
解除規則: sp_unbindrule 規則名, 『表名.列名』
刪除規則:drop rule 規則名組
2:預設值
建立預設值:create default 預設名 as 表示式
使用預設值:sp_bindefault 預設名, 『表名.列名』(注意在敲**的時候注意必須是英文)
檢視預設值:sp_helpconstraint 表名
解除預設值:sp_unbindefault 預設名, 『表名.列名』
刪除預設值:drop_default 預設值名
四:【總結】
規則和約束都可以保證資料完整性,二者的區別
1:約束是基於表的操作
規則和預設值在建立了以後,他不屬於某個表,只有在繫結了命令了以後才會發生關係
2:乙個約束只能對乙個表的乙個列產生作用,
規則和預設值可以繫結到多個表多個列中。
資料庫 資料完整性
更安全的資料型別可參考 型別 位元組大小 有符號範圍 sigened 無符號範圍 unsigned tinyint 1 128 127 0 255 smallint 2 32768 32767 0 65535 mediumint 3 8388608 8388607 0 16777215 int in...
資料庫完整性
完整性約束條件 實體完整性給出了主鍵的取值的最低約束條件 規則是 主鍵的各個屬性都不能為空。參照完整性給出了在關係之間建立正確的聯絡的約束條件 規則是 外來鍵或者取空值 此時要求外來鍵的各個屬性均為空值 或者等於被參照關係中的主鍵的某個值。使用者自定義完整性 關係數控應用系統中的關係往往還應該滿足一...
資料庫完整性
資料的完整性和安全性 資料庫的完整性和安全性是兩個既有聯絡又不盡相同的概念。資料的完整性是為了防止資料庫中存在不符合語義的資料,也就是防止資料庫中存在不正確的資料。資料的安全性是保護資料庫防止惡意破壞和非法訪問。完整性檢查和控制的防範物件是不合語義的 不正確的資料,防止它們進入資料庫。安全性控制的方...