数据库复习题一

一、ER图和关系模式设计

1、设某汽车公司管辖若干汽车维修站有四个实体集。一是“维修站”实体集,属性有:维修站编号、维修站名称、维修站地址等;二是“职工”集,属性有:职工号、姓名、工资等;三是“顾客”实体集,属性有:顾客编号、顾客姓名、地址等;四是“配件”实体集,属性有:配件编号、配件名、规格等。
维修站与职工之间存在“拥有”联系,每个维修站有若干职工,但每个职工只能服务于一个维修站;
维修站与顾客之间存在“服务”联系,维修站可以为多个顾客提供维修服务,顾客可以到多个维修站维修汽车,到维修站维修有日期、维修人员;
顾客与配件之间存在“使用”联系,顾客维修过程中可以使用多个配件,该型号配件可供多个顾客使用,维修过程中有使用的配件数量、价格。
(1)请根据以上描述,绘制相应的 E-R 图,并直接在 E-R 图上注明实体名、属性、联系类型。
在这里插入图片描述
(2)将 E-R 图转换成关系模式,并说明主键和外键。
维修站(维修站编号,维修站名称,维修站地址)主键:维修站编号
职工(职工号,姓名,工资,维修站编号)主键:职工号 外键:维修站编号
顾客(顾客编号,顾客地址,姓名)主键:顾客编号
配件(配件编号,配件名,规格)主键:配件编号
服务(维修站编号,顾客编号,维修人员,维修日期)主键:维修站编号,顾客编号 外键:维修站编号,顾客编号
使用(配件编号,顾客编号,配件数量,价格)主键:配件编号,顾客编号 外键:配件编号,顾客编号

二、创建数据库和表

(1)使用Transact-SQL语句创建“STUDENT_DB”数据库,数据文件的逻辑名称为STUDENT_DB_data”,保存到D盘的DATA1文件夹中,文件名为“STUDENT_DB.mdf”,数据文件初始存储空间大小为10MB,最大存储空间为50MB,存储空间自动增长量为2MB;日志文件的逻辑名称为“STUDENT_DB_log”,保存位置与数据文件相同,文件名为“STUDENT_DB.ldf”,初始存储空间大小为8MB,最大存储空间为40MB,存储空间自动增长量为15%。
CREATE DATABASE STUDENT_DB
ON
(
NAME=STUDENT_DB_data,
FILENAME=’D:\DATA1\STUDENT_DB.mdf’,
SIZE=10,
MAXSIZE=50,
FILEGROWTH=2
)
LOG ON
(
NAME=STUDENT_DB_log,
FILENAME=’D:\DATA1\STUDENT_DB.ldf’,
SIZE=8,
MAXSIZE=40,
FILEGROWTH=15%
)
(2)已知有Teacher表结构如下,请使用Transact-SQL语句定义Teacher表。
在这里插入图片描述
create table Teacher
(
Tno char(10) primary key,
Tname varchar(25) not null,
Tsex char(2) default ‘男’ check(Tsex=’男’or Tsex=’女’),
Tsalary int not null check(Tsalary>=5000 and Tsalary<=8000),
Tprof varchar(10)
)
2、利用Transact-SQL语句对基本表进行数据增、删、改、查等操作。
设有教师-授课数据库TeacherCourse_DB,数据库中包含4个基本表,关系模式如下:
Department(Dno,Dname)
Teacher (Tno,Tname,Tsex, Tsalary, Tprof ,Dno)(注:Dno为外键)
Course(Cno,Cname,Cpno,Ccredit)
TC(Tno,Cno)(注:Tno,Cno分别为外键)
(1) 查询与“王珂”在同一个系的教师信息(要求:IN谓词不相关子查询)。
select *
from Teacher
where Dno in(select Dno from Teacher
where Tname=’王珂’
)
(2) 查询教授了“数据库”课程的教师编号、姓名和系号(要求:连接查询)。
select Teacher.Tno,Tname,Dno
from Teacher,Course,TC
where Cname=’数据库’ and Teacher.Tno=TC.Tno and TC.Cno=Course.Cno

(3) 删除TC表中教师号为1003的授课记录。(删除一个元组)。
delete from TC where Tno=’1003’
(4) 查询Teacher表姓名第2个汉字为“华”的教师信息。
select * from Teacher
where Tname like ‘_华%’
(5) 将Course表中课程名称”数据库”改为“数据结构”。
update Course
set Cname=’数据结构’
where Cname=’数据库’
(6) 将Teacher表中姓名为“张小飞”的工资改为6500 。
update Teacher
set Tsalary=6500
where Tname=’张小飞’
(7) 利用存储过程查找Teacher表中某教师的记录,存储过程名为Pro1。
create procedure Pro1
@tno char(20)
as
select * from Teacher
where Tno=@tno

exec Pro1 ‘1001’
(8) 向TC表中插入一条记录(‘1002’,‘C3’)。
insert into TC(Tno,Cno)
values(‘1002’,’C3’)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值