01 2資料庫約束條件

2021-08-19 23:51:21 字數 2312 閱讀 8402

約束的分類:1、主鍵 pk primary key 2、唯一約束 uk unique key

3、外來鍵約束 fk foreign key 4、非空約束 nn not null

5、檢查約束 ck check 6、預設值約束 default

ps:1、pk=uk+nn 唯一且非空 2、實現方法 :constraint

主鍵:保證實體完整性每一行(實體)是唯一的

1、列級約束直接定義在該字段之後 例如:

drop table emp;

creat table emp(

id int

constraint emp_id_pk primary key,

name varchar not null,

salary float);

2、表級約束定義在所有字段之後 例如:

drop table emp1;

creat table emp1(

id int ,

name varchar notnull,

salary float,

constraint emp_id_pk primary key(id) );

3、聯合主鍵 聯合起來唯一且非空 (單個字段值可允許重複) 例如:

drop table stu;

creat table stu(

id1 int;

id2 int;

name varchar;

constraint stu_id1_id2_pk primary key(id1,id2) );

聯合主鍵:聯合起來唯一且非空

紅   藍

紅   綠   單個字段可以重複

紅   黑

藍   綠   組合在一起不重複

紅   綠   重複了

4、後期追加約束:alter

creat table stu1( id int not null, name varchar not null)

追加約束:alter table stu1 add constraint stu1_id_pk primary key(id);

5、刪除約束:drop

alter table stu1 drop constraint stu1_id_pk;

唯一性約束:保證實體完整性

drop table stu;

creat table stu(

id int not null unique;

name varchar(30) );

1、追加約束 alter table stu add constraint stu add stu_name_uk unique(name);

如果再追加約束,資料重複無法追加,需先刪除記錄,再追加;

2、聯合唯一約束 給stu1新增聯合唯一約束,要求name1和name2聯合唯一

drop table stu1;

creat table stu1(id int primary key;name1 varchar;name2 varchar;)

alter table stu1

add constraint stu1_name1_name2_uk unique(id1,id2);

3、刪除約束 drop

alter table stu1 drop constraint stu1_name1_name2_uk;

外來鍵約束:引用完整性、參照完整性 references 表名(字段)

父表:部門表

creat table dep(

id int primary key;

name varchar(30) );

子表:員工表

creat table emp(

id int primary key;

name varchar(30);

dep_id int foreign key references dep(id) );

非空約束:域完整性 not null 字段不能為空

檢查約束:域完整性  針對某個字段進行資料有效性檢查 ,如果資料不符合要求,無法插入成功

1、針對customer表新增乙個check約束,保證email欄位的有效性 必須有@

alter table customer add constraint customer_email_ck check(email like'%@%');

再新增資料會校驗email欄位有無@,若無,則無法新增

2、刪除check 約束 alter table customer drop constraint  customer_email_ck;

預設值約束:default

資料庫之約束條件

約束條件 python primary key pk 標識該字段為該錶的主鍵,可以唯一的標識記錄 foreign key fk 標識該字段為該錶的外來鍵 not null 標識該欄位不能為空 unique key uk 標識該字段的值是唯一的 auto increment 標識該字段的值自動增長 整...

資料庫表的約束條件

主鍵約束可以用兩種方式定義 列級主鍵約束和表級主鍵約束 列級主鍵約束演示 create table dept htlwk deptno varchar 20 primary key,列級約束條件 dname varchar 20 location varchar 40 表級主鍵約束演示 create...

oracle 查詢資料庫的約束條件

1 1 查詢表的所有索引 包括索引名,型別,構成列 23 select t.i.index type from user ind columns t,user indexes i where t.index name i.index name and t.table name i.table nam...