為了增強表的安全性(在資料庫中建立的使用者表必須安全),需要對錶中的每列數進行約束。
約束方式有兩種:
1、 建表時設定約束
2、 建表後追加約束
當應用程式訪問資料庫時,還要注意的是,如果是資料庫設計方面的操作,一定要在資料庫中完成,而不能借用其他形式(如在應用程式中操作);
單錶的五類約束:
多表的一類約束:
第一類約束:可空、非空約束
null,預設可空,用來約束列的,標明這列資料可有可無;
not null,非空,用來約束列的,標明這列資料必須有;
第二類單錶約束:
主鍵約束:primary key
它的作用是用來標記行的唯一性,即某行記錄與其他所有行記錄不同。
要求對於任何乙個表,都要設計主鍵約束,而且乙個表中只有乙個主鍵約束。
對於表中的多列,如何選擇主鍵約束到哪一列上?
按照生活中的實際邏輯關係進行選擇。
表中作為主鍵的列,可以是單列,也可以是多列(稱為復合主鍵或聯合主鍵),在sqlserver中不建議使用復合主鍵。
約束的要素:
1、 約束名稱,可以由使用者定義,如果使用者不定義,則由伺服器自動命名;
2、 約束型別
與not null約束存在時沒有任何變化。
表中符合主鍵約束列的條件:
1、 唯一
2、 非空
主鍵列的幾種形式:
1、 字元型主鍵列資料,其內容需要使用者輸入,無論是否包括中文;
a) 如果不包括中文,則使用單位元組字元編碼
b) 如果資料中有中文存在,則一定要使用雙位元組編碼
c) 如果是變長的資料,也以按照以上兩點執行。
2、 整數自增型資料作為主鍵
a) sqlserver中的自增屬性,此技術在mysql(increment)和oracle(sequence)也都存在;用法為提供乙個種子和乙個增量,每新增一行記錄,此列就會增大或減小。
b) 在資料值資料中,只有整型資料可以作主鍵,實數不行。
c) 整數作主鍵,只是唯一非空即可,不一定非自增。
主鍵約束的另一種操作形式,建表後向表中追加。
如果表中已經存在了主鍵約束,就不能繼續向表中追加了;當追加約束時,如果表中已經有了記錄,如果記錄中有不符合主鍵約束的條件,仍然追加不上。
向表中追加約束的過程,相當於修改了表的結構,使用關鍵字alter
SQL表的約束
create table students s char 8 not null unique,sname char 10 s char 2 constraint cts check s 男 or s 女 sage integer check sage 1 and sage 150 d char 2 ...
Programmer列約束與表約束(SQL 語句)
表結構的建立與修改 sql 語句 一 表結構定義語法格式 create table 列名 列型別 列屬性 列約束 表約束 on textimage on 列型別 就是sql server 支援的型別及相應的寬度.列屬性 列屬性中可以是如下幾種屬性 1 預設值default 常量表示式.2 標識ide...
SQL 的常用更改表約束
sql 的常用更改表約束 一 修改字段預設值 alter table 表名 drop constraint 約束名字 說明 刪除表的字段的原有約束 alter table 表名 add constraint 約束名字 default 預設值 for 欄位名稱 說明 新增乙個表的字段的約束並指定預設值...