华东师大 08级 数据库 上机考试题及答案二.docx
《华东师大 08级 数据库 上机考试题及答案二.docx》由会员分享,可在线阅读,更多相关《华东师大 08级 数据库 上机考试题及答案二.docx(10页珍藏版)》请在冰豆网上搜索。
华东师大08级数据库上机考试题及答案二
上机测试二
现有书店管理数据库,包含以下表:
1、书籍类别表:
booktype
字段
数据类型
描述
type_id
int
书籍类别编号,主键
typename
Varchar(20)
书籍类别名称,取值唯一
2、书籍信息表:
book
字段
数据类型
描述
Book_id
int
书籍编号,主键
Book_name
Varchar(40)
书籍名称,取值唯一
Type_id
int
书籍类别编号,外键,引用书籍类别表中的type_id
author
char(10)
作者名,可以取空值
Price
Decimal(5,1)
单价
publisher
Varchar(30)
出版社
page
int
页数,可以取空值
Publish_date
date
出版日期
3、用户信息表(users)
字段
数据类型
描述
User_id
int
用户编号,主键
password
char(8)
用户密码
name
char(10)
用户真实姓名
email
char(20)
电子邮件
telephone
char(15)
联系电话
address
Varchar(50)
联系地址
4、订单表(book_order)
字段
数据类型
描述
Order_id
int
订单编号,主键
User_id
int
订单用户编号,外键,引用用户信息表中的User_id
ordertime
date
订单生成的时间
sendtime
date
发货时间,可以为空值。
如果consignment字段值为0,则该字段为空;如果consignment字段值为1,则该字段非空。
consignment
tinyint
是否发货?
1表示发货,0表示没有发货,默认为0
5、订单详细信息表(order_detail)
字段
数据类型
描述
Book_id
int
书籍编号,外键
Book_number
int
书籍数量
Order_id
int
订单编号,外键
该表的主键为(Order_id+Book_id)
表中的数据:
1、书籍类别表:
booktype
type_id
typename
1
计算机类
2
经济类
3
管理类
4
外语类
2、书籍信息表:
book
Book_id
Book_name
Type_id
author
price
publisher
page
Publish_date
100001
计算机基础
1
李肖
17
清华大学出版社
250
2008-9
100002
程序设计方法学
1
吴永辉
25
北大出版社
450
2009-9
200003
经济学
2
王林
16
社会科学出版社
300
2003-4
100114
数据库系统
1
夏以琳
12
复旦大学出版社
450
2002-7
300021
企业管理
3
许戈福
21
江西出版社
500
2007-12
300006
管理模式
3
张千
14
社会科学出版社
350
2008-7
400001
大学英语
4
肖红
35
上海外语出版社
550
2006-5
400002
英语翻译技巧
4
周阳
16
华东师范大学出版社
350
2008-9
3、用户信息表(users)
user_id
password
name
email
telephone
address
230001
12345678
张丹
acbd@
61234901
通江路230号
367009
12345678
刘红
Ssss@
62235678
中山北路3663号
128901
12345678
赵明
qwer@
61111111
东川路1000号
330002
12345678
李芳
aaaaa@
62222222
怒江路2300号
4、订单表(book_order)
Order_id
User_id
ordertime
sendtime
consignment
2009001189
230001
2009-11-20
2009-11-24
1
2009001190
330002
2009-11-25
2009-11-28
1
2009001191
128901
2009-11-30
0
2009001192
367009
2009-12-05
0
5、订单详细信息表(order_detail)
Book_id
Book_number
Order_id
100001
2
2009001189
100002
1
2009001189
400001
2
2009001189
200003
1
2009001190
300021
2
2009001190
400002
1
2009001191
300006
2
2009001191
100114
1
2009001192
要求完成以下操作:
1、先创建书店管理数据库,在该数据库中按照上述的描述创建5张表,除非特别说明,否则字段值都不允许为空
2、将所有的数据录入到相应表中
3、创建一个订单查询视图,该视图包括订单编号,每一张订单订购的书籍总数量以及总价等信息。
4、完成以下对数据的操作:
a)将类别为“计算机类”的书的编号,名称,作者,出版社,单价等信息查询出来。
b)利用订单查询视图,将“2009-12-01”日前生成的,并且已经发货的订单的订单编号、订单的用户编号、订购的书籍总数量以及总价,订单生成时间,发货时间等信息查询出来
c)将订单编号为“2009001189”的用户姓名,联系方式,联系地址,所订购的书籍编号,书籍名称,出版社,单价、订购的数量等信息查询出来。
答案:
CREATETABLE[dbo].[booktype](
[type_id][int]NOTNULL,
[typename][char](20)NOTNULLUNIQUE,
primarykey(type_id)
)
CREATETABLE[dbo].[book](
[Book_id][int]NOTNULL,
[Book_name][char](40)NOTNULLUNIQUE,
[Type_id][int]NOTNULL,
[author][char](10)NULL,
[Price][Decimal](5,1)NOTNULL,
[publisher][char](30)NOTNULL,
[page][int]NULL,
[Publish_date][datetime]NOTNULL,
primarykey(Book_id),
CONSTRAINT[FK_book_booktype]FOREIGNKEY(Type_id)REFERENCES[dbo].[booktype](Type_id)
)
CREATETABLE[dbo].[users](
[User_id][int]NOTNULL,
[password][char](8)NOTNULL,
[name][char](10)NOTNULL,
[email][char](20)NOTNULL,
[telephone][char](15)NOTNULL,
[address][char](50)NOTNULL,
primarykey(User_id)
)
CREATETABLE[dbo].[book_order](
[Order_id][int]NOTNULL,
[User_id][int]NOTNULL,
[ordertime][datetime]NOTNULL,
[sendtime][datetime]NULL,
[consignment][tinyint]NOTNULLDEFAULT(0)CHECK(consignmentin(0,1)),
primarykey(Order_id),
CONSTRAINT[FK_book_order_users]FOREIGNKEY(User_id)REFERENCES[dbo].[users](User_id),
CONSTRAINTchk_sendtimeCHECK((sendtimeisNULLandconsignment=0)orsendtimeisNOTNULL)
)
或CONSTRAINT[DF__book_orde__consi__2C3393D0]DEFAULT(0)FOR[consignment],
CONSTRAINT[chk_sendtime]CHECK([sendtime]isnulland[consignment]=0or[sendtime]isnotnull),
CREATETABLE[dbo].[order_detail](
[Book_id][int]NOTNULL,
[Book_number][int]NOTNULL,
[Order_id][int]NOTNULL,
primarykey(Book_id,Order_id),
CONSTRAINT[FK_order_detail_book]FOREIGNKEY(Book_id)REFERENCES[dbo].[book](Book_id),
CONSTRAINT[FK_order_detail_book_order]FOREIGNKEY(Order_id)REFERENCES[dbo].[book_order](Order_id)
)
insertintobooktypevalues(1,'计算机类');
insertintobooktypevalues(2,'经济类');
insertintobooktypevalues(3,'管理类');
insertintobooktypevalues(4,'外语类');
insertintobookvalues(100001,'计算机基础',1,'李肖',17,'清华大学出版社',250,2008-9);
insertintobookvalues(100002,'程序设计方法学',1,'吴永辉',25,'北大出版社',450,2009-9);
insertintobookvalues(200003,'经济学',2,'王林',16,'社会科学出版社',300,2003-4);
insertintobookvalues(100114,'数据库系统',1,'夏以琳',12,'复旦大学出版社',450,2002-7);