数据库题库(5)

2018-12-17 14:20

发货日期 DATE ,

CHECK(发货日期 > 订购日期),

PRIMARY KEY(产品号,客户号,订购日期),

FOREIGN KEY(产品号) REFERENCES 产品表(产品号), FOREIGN KEY(客户号) REFERENCES 客户表(客户号))

为描述汽车的销售情况,创建了三张表:汽车表,销售商表和汽车销售表。各表结构如下:

1.汽车表

汽车号:普通编码定长字符型,4位长,主键。 汽车名:普通编码定长字符型,8位长,非空。 型号:普通编码定长字符型,6位长,非空。 类型:普通编码定长字符型,6位长。

价格:定点小数,整数部分6位,小数部分1位。

2.销售商表

销售商号:普通编码定长字符型,4位长,主键,

销售商名:普通编码可变长字符型,20位长,非空,最后四个字必须是“销售公司”。 地址:普通编码定长字符型,4位长。

电话:普通编码定长字符型,8位长,取值形式为:“3位区号-4位号码”,即前三位和后四位的每一位必须是0-9的数字,第4位必须是连字符。

3.销售表

汽车号:普通编码定长字符型,4位长,非空。 销售商号:普通编码定长字符型,4位长,非空。 销售日期:日期型,非空, 默认为系统当前日期。 销售数量:小整型。 其中:(汽车号,销售商号,销售日期)为主键。 “汽车号”为引用汽车表的“汽车号”的外键,“销售商号”为引用销售商表的“销售商号”的外键。

写出创建这三张表的SQL语句,要求在创建表时定义表中的全部约束。 create table 汽车表(

汽车号 char(4) primary key, 汽车名 char(8) not null, 型号 char(6) not null, 类型 char(6) ,

价格 numeric(7,1))

create table 销售商表(

销售商号 char(4) primary key,

销售商名 varchar(20) not null check (销售商名 like '%销售公司'), 地址 char(4) ,

电话 char(8) check(电话 like '[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]'))

create table 销售表(

汽车号 char(4) not null, 销售商号 char(4) not null,

销售日期 date not null default getdate(), XSSL smallint,

primary key(汽车号,销售商号,销售日期),

foreign key(汽车号) references 汽车表(汽车号),

foreign key(销售商号) references 销售商表(销售商号))

已知“图书借阅”表和“借阅历史”表的结构如下: 表名:图书借阅

字段名称 数据类型 长度 备注 条码号 char 10 主键 借阅日期 Date 应还日期 Date

表名:借阅历史

字段名称 数据类型 长度 备注 序号 int 主键,自增 条码号 char 10 借阅日期 Date 应还日期 Date 删除时间 Datetime 默认值为系统当前时间

请创建一个触发器,当从图书借阅表中删除数据时,将被删除的数据存放至借阅历史表。 create trigger tri_book on 图书借阅 for delete as begin

declare @tiaoma char(10), @bdate Date,@rdate Date

select @tiaoma=条码号,@bdate=借阅日期,@rdate=应还日期 from deleted insert into 借阅历史(条码号,借阅日期,应还日期,删除时间) values(@tiaoma,@bd

设计了三张表:图书表、读者表和借阅表,各表结构如下: 读者表:

读者号:普通编码定长字符型,长度为8,主键。 读者名:普通编码定长字符型,长度为10,非空。 读者身份:普通编码定长字符型,长度为4。 图书表:

书号:普通编码定长字符型,长度为8,主键。

书名:普通编码可变长字符型,最大长度为30,非空。(注:该书号为图书的ISBN号,相同书号的图书可以有多本)

单价:定点小数类型,整数部分3位,小数部分1位。 出版日期:日期时间型。

类别:普通编码定长字符型,长度为8。 在库数量:整型。 借阅表:

读者号:普通编码定长字符型,长度为8,非空。外键,引用“读者表”的“读者号” 书号:普通编码定长字符型,长度为8,非空。外键,引用“图书表”的“书号” 借书日期:日期时间型,非空。 还书日期:日期时间型。

其中(读者号,图书号,借书日期)为主键。

针对上述各表,写出限制一个读者的当前借书总数量不能超过5本(小于等于5)的后触发型的触发器。

create trigger tri1 Create trigger tr1

On 借书表 for insert As

If exists(select * from inserted where 读者编号 in ( Select 读者编号 from 借书表 Where 还书日期 is null

group by 读者编号 having count(*)>5) rollback

设计了三张表:图书表、读者表和借阅表,各表结构如下: 读者表:

读者号:普通编码定长字符型,长度为8,主键。 读者名:普通编码定长字符型,长度为10,非空。 读者身份:普通编码定长字符型,长度为4。 图书表:

书号:普通编码定长字符型,长度为8,主键。

书名:普通编码可变长字符型,最大长度为30,非空。(注:该书号为图书的ISBN号,相同书号的图书可以有多本)

单价:定点小数类型,整数部分3位,小数部分1位。 出版日期:日期时间型。

类别:普通编码定长字符型,长度为8。 在库数量:整型。 借阅表:

读者号:普通编码定长字符型,长度为8,非空。外键,引用“读者表”的“读者号” 书号:普通编码定长字符型,长度为8,非空。外键,引用“图书表”的“书号” 借书日期:日期时间型,非空。 还书日期:日期时间型。

其中(读者号,图书号,借书日期)为主键。

针对上述各表,写出限制一个读者的当前借书总数量不能超过5本(小于等于5)的后触发型的触发器。

create trigger tri1 Create trigger tr1

On 借书表 for insert As

If exists(select * from inserted where 读者编号 in ( Select 读者编号 from 借书表 Where 还书日期 is null

group by 读者编号 having count(*)>5) rollback

设有学生表:Student(Sno,Sname,Ssex,Sage,Sdept), 课程表:Course(Cno,Cname,Credit,Semester), 选课表:SC(Sno,Cno,Grade)

针对以上各表,写出限制一学期开设课程不能超过8门的后触发型触发器。 create trigger tri2 on Course after insert,update as

if exists(select * from course group by semester having count(*) > 8 ) Rollback

设有学生表:Student(Sno,Sname,Ssex,Sage,Sdept), 课程表:Course(Cno,Cname,Credit,Semester), 选课表:SC(Sno,Cno,Grade)

针对以上各表,写出限制一个学生在一个学期所选课程不能超过8门的后触发型触发器。

create trigger tri3 on SC for insert as

if exists(select * from SC join course c on sc.cno = c.cno

group by semester,sno having count(*) > 8) Rollback

设有学生表:Student(Sno,Sname,Ssex,Sage,Sdept), 课程表:Course(Cno,Cname,Credit,Semester), 选课表:SC(Sno,Cno,Grade)

针对以上各表,写出不能将不及格成绩改为及格的后触发型触发器。(设60分为及格) create trigger tri4 on SC for upate as

if exists(select * from inserted i join deleted d on i.sno = d.sno and i.cno = d.cno where i.grade >= 60 and d.grade < 60)

Rollback

设有学生表:Student(Sno,Sname,Ssex,Sage,Sdept), 课程表:Course(Cno,Cname,Credit,Semester), 选课表:SC(Sno,Cno,Grade)

针对以上各表,写出不能删除有人选的课程的后触发型触发器。 create trigger tri5 on Course for delete as

if exists(select * from deleted where cno in (select cno from sc )) Rollback

DBMS的含义是 A、数据库系统... C

关系数据库管理系统应能实现的专门关系运算... B

通配符“%”表示 A、代表一个字符... B

事务的原子性是指 A、事务一旦提... C

在SQL中,下列涉及空值的操作,错误的是... C

DB技术中的“脏数据”是指 A、未回退的... D

视图 vwCust 的基表是Custom... C

一个大学有许多学科,学生在完成相应学科的... B


数据库题库(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016-2017年新北师大版数学四年级上册上学期第六单元方向与位置

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: