数据库的多表操作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二数据库定义
课程名称:数据库原理实验类型:综合型
实验名称数据库定义学时2学时
实验目的:
(1)使学生掌握E_R图的设计方法,并能将E_R图转换成关系模式;
(2)熟悉SQL DDL和DML语言,能够完成基本的表结构的定义、修改;
(3)掌握数据库完整性约束定义
实验原理:
1.将E_R图转换为关系的方法:
⏹一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的
码
⏹一个1:1联系可以转换为一个独立的关系模式,也可以与任意对应的关系模式合并
⏹一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并
⏹一个m:n联系转换为一个关系模式
三个或三个以上实体间的一个多元联系可以转换为一个关
实验内容:
假设某公司的业务规则如下:
(1)公司下设几个部门,如技术部、财务部、市场部等。
(2)每个部门承担多个工程项目,每个工程项目属于一个部门。
(3)每个部门有多名职工,每一名职工只能属于一个部门。
(4)一个部门可能参与多个工程项目,且每个工程项目有多名职工参与施工,一个职工可以参与多个项目。根据职工在工程项目中完成的情况发放酬金。
(5)工程项目有工程号、工程名两个属性;部门有部门号、部门名称、办公电话和办公地点等属性;职工有职工号、姓名、性别属性,出生日期;
问题:
1.根据上述规则设计E-R模型;
2.将E-R模型转换成关系数据模型;
部门(部门号,部门名称,办公地点,办公电话)
项目(工程号,工程名,部门号)
员工(职工号,姓名,性别,出生年龄,部门号)
承担(项目号,职工号,工资)
3.利用SQL语句定义上述关系,要求:
(1)为每个关系定义主码和外码;
(2)职工姓名、部门名称不能取空值,并且部门名称是唯一的;
(3)职工的性别只能取“男”和“女”,默认值为“男”;
(4)部门号具有类似“B01”的形式,即每个部门号的首字符为“B”,其余两个字符为数字。
(5)酬金不低于2000元。
4.修改部门号的约束,改为“B001”的形式,每个部门号的首字符为“B”,其余三个字符为数字。
create database company;
create table a
(ano char(6) check(ano between'B001'and'B999') primary key,
aname varchar(8) not null,
age smallint,
aphone char(6),
aaddress char(10)
)
create table b
(bno char(6) primary key,
bname varchar(20),
ano char(6),
foreign key(ano)
references a on delete cascade
)
create table employees
(employeeID char(6) primary key,
employeename char(6) not null,
sex char(2) check(sex='男' or sex='女') default('男'),
brithday char(10),
ano char(6),
foreign key(ano)
references a on delete cascade
)
create table cheng
(employeeID char(6),
bno char(6),
salary int check(salary>=2000),
primary key(bno,employeeID),
foreign key(bno)
references b on delete cascade,
foreign key(employeeID)
references employees on delete no action
)
5.在原有关系的基础上,增加一个新列,用于记录每名职工参加项目的起始时间。
alter table cheng add start datetime
实验总结
通过本次试验使我掌握E_R图的设计方法,并能将E_R图转换成关系模式;熟悉SQL DDL和DML语言,能够完成基本的表结构的定义、修改;掌握数据库完整性约束定义
实验三数据更新
课程名称:数据库原理实验类型:综合型
实验名称数据更新学时2学时一.实验目的和要求:
掌握用SQL语句实现数据的插入、修改和删除。
二.实验内容:
建立一个商店的数据库store,记录顾客及其购物情况,由下面三个表组成:商品(商品号,商品名,单价,商品类别,供应商);
顾客(顾客号,姓名,住址);
购买(顾客号,商品号,购买数量);
三.试用SQL语言完成下列功能:
1.建表,在定义中要求声明:
(1)每个表的主外码;
(2)顾客的姓名和商品名不能为空值;
(3)单价必须大于0;
(4)购买数量必须在0到20之间;
2.往表中插入数据:
部门(M01,佳洁士,8.00,牙膏,宝洁;
M02,高露洁,6.50,牙膏,高露洁;
M03,洁诺,5.00,牙膏,联合利华;
M04,舒肤佳,3.00,香皂,宝洁;
M05,夏士莲,5.00,香皂,联合利华;
M06,雕牌,2.50,洗衣粉,纳爱斯
M07,中华,3.50,牙膏,联合利华;
M08,汰渍,3.00,洗衣粉,宝洁;
M09,碧浪,4.00,洗衣粉,宝洁;)