发货日期 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