约束(Constraint)

约束存在的目的其实就是更具需要把商业规则应用到数据库的设计当中

1.唯一(Identifier标识)  -- 主键  能够唯一确定实体的某一个实例的属性或者属性组

主键

CREATE TABLE EMP(
EMP_ID                CHAR(6)                  NOT  NULL,
EMP_NAME              VARCHAR(50)              NOT NULL,
ENP_EMALI_ADDRESS     VARCHAR(50)              NULL,
CONSTRAINT PK_EMP     PRIMARY KEY  (EMP_ID)    -----PK为主键缩写

);

唯一标识约束

CREATE TABLE EMP(
EMP_ID                CHAR(6)                  NOT  NULL,
EMP_NAME              VARCHAR(50)              NOT NULL,
ENP_EMALI_ADDRESS     VARCHAR(50)              NULL,
CONSTRAINT PK_EMP     PRIMARY KEY  (EMP_ID),    -----PK为主键名
CONSTRAINT AK_IDENTIFIER_EMAIL_EMP  UNIQUE (EMP_EMALL_ADDRESS)  --AK可选键缩写 
);

唯一索引

CREATE UNIQUE INDEX UI_EMP ON EMP(

EMP_EMAIL_ADDRESS

);

确保数据唯一性的同时可以提高查询的性能

2.非空约束(Not Null)

在Power Designer的逻辑模型中,前面标有*的属性不可以为空。在属性具体定义里要勾选M

CREATE TABLE EMP(
EMP_ID                CHAR(6)                  NOT  NULL,
EMP_NAME              VARCHAR(50)              NOT  NULL,
ENP_EMALI_ADDRESS     VARCHAR(50)              NULL,
CONSTRAINT PK_EMP     PRIMARY KEY  (EMP_ID), 
CONSTRAINT CKNONULL_EMPNAME CHECK(EMP_NAME is not null)  
);

null值就是null值,不是空字符串,不弄用0 代替  ,null值表示的是未知。

3.默认值(Default value) 

默认值(Default value)经常和not null配合使用,对于我们已经知道的字段进行自动的求值。

4.检查 (Check)

CONSTRAINT CNC_NORMAL_PRICE_PRODDCT CHECK(NORMAL_PRICE IS NULL OR (NORMAL_PRICE BETWEEN 0 AND 1000))

PRICE可以为空或者只能在0~1000之内

5.参照完整性(Referential Integrity) RI  主外键关系的约束 在数据仓库中运用较少

Cascade:当你删除或者修改主表数据的时候数据库会自动的把从表对应的外键相关的数据也做相应的删除或者修改

每个表可以有多个UNIQUE约束,但是每个表只能有一个PRIMARY KEY约束

1.下面的SQL 在‘person’表创建时在“ID_P”列创建unique约束

SQL Server/Oracle

create table persons(
ID_P         int      not null    UNIQUE,
LastName     varchar(200)   not null,
FirstName    varchar(200),
Address      varchar(200),

)

2.如果需要命名unique约束,以及为多个列定义UNIQUE约束,请使用下面的SQL语法

create table persons(
ID_P         int      not null,
LastName     varchar(200)   not null,
FirstName    varchar(200),
Address      varchar(200),
CONSTRAINT   UC_PersonID  UNIQUE (ID_P,LastName)
)

3.当表已被创建时,如需在 ID_P列创建UNIQUE约束,请使用下列SQL

ALTER TABLE Persons
ADD UNIQUE (ID_P)

4.如需命名UNIQUE 约束,并定义多个列的UNIQUE 约束,请使用下面的SQL语法

ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (ID_P,LastName)

5.撤销UNIQUE约束,请用下面的SQL  (SQL Server/Oracle)

ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值