sqlserver管理mysql数据库_SQLServer数据库约束的管理

本文主要向大家介绍了SQLServer数据库约束的管理,通过具体的内容向大家展示,希望能对大家学习SQLServer数据库有所帮助。

约束是一种限制。通过在列级或表级设置约束,确保数据符合某种数据完整性规则。

约束的类型

1. 域约束:域约束处理一个或多个列,例如CHECK约束和DEFAULT约束。

2. 实体约束:实体约束都是关于比较行的,例如主键约束和唯一约束。

3. 参照完整性约束:如果某列的值必须与其他列(该列可能在同一个表中,或者更通常的是在不同的表中)的值匹配,就意味着创建了参照完整性约束。例如主键约束和外键约束。

键约束:键是数据库设计和管理的基本概念之一。包括四种类型:主键、外键、替换键、和倒置键(索引)。

主键约束

1. 在创建表的时候添加主键约束

CREATE TABLE T1 (

ID int PRIMARY KEY,  -- 在创建表的时候添加主键约束

Description varchar(500)

);

2. 在已存在的表上添加主键约束

ALTER TABLE T1

ADD CONSTRAINT PK_T1_ID

PRIMARY KEY (ID);

外键约束

1. 在创建表的时候添加外键约束

-- -- FOREIGN KEY REFERENCES

CREATE TABLE T2 (

ID int PRIMARY KEY,

RID int FOREIGN KEY REFERENCES T1 (ID), -- 在创建表的时候添加外键约束

Description varchar(500)

);

2. 在已存在的表上添加外键约束

ALTER TABLE T2

ADD CONSTRAINT FK_T2_ID

FOREIGN KEY (RID) REFERENCES T1 (ID);

唯一约束(替换键)

1. 在创建表的时候添加唯一约束

CREATE TABLE T1 (

ID int PRIMARY KEY,

NO varchar(50) UNIQUE,  -- 在创建表的时候添加唯一约束

Description varchar(500)

);

2. 在已存在的表上添加唯一约束

ALTER TABLE T1

ADD CONSTRAINT UQ_T1_NO

UNIQUE (NO)

CHECK 约束

1. 在创建表的时候添加CHECK约束

CREATE TABLE T1 (

ID int PRIMARY KEY,

Description varchar(500),

CreateDate datetime2 CHECK (CreateDate >= '1990-01-01')  -- 在创建表的时候添加CHECK约束

);

2. 在已存在的表上添加CHECK约束

ALTER TABLE T1

ADD CONSTRAINT CN_T1_CreateDate

CHECK (CreateDate >= '1990-01-01')

DEFAULT 约束

1. 在创建表的时候添加DEFAULT约束

CREATE TABLE T1 (

ID int PRIMARY KEY,

Description varchar(500),

CreateDate datetime2 DEFAULT GETDATE() -- 在创建表的时候添加DEFAULT约束

);

2. 在已存在的表上添加DEFAULT约束

ALTER TABLE T1

ADD CONSTRAINT CN_T1_CreateDate

DEFAULT GETDATE() FOR CreateDate;

禁用约束

1. 在添加约束时忽略已存在的无效数据

ALTER TABLE 

WITH NOCHECK  -- 在添加约束时忽略已存在的无效数据

ADD CONSTRAINT 

2. 临时禁用已存在的约束

ALTER TABLE 

NOCHECK  -- 临时禁用已存在的约束

CONSTRAINT 

ALTER TABLE 

CHECK  -- 再次启用约束

CONSTRAINT 

注意:只允许禁用外键约束和CHECK约束,不能禁用主键约束和唯一约束。

删除约束

ALTER TABLE 

DROP -- 删除约束

CONSTRAINT 

查看约束

EXEC sp_helpconstraint

规则和默认值

规则和默认值的引用要早于CHECK和DEFAULT约束。它们是较老的SQL Server备用约束的一部分,当然也不是没有优点。因此,建议您了解一下它们的向后兼容性和遗留代码,这里不再详细解释。规则和默认值不遵循ANSI标准(这产生了移植问题),而且性能不如约束好。自7.0版本之后,Microsoft列出规则和默认值只是为了向后兼容,而不准备在以后继续支持这个功能。

本文由职坐标整理并发布,了解更多内容,请关注职坐标SQL Server数据库频道!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值