4.SQL数据库完整性约束的操作

本篇文章旨在帮助大家熟练掌握SQL数据库完整性约束的操作,加深大家对SQL数据库完整性约束的理解.

参考表格属性

在这里插入图片描述
在这里插入图片描述

创建表的时候设置完整性约束

参考代码

USE 创表完整性
CREATE TABLE 客户
(客户号 char(8) CONSTRAINT KH_NO PRIMARY KEY CHECK(客户号 like '[a-z]%'),
 客户名称 Varchar(40) NOT NULL,
 联系人 char(8) ,
 地址 Varchar(40),
 邮政编码 char(6) CHECK (邮政编码 LIKE '[0-9][0-9][0-9][0-9][0-9][0-9]'),
 电话 char(12)CHECK (电话 LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))
CREATE TABLE 产品
(产品号 char(8) CONSTRAINT CP_NO PRIMARY KEY CHECK(产品号 LIKE '[a-z][a-z]%'),
 产品名称 Varchar(40) UNIQUE,
 规格说明 char(40) ,
 单价 smallmoney CHECK(单价>0)
)
CREATE TABLE 订购单
(客户号 char(8) CONSTRAINT DGKH_NO REFERENCES 客户(客户号) NOT NULL,
 订单号 char(8) CONSTRAINT DG_NO PRIMARY KEY,
 订购日期  datetime DEFAULT GETDATE()
)
 CREATE TABLE 订单明细
(
 订单号 char(8) CONSTRAINT DDMXDD_NO REFERENCES 订购单(订单号) ,
 序号 tinyint ,
 产品号 char(8) CONSTRAINT DDMXCP_NO REFERENCES 产品(产品号) NOT NULL,
 数量 smallint CHECK(数量>0 AND 数量<=1000),
 PRIMARY KEY(订单号,序号)
)

创建完表以后添加完整性约束

1.先创建简单表


CREATE TABLE 客户
(客户号 char(8) ,
 客户名称 Varchar(40),
 联系人 char(8) ,
 地址 Varchar(40),
 邮政编码 char(6) ,
 电话 char(12))
 
CREATE TABLE 产品
(产品号 char(8),
 产品名称 Varchar(40),
 规格说明 char(40) ,
 单价 smallmoney 
)

CREATE TABLE 订购单
(客户号 char(8) ,
 订单号 char(8),
 订购日期  datetime 
)


 CREATE TABLE 订单明细
(
 订单号 char(8)  ,
 序号 tinyint ,
 产品号 char(8)  ,
 数量 smallint ,
)

2.追加表一的约束

USE 添加完整性
ALTER TABLE 客户
ALTER COLUMN 客户号 char(8) NOT NULL
USE 添加完整性
ALTER TABLE 客户
ADD
CONSTRAINT KH_NO1 PRIMARY KEY(客户号),
CONSTRAINT KH_NO2 CHECK(客户号 like '[a-z]%'),
CONSTRAINT KH_YB CHECK (邮政编码 LIKE '[0-9][0-9][0-9][0-9][0-9][0-9]'),
CONSTRAINT KH_DH CHECK (电话 LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')

3.追加表二的约束

USE 添加完整性
ALTER TABLE 产品
ALTER COLUMN 产品号 char(8) NOT NULL
USE 添加完整性
ALTER TABLE 产品
ADD
CONSTRAINT CP_NO1 PRIMARY KEY (产品号),
CONSTRAINT CP_NO2 CHECK(产品号 LIKE '[a-z][a-z]%'),
CONSTRAINT CP_CPMC UNIQUE(产品名称),
CONSTRAINT CP_DJ CHECK(单价>0)

4.追加表三的约束

USE 添加完整性
ALTER TABLE 订购单
ALTER COLUMN 客户号 char(8) NOT NULL
USE 添加完整性
ALTER TABLE 订购单
ALTER COLUMN 订单号 char(8) NOT NULL
USE 添加完整性
ALTER TABLE 订购单
ADD
CONSTRAINT DG_KHNO FOREIGN KEY (客户号)REFERENCES 客户(客户号),
CONSTRAINT DG_DDNO PRIMARY KEY(订单号),
CONSTRAINT DG_DGRQ DEFAULT GETDATE() FOR 订购日期

5.追加表四的约束

USE 添加完整性
ALTER TABLE 订单明细
ALTER COLUMN 订单号 char(8) NOT NULL
USE 添加完整性
ALTER TABLE 订单明细
ALTER COLUMN 序号 tinyint NOT NULL
USE 添加完整性
ALTER TABLE 订单明细
ALTER COLUMN 产品号 char(8) NOT NULL


USE 添加完整性
ALTER TABLE 订单明细
ADD 
CONSTRAINT DDMXDD_DDNO FOREIGN KEY (订单号)REFERENCES 订购单(订单号),
CONSTRAINT DDMXDD_CPNO FOREIGN KEY (产品号)REFERENCES 产品(产品号),
CONSTRAINT DDMXDD_NUM CHECK(数量>0 AND 数量 <=1000),
CONSTRAINT DDMXDD_LHZJ PRIMARY KEY(订单号,序号)

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:技术工厂 设计师:CSDN官方博客 返回首页

打赏作者

尼克勒的风

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值