网络数据库技术课程实验指导.docx
《网络数据库技术课程实验指导.docx》由会员分享,可在线阅读,更多相关《网络数据库技术课程实验指导.docx(32页珍藏版)》请在冰豆网上搜索。
网络数据库技术课程实验指导
辽东学院自编教材
网络数据库技术
实验指导书
鲁琴编
(信息管理与信息系统专业用)
信息技术学院
2013年12月
目录
实验1认识MySQL2
实验2数据定义4
实验3表数据插入、修改和删除8
实验4数据查询12
实验5视图16
实验6索引和数据完整性19
实验7MySQL语言结构23
实验8过程式数据库对象的使用26
实验9备份与恢复30
实验10数据库的安全性33
实验11Oracle数据库管理36
实验12Oracle数据库开发37
实验1认识MySQL
实验类型:
验证型实验课时:
2指导教师:
时间:
20年月日课次:
第节教学周次:
第周
实验分室:
实验台号:
实验员:
实验目的:
1.掌握MySQL服务器的安装与配置方法
2.掌握MySQL命令行客户端的使用
3.了解MySQL图形界面工具的基本情况
实验要求:
掌握数据库的基本概念、方法和原理。
实验内容:
1.MySQL服务器的下载、安装和配置
2.MySQL命令行客户端的使用
3.认识MySQLWorkbench。
实验步骤:
1.MySQL服务器的下载、安装和配置
(1)登录MySQL官方网站下载专区(
(2)下载MySQLInstallerforWindows。
(3)安装
(4)配置
2.MySQL命令行客户端的使用
(1)MySQL服务启动后,运行cmd命令,打开命令行模式。
在命令行方式下,练习下面的命令。
(2)连接MySQL服务器
运行命令“Mysql-uroot-p”,按提示输入root用户密码,就以root身份登录到MySQL服务器。
(3)查看mysql帮助菜单
在mysql提示符后输入“help;”或“\h”,屏幕即显示mysql帮助菜单,仔细阅读其中命令及说明。
(4)与数据库无关的简单查询
查询MySQL的版本号和当前日期
mysql>SELECTVERSION(),CURRENT_DATE;
简单计算
mysql>SELECTSIN(PI()/4),(4+1)*5;
(5)查看系统自带数据库
mysql>showdatabases;
(6)断开MySQL服务器连接
可以在MySQL提示符下用命令QUIT(or\q)断开连接。
3.认识MySQLGUI工具—MySQLWorkbench
思考题:
1.当前在MySQL官方网站上,能够下载到的MySQLCommunityServer的版本号是多少。
2.查看mysql帮助菜单,找到中断当前mysql命令的命令,并试作。
3.实验中遇到的问题及解决方法。
实验2数据定义
实验类型:
验证型实验课时:
1指导教师:
时间:
20年月日课次:
第节教学周次:
第周
实验分室:
实验台号:
实验员:
实验目的:
1.了解MySQL数据库的存储引擎的分类;
2.了解表的结构特点;
3.了解MySQL的基本数据类型;
4.了解空值概念;
5.学会命令行方式和界面方式进行数据定义
实验要求:
1.掌握数据库设计的基本方法,设计用于企业管理的员工管理数据库。
2.创建用于企业管理的员工管理数据库,确定数据库中有哪些表,以及所包含的各表的结构,还要了解MySQL的常用数据类型。
3.掌握数据定义相关SQL语句。
实验内容:
1.设计用于企业管理的员工管理数据库
2.用命令行方式创建数据库和表
3.用界面方式创建数据库和表
实验步骤:
1.设计用于企业管理的员工管理数据库
要建立企业管理系统,对员工的基本信息(包括员工编号,姓名,性别,出生日期,学历,参加工作时间,地址,电话号码),部门基本信息(部门号,部门名,备注),以及员工薪水信息(薪水编号,收入,支出,年月)进行管理,根据要求设计数据库。
(1)画出E-R图
(2)将E-R图转换为关系模式
员工(员工编号,姓名,性别,出生日期,学历,参加工作时间,地址,电话号码,部门号)
部门(部门号,部门名,备注)
员工薪水(薪水编号,收入,支出,年月,员工编号)
(3)确定各数据表的结构
要求:
将下面三个表中带底纹的空的单元格填上对应的值。
员工信息表:
Employees
列名
数据类型
长度
是否允许为空
说明
EmployeeID
char
6
No
员工编号,主键
Name
varchar
10
No
姓名
Sex
char
1
No
性别
Birthday
date
No
出生日期
Education
char
4
No
学历
WorkYear
date
Yes
参加工作时间
Address
varchar
20
Yes
地址
PhoneNumber
char
12
Yes
电话号码
部门信息表:
Departments
列名
数据类型
长度
是否允许为空
说明
DepartmentID
char
3
No
部门编号,主键
DepartmentName
varchar
20
No
部门名
Note
text
Yes
备注
员工薪水情况表:
Salary
列名
数据类型
长度
是否允许为空
说明
SalaryID
char
12
No
薪水编号,主键
InCome
float
No
收入
OutCome
float
No
支出
Time
char
7
No
薪水年月
2.使用SQL命令创建数据库和表
⑴使用SQL命令创建用于企业管理的员工管理数据库YGGL
打开MySQL命令行客户端,输入管理员密码登录,使用CREATE语句创建YGGL数据库。
CreatedatabaseYGGL;
⑵使用命令行方式创建数据库YGGL中各表
首先将YGGL数据库变成当前活动的数据库
UseYGGL;
1创建部门信息表Departments
CreatetableDepartments(
DepartmentIDchar(3)notnull,
DepartmentNamevarchar(20)notnull,
Notetext,
Primarykey(DepartmentID)
);
2创建员工信息表Employees
CreatetableEmployees(
EmployeeIDchar(6)notnull,
Namechar(10)notnull,
Educationchar(4)notnull,
Birthdaydatenotnull,
Sexchar
(2)notnulldefault1,
WorkYeartinyint
(1),
Addressvarchar(20),
PhoneNumberchar(12),
DepartmentIDchar(3)notnull,
Primarykey(EmployeeID),
Foreignkey(DepartmentID)referencesDepartments(DepartmentID)
);
3建员工薪水情况表Salary
CreatetableSalary(
SalaryIDchar(12)notnull,
InComefloatnotnull,
OutComefloatnotnull,
Timechar(7)notnull,
EmployeeIDchar(6)notnull,
Primarykey(SalaryID),
Foreignkey(EmployeeID)referencesEmployees(EmployeeID)
);
4建一个结构与Employees表结构相同的空表Employees1;
CreatetableEmployees1(
EmployeeIDchar(6)notnull,
Namechar(10)nutnull,
Educationchar(4)notnull,
Birthdaydatenotnull,
Sexchar
(2)notnulldefault’1’,
WorkYeartinyint
(1),
Addressvarchar(20),
PhoneNumberchar(12),
DepartmentIDchar(3)notnull,
Primarykey(EmployeeID)
Primarykey(DepartmentID)
);
⑶使用命令删除数据库和表
删除表Employees1;
DroptableEmployees1;
删除数据库YGGL;
DropdatabaseYGGL;
3.使用界面工具创建数据库YGGL和其中的表。
⑴创建数据库YGGL
⑵创建数据库YGGL中的表
⑶删除数据库YGGL中的表
⑷删除数据库YGGL
思考题:
1.当创建数据库YGGL时,其中的数据存储在磁盘上什么位置?
当创建了三个数据表(Employees,Departments和Salary)时,其对应的数据文件的名字分别是什么?
2.什么是表的存储引擎?
在MySQL5.5.5.以前版本,默认的存储引擎是MyISAM。
在MySQL5.5.5以后,默认的存储引擎是什么?
3.实验中遇到的问题及解决方法。
实验3表数据插入、修改和删除
实验类型:
验证型实验课时:
1指导教师:
时间:
20年月日课次:
第节教学周次:
第周
实验分室:
实验台号:
实验员:
实验目的:
学会命令行方式和界面方式进行数据更新,包括数据插入、修改和删除。
实验要求:
掌握数据更新相关SQL语句,包括数据插入、修改和删除。
实验内容:
1.命令行方式数据插入、修改和删除。
2.界面方式进行数据操纵,包括数据插入、修改和删除。
实验准备:
在实验2中,用于实验的YGGL数据库中的3个表已经建立,现在要将各表的样本数据添加到各表中。
样本数据如表1,2,3所示。
表1Employees表数据样本
编号
姓名
性别
出生日期
学历
参加工作
时间
住址
电话
部门号
000001
王林
1
1966-01-23
大专
1989-07-23
中山路32-1-508
83355668
2
010008
伍容华
1
1976-03-28
本科
1998-09-20
北京东路100-2
83321321
1
020010
王向容
1
1982-12-09
硕士
2004-12-05
四牌楼10-0-108
83792361
1
020018
李丽
0
1960-07-30
大专
1984-08-09
中山东路102-2
83413301
1
102201
刘明
1
1972-10-18
本科
1995-10-08
虎距路100-2
83606608
5
102208
朱俊
1
1965-09-28
硕士
1992-06-28
牌楼巷5-3-106
84708817
5
108991
钟敏
0
1979-08-10
硕士
2005-08-10
中山路10-3-105
83346722
3
111006
张石兵
1
1974-10-01
本科
1996-09-01
解放路34-1-203
84563418
5
210678
林涛
1
1977-04-02
大专
1977-04-02
中山北路24-35
83467336
3
302566
李玉珉
1
1968-09-20
本科
1968-09-20
热和路209-3
58765991
4
308759
叶凡
1
1978-11-18
本科
1978-11-18
北京西路3-7-52
83308901
4
504209
陈林琳
0
1969-09-03
大专
1969-09-03
汉中路120-4-12
84468158
4
表2Departments表数据样本
部门号
部门名称
备注
部门号
部门名称
备注
1
财务部
Null
4
研发部
Null
2
人力资源部
Null
5
市场部
Null
3
经理办公室
Null
表3Salary表数据样本
编号
收入
支出
年月
员工编号
201212000001
2100.8
123.09
2012-12
000001
201212010008
1582.62
88.03
2012-12
010008
201212020010
2860
198
2012-12
020010
201212020018
2347.68
180
2012-12
020018
201212102201
2569.88
185.65
2012-12
102201
201212102208
1980
100
2012-12
102208
201212108991
3259.98
281.52
2012-12
108991
201212111006
1987.01
79.58
2012-12
111006
201212210678
2240
121
2012-12
210678
201212302566
2980.7
210.2
2012-12
302566
201212308759
2531.98
199.08
2012-12
308759
201212504209
2066.15
108
2012-12
504209
201211000001
2100.8
120.09
2012-11
000001
201211010008
1582.62
80.03
2012-11
010008
201211020010
2860
200
2012-11
020010
201211020018
2347.68
190
2012-11
020018
201211102201
2569.88
188
2012-11
102201
201211102208
1980
100
2012-11
102208
201211108991
3259.98
280.52
2012-11
108991
201211111006
1987.01
88
2012-11
111006
201211210678
2240
129
2012-11
210678
201211302566
2980.7
22
2012-11
302566
201211308759
2531.98
199
2012-11
308759
201211504209
2066.15
110
2012-11
504209
实验步骤:
2.使用SQL语句向表中插入数据
(1)INSERT命令
向表中插入样本数据。
insertintodepartmentsvalues('1','财务部',null);
insertintodepartmentsvalues('2','人力资源部',null);
insertintodepartmentsvalues('3','经理办公室',null);
insertintodepartmentsvalues('4','研发部',null);
insertintodepartmentsvalues('5','市场部',null);
insertintoemployeesvalues('000001','王林','大专','1966-01-23','1',8,'中山路32-1-508','83355668','2');
insertintosalaryvalues('000001',2100.8,123.09,'2012-12','2');
⑶REPLACE命令
运行下面二条命令,将二者结果的不同总结一下,写入下面紫色底纹部分。
INSERTINTOemployees(EmployeeID,Name,Education,Birthday,Sex,WorkYear,Address,PhoneNumber,DepartmentID)VALUES
('000001','李林','大专','1966-01-23','1','1986-01-23','中山路32-1-508','83355668','2');
REPLACEINTOemployees(EmployeeID,Name,Education,Birthday,Sex,WorkYear,Address,PhoneNumber,DepartmentID)VALUES
('000001','李林','大专','1966-01-23','1','1986-01-23','中山路32-1-508','83355668','2');
3.使用SQL语句更新表数据
1将编号为’011112’的职工的收入改为2890
Updatesalarysetincome=2890whereEmployeeID=’011112;’
2将所有职工的收入增加100
Updatesalarysetincome=income+100;
4.使用SQL语句删除表数据
1删除表Employee中编号为’011112’的职工的信息。
DeletefromemployeeswhereEmployeeID=’011112’;
2删除所有收入大于2500的职工信息
DeletefromemployeeswhereEmployeeIDin(selectEmployeeIDfromsalarywhereincome>2500);
3使用TRUNCATETABLE语句删除表中所有行
Truncatetablesalary;
5.使用界面工具向表中插入数据
6.使用界面工具修改表中数据
思考题:
1.比较SQL语句和界面工具在实现数据插入、更改和删除时,哪种方法更强大?
为什么?
2.实验中遇到的问题及解决方法。
实验4数据查询
实验类型:
设计型实验课时:
3指导教师:
时间:
20年月日课次:
第节教学周次:
第周
实验分室:
实验台号:
实验员:
实验目的:
掌握数据查询SQL命令
实验要求:
掌握数据查询SELECT语句的语法格式
实验内容:
1.SELECT语句的基本使用
2.子查询的使用
3.连接查询的使用
4.GROUPBY、ORDERBY和LIMIT子句的使用
实验步骤:
说明:
按实验步骤对数据库YGGL中的三个表进行数据查询,三个表结构如下(具体参看实验2):
Departments(DepartmentID,DepartmentName,Note)
Employees(EmployeeID,Name,Sex,Birthday,Education,WorkYear,Address,PhoneNumber,DepartmentID)
Salary(SalaryID,InCome,OutCome,Time,EmployeeID)
要求:
填上正确SQL语句。
1.SELECT语句的基本使用
(1)查询每个部门的所有数据
select*fromemployees;
(2)查询每个雇员的地址和电话
selectName,Address,PhoneNumberfromemployees;
(3)查询每个雇员的学历,消除重复行。
selectdistinctName,Educationfromemployees;
(8)查询1970年以后出生的员工姓名和地址。
selectName,Addressfromemployeeswhereyear(birthday)>1970;
(5)查询女员工的地址和电话,并使用AS子句将结果中各列的标题分别指定为地址、电话。
selectAddressas地址,PhoneNumberas电话fromemployeeswheresex='0';
(6)查询员工2012年12月的薪水号和收入水平,收入为2000元以下显示为低收入,2000-3000元显示为中等收入,3000元以上显示为高收入。
selectSalaryID,case
when(InCome-OutCome)<'2000'then'低收入'
when(Income-OutCome)<'3000'then'中等收入'
when(InCome-OutCome)>='3000'then'高收入'
endas收入水平fromsalarywhereTime>'2012-11';
(7)查询每个员工当前月的实际收入。
selectEmployeeID,InCome-OutComeas实际收入fromsalarywhereTime>'2012-11';
(8)查询每个员工的年龄。
selectName,year(now())-year(birthday)as年龄fromemployees;
(9)找出其地址中不含有“中山”两字的员工的号码、部门号和地址。
selectEmployeeID,DepartmentID,AddressfromemployeeswhereAddressnotlike'中山%';
(10)找出员工号码中倒数第二个数字为0的员工的姓名、地址和学历。
selectName,Address,EducationfromemployeeswhereEmployeeIDlike'%0_';
(11)查询所有2012年11月收入在2000到3000之间的员工号码。
selectEmployeeIDfromsalarywhere(InCome-OutCome)between'2000'and'3000'andtime>'2012-11';
(12)查询所有工作时间不在3到6年之间的所有员工的员工号,员工名和工作时间。
selectEmployeeID,Name,WorkYearfromemployeeswhereWorkYearno