sql 表的約束1

2021-06-20 14:05:39 字數 1199 閱讀 3521

為了增強表的安全性(在資料庫中建立的使用者表必須安全),需要對錶中的每列數進行約束。

約束方式有兩種:

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 欄位名稱 說明 新增乙個表的字段的約束並指定預設值...