關於sql資料庫的約束

2021-08-01 10:51:48 字數 1872 閱讀 1032

約束條件在資料庫中的使用。

check 約束用於限制列中的值的範圍。

如果對單個列定義 check 約束,那麼該列只允許特定的值。

如果對乙個表定義 check 約束,那麼此約束會在特定的列中對值進行限制。

建立約束 如以下例子:

建立如下兩個表:

create table kkk

(tel char(13) primary key not null unique,

address char(10)

)

create table mmm

(id bigint not null primary key auto_increment unique,

name varchar(10),

address varchar(30) default '青海',

tel varchar(20) check (tel like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),

*** char(3) check (*** in ('男','女')),

mail varchar(20) check(mail like '%@%.%'),

salary bigint check (salary between 1000 and 8000),

reward bigint check (salary+reward<=10000),

foreign key (tel) references kkk(tel)

)

以上表建立了約束。

撤銷 check 約束

sql server / oracle / ms access:

alter table persons

drop constraint chk_person

mysql:

alter table persons

drop check chk_person

修改約束

sql check constraint on alter table

如果在表已存在的情況下為 "id_p" 列建立 check 約束,請使用下面的 sql:

mysql / sql server / oracle / ms access:

alter table persons

add check (id_p>0)

如果需要命名 check 約束,以及為多個列定義 check 約束,請使用下面的 sql 語法:

constraint的約束用法

unique:

alter table diy_os  add constraint unq_1 unique (id);

check :

alter table t add constraint chk_1 check (id in(1,2,3)); 

==》id後面跟的是表示式

not null:(這個約束是列級約束,和上面的不同,上面的是表級)

alter table diy_os  add constraint not_null check(id is not null);

sql資料庫中的約束

先用設計器建立約束,再用 建立約束。資料庫約束是為了保證資料的完整性 正確性 而實現的一套機制 1.非空約束 選擇核取方塊 2.主鍵約束 唯一且不為空,選中列,右鍵設為主鍵 3.唯一約束 唯一允許為空,但只能出現一次,右鍵,索引 鍵,新增,型別 唯一,選擇列 表示唯一約束列不能有重複的值 表中可以包...

sql資料庫開發 13 約束

約束 約束的作用 面臨的問題 某列必須有值而且唯一 某列的取值受到另一列取值的限制 資料庫提供解決方法 限制無效的資料進入到表中 資料庫層面的 安檢 約束的型別 primart key 主鍵約束 unique key 唯一鍵約束 not null 非空約束 references foreing ke...

關於資料庫的索引和約束

1.主鍵約束 primary key 1 主鍵用於唯一地標識表中的每一條記錄,可以定義一列或多列為主鍵。2 是不可能 或很難 更新 3 主鍵列上沒有任何兩行具有相同值 即重複值 不允許空 null 4 主健可作外健,唯一索引不可 2.唯一性約束 unique 1 唯一性約束用來限制不受主鍵約束的列上...