数据库应用与设计实验(2)

作者:吴创鹏
链接:http://www.lofter.com/lpost/30943900_1c5dfea70
来源:LOFTER
实验2:建立表和定义完整性约束

CREATE DATABASE 实验
CREATE SCHEMA wcp

CREATE TABLE wcp.仓库
(仓库号CHAR(6) PRIMARY KEY CHECK(仓库号like’[A-Z][A-Z][0-9][0-9][0-9][0-9]’),
城市CHAR(10) UNIQUE NOT NULL,
面积INT CHECK(面积>=50))

CREATE TABLE wcp.职工
(职工号char(8) PRIMARY KEY CHECK(职工号like’[A-Z][A-Z][0-9][0-9][0-9][0-9][0-9][0-9]’),
仓库号CHAR(6) FOREIGN KEY REFERENCES wcp.仓库(仓库号) ,
工资money CHECK(工资>=1000 and 工资<=10000))

CREATE TABLE wcp.供应商
(供应商号char(4) PRIMARY KEY CHECK(供应商号like ‘S[0-9][0-9][0-9]’),
供应商名char(16),
地址char(30))

CREATE TABLE wcp.订购单
(职工号char(8) NOT NULL FOREIGN KEY REFERENCES wcp.职工(职工号),
供应商号char(4) NULL FOREIGN KEY REFERENCES wcp.供应商(供应商号),
订购单号char(6) PRIMARY KEY CHECK(订购单号like ‘OR[0-9][0-9][0-9][0-9]’),
订购日期datetime default getdate(),
金额money default null)

CREATE TABLE wcp.订单明细
(订购单号char(6) NOT NULL FOREIGN KEY REFERENCES wcp.订购单(订购单号),
序号char(2) ,
产品名称char(20),
单价money default null check(单价>0) ,
数量int NOT NULL CHECK(数量>0),
PRIMARY KEY(订购单号,序号))

(1)
ALTER TABLE wcp.订购单
ADD 完成日期datetime default null

(2)
ALTER TABLE wcp.订单明细
add CHECK (数量between0 and 1000)

(3)
ALTER TABLE wcp.供应商
ALTER column 供应商名varchar(30)

你可能感兴趣的:(数据库)