1、 设有一图书馆数据库,包括三个表:图书表、读者表、借阅表。三个表
的结构如表3-3、表3-4和表3-5所示。完成以下习题。
表3-3 图书表结构
列名 说明 图书图书唯一的图书号 号 数据类型 约束 定长字符串,长度为主键 20 空值 书名 图书的书名 变长字符串,长度为50 作者 图书的编著者名 变长字符串,长度为空值 30 出版社 单价 图书的出版社 变长字符串,长度为空值 30 出版社确定的图书的单浮点型,FLOAT 价 空值 表3- 4 读者表结构
列名 读者号 姓名 性别 说明 数据类型 读者唯一编定长字符串,长度为10 号 读者姓名 定长字符串,长度为8 读者性别 约束说明 主键 非空值 定长字符串,长度为2 非空值 空值 办公电读者办公电定长字符串,长度为8 话 话 部门 读者所在部变长字符串,长度为30 门 空值 表3- 5 借阅表结构
列名 读者号 说明 数据类型 约束说明 读者的唯一编定长字符串,长度为外码,引用读者表的号 10 主键 图书号 图书的唯一编定长字符串,长度为外码,引用图书表的号 20 主键 图书借出的日借出日定长字符串,长度为非空值 期 期 8,为’yymmdd’ 归还日图书归还的日定长字符串,长度为空值 期 期 8,为’yymmdd’ 主键为:(读者号, 图书号) (1)用SQL语句创建图书馆数据库。 Create database 图书馆数据库; (2)用SQL语句创建上述三个表。 use 图书馆数据库 Go
create table book
( bnum char (20) primary key, bname varchar (50), bwri varchar (30), bpub varchar (30),
bpri float );
use 图书馆数据库 go
create table rea
use 图书馆数据库 go
create table br
( rnum char (10) not null, bnum char (20) not null, brdate char (8) not null, brback char (8),
foreign key (rnum) references rea(rnum), foreign key (bnum) references book(bnum) ( rnum char (10) primary key, rname char (8) not null, rsex char (2) not null, rphone char (8), rpar char(30) );
);
(3)基于图书馆数据库的三个表,用SQL语言完成以下各项操作: 1)给图书表增加一列“ISBN”,数据类型为CHAR(10)
alter table book add ISBN CHAR(10);
2)为刚添加的ISBN列增加缺省值约束,约束名为ISBNDEF,缺省值为’7111085949’;
ALTER TABLE BOOK
ADD CONSTRAINT ISBNDEF DEFAULT '7111085949' FOR ISBN;
3)为读者表的’办公电话’列,添加一个CHECK约束,要求前五位’88320’,约束名为CHECKDEF。
ALTER TABLE REA
ADD CONSTRAINT CHECKDEF CHECK (RPHONE >='88320000' AND RPHONE <='88320999');
4)删除图书表中ISBN列增加缺省值约束; ALTER TABLE BOOK DROP ISBNDEF;
5)删除读者表中“办公电话”列的CHECK约束;
ALTER TABLE REA DROP CHECKDEF;
6)删除图书表中新增的列ISBN;
ALTER TABLE BOOK DROP COLUMN ISBN;
相关推荐: