通过修改表结构添加约束条件

创建3个表,通过ALTER语句添加约束

 书(Book) 的基本信息

列名

含义

类型及长度

是否可为空

bno

书号

char (8)

category

类别

varchar(10)

title

书名

varchar(40)

press

出版社

varchar(40)

book_year

年份

int

anthor

作者

varchar(20)

price

价格

Demical(7,2)

book_total

总藏书量

int

借书证(Card)的基本信息

列名

含义

类型及长度

是否可为空

cno

借书证号

char (7)

cname

姓名

char (8)

departdement

单位

varchar(40)

type

类别

char(1)

借书记录(Borrow)的基本信息

列名

含义

类型及长度

是否可为空

cno

借书证号

char (7)

Bno

书号

char (8)

borrow_date

借书日期

smalldatetime

return_date

还书日期

smalldatetime

--建表
CREATE TABLE Book
(	
	bno char(8) PRIMARY KEY NOT NULL,
	category varchar(10),
	title varchar(40) NOT NULL,
	press varchar(30) NOT NULL,
	book_year int NOT NULL,
	anthor varchar(20),
	price decimal(7,2) NOT NULL,
	book_total int NOT NULL
)

CREATE TABLE Card 
(
	cno char(7) NOT NULL,
	cname char(8) NOT NULL,
	department varchar(40),
	type char(1) NOT NULL 
)

CREATE TABLE Borrow
(
	cno char(7) NOT NULL,
	bno char(8) NOT NULL,
	borrow_date smalldatetime NOT NULL,
	return_date smalldatetime 
)

定义如下完整性约束条件:
(1)各基本表主码,并且要求主属性不能为空。
(2) 如果有外码,定义各基本表外码。

(3)要求检查基本表“借书证”中属性Type的值是否为(‘T',‘G’,‘U',‘O')。

(4)借书记录Borrow 基本表中borrow_date 默认日期为系统当前时间。
(5)确定各基本表哪些字段需要建立索引。

--修改基本表
ALTER TABLE <表名>
[ ADD <新列名> <数据类型> [完整性约束] ]
[ DROP <完整性约束> ]
[ ALTER <列名> <数据类型> ]

--添加主码
ALTER TABLE Book ADD CONSTRAINT PK_book PRIMARY KEY (bno)
ALTER TABLE Card ADD CONSTRAINT PK_card PRIMARY KEY (cno)
ALTER TABLE Borrow ADD CONSTRAINT PK_borrow PRIMARY KEY (bno,cno,borrow_date)

--添加外码
ALTER TABLE Borrow ADD CONSTRAINT FK_book FOREIGN KEY (bno) REFERENCES Book (bno),
CONSTRAINT FK_card FOREIGN KEY (cno) REFERENCES Card (cno)

--添加检查约束
ALTER TABLE Card ADD CONSTRAINT CHECK_type CHECK (type='T'or type='G'or type='U'or type='O')

--添加系统默认时间  **** for column_name
ALTER TABLE Borrow ADD CONSTRAINT DEFAULT_borrow_date DEFAULT GETDATE() FOR borrow_date

--创建索引
CREATE UNIQUE INDEX I_bno ON Book (bno)
CREATE UNIQUE INDEX I_cno ON Card (cno)
CREATE UNIQUE INDEX I_bno_cno ON Borrow (cno,bno)


你可能感兴趣的:(SQL,Server)