辽东学院自编教材

更新时间:2024-04-22 08:56:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

辽东学院自编教材

网络数据库技术 实验指导书

鲁 琴 编

(信息管理与信息系统专业用)

信息技术学院 2013年12月

目 录

实验1 认识MySQL ...........................................................................2 实验2 数据定义 ..................................................................................4 实验3 表数据插入、修改和删除 ......................................................8 实验4 数据查询 ................................................................................13 实验5 视图 ........................................................................................23 实验6 索引和数据完整性 ................................................................28 实验7 MySQL语言结构 .................................................................36 实验8 过程式数据库对象的使用 ....................................................42 实验9 备份与恢复 ............................................................................46 实验10 数据库的安全性 .................................................................49 实验11 Oracle数据库管理 .............................................................52 实验12 Oracle数据库开发 .............................................................53

1

实验1 认识MySQL

实验类型: 验证型 实验课时: 2 指导教师: 时 间:20 年 月 日 课 次:第 节 教学周次:第 周 实验分室: 实验台号: 实 验 员:

实验目的:

1.掌握MySQL服务器的安装与配置方法 2.掌握MySQL命令行客户端的使用 3.了解MySQL图形界面工具的基本情况

实验要求:

掌握数据库的基本概念、方法和原理。

实验内容:

1.MySQL服务器的下载、安装和配置 2.MySQL命令行客户端的使用 3.认识MySQL Workbench。

实验步骤:

1.MySQL服务器的下载、安装和配置

(1)登录MySQL官方网站下载专区(http://dev.mysql.com/downloads/)。 (2)下载MySQL Installer for Windows。 (3)安装 (4)配置

2. MySQL命令行客户端的使用

(1)MySQL服务启动后,运行cmd命令,打开命令行模式。 在命令行方式下,练习下面的命令。 (2)连接MySQL服务器

运行命令“Mysql -u root -p”,按提示输入root用户密码,就以root身份登录到MySQL服务器。 (3)查看mysql帮助菜单

在mysql提示符后输入“help;”或“\\h”,屏幕即显示mysql帮助菜单,仔细阅读其中命令及说明。 (4)与数据库无关的简单查询 查询MySQL的版本号和当前日期

mysql> SELECT VERSION(), CURRENT_DATE;

简单计算

2

mysql> SELECT SIN(PI()/4), (4+1)*5;

(5)查看系统自带数据库

mysql>show databases;

(6) 断开MySQL服务器连接

可以在MySQL提示符下用命令QUIT (or \\q)断开连接。 3. 认识MySQL GUI工具—MySQL Workbench

思考题:

1.当前在MySQL官方网站上,能够下载到的MySQL Community Server的版本号是多少。

2. 查看mysql帮助菜单,找到中断当前mysql命令的命令,并试作。

3.实验中遇到的问题及解决方法。

3

实验2 数据定义

实验类型: 验证型 实验课时: 1 指导教师: 时 间:20 年 月 日 课 次:第 节 教学周次:第 周 实验分室: 实验台号: 实 验 员:

实验目的:

1.了解MySQL数据库的存储引擎的分类; 2.了解表的结构特点;

3.了解MySQL的基本数据类型; 4.了解空值概念;

5.学会命令行方式和界面方式进行数据定义

实验要求:

1.掌握数据库设计的基本方法,设计用于企业管理的员工管理数据库。

2.创建用于企业管理的员工管理数据库,确定数据库中有哪些表,以及所包含的各表的结构,还要了解MySQL的常用数据类型。 3.掌握数据定义相关SQL语句。

实验内容:

1. 设计用于企业管理的员工管理数据库 2. 用命令行方式创建数据库和表 3. 用界面方式创建数据库和表

实验步骤:

1. 设计用于企业管理的员工管理数据库

要建立企业管理系统,对员工的基本信息(包括员工编号,姓名,性别,出生日期,学历,参加工作时间,地址,电话号码),部门基本信息(部门号,部门名,备注),以及员工薪水信息(薪水编号,收入,支出,年月)进行管理,根据要求设计数据库。 (1)画出E-R图

4

2. 使用SQL语句向表中插入数据 (1) INSERT命令 向表中插入样本数据。

⑶ REPLACE命令

运行下面二条命令,将二者结果的不同总结一下,写入下面紫色底纹部分。

INSERT INTO employees (EmployeeID, Name, Education, Birthday, Sex, WorkYear, Address, PhoneNumber, DepartmentID) VALUES ('000001','李林','大专','1966-01-23','1', '1986-01-23','中山路32-1-508','83355668','2');

REPLACE INTO employees (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语句更新表数据

10

⑴ 将编号为?000001?的职工的收入改为2890

UPDATE salary SET Income=?2890? WHERE EmployeeID=?000001?;

⑵ 将所有职工的收入增加100

UPDATE salary SET Income=Income+100;

4. 使用SQL语句删除表数据

⑴ 删除表Employee中编号为?011112?的职工的信息。 DELETE FROM Employees WHERE EmployeeID=?011112?;

⑵ 删除所有收入大于2500的职工信息

DELETE Employees FROM Employees ,Salary WHERE Income>2500 AND Employees.EmployeeID=Salary.EmployeeID; ⑶ 使用TRUNCATE TABLE语句删除表中所有行

11

TRUNCATE TABLE Salary,Employee,Departments;

5. 使用界面工具向表中插入数据 6. 使用界面工具修改表中数据

思考题:

1.比较SQL语句和界面工具在实现数据插入、更改和删除时,哪种方法更强大?为什么?

2.实验中遇到的问题及解决方法。

12

实验4 数据查询

实验类型: 设计型 实验课时: 3 指导教师: 时 间:20 年 月 日 课 次:第 节 教学周次:第 周 实验分室: 实验台号: 实 验 员:

实验目的:

掌握数据查询SQL命令

实验要求:

掌握数据查询SELECT语句的语法格式

实验内容:

1.SELECT语句的基本使用 2.子查询的使用 3.连接查询的使用

4.GROUP BY、ORDER BY和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 * from Departments;

13

(2) 查询每个雇员的地址和电话

Select Address,PhoneNumber from Employees;

(3) 查询每个雇员的学历,消除重复行。 Select distinct Education from Employees;

(8)查询1970年以后出生的员工姓名和地址。

Select Name, Address from Employees where Birthday>1969-12-31;

14

(5)查询女员工的地址和电话,并使用AS子句将结果中各列的标题分别指定为地址、电话。 Select Address, PhoneNumber as ?地址?,?电话? from Employees where Sex=0;

(6)查询员工2012年12月的薪水号和收入水平,收入为2000元以下显示为低收入,2000-3000元显示为中等收入,3000元以上显示为高收入。

Select SalaryID ,Income, case

When Income<2000 then ‘低收入’

When Income >=2000 and Income <3000 then ‘中等收入’ else ‘高收入’

End as 收入水平 from Salary Where Time=’2012-12’;

(7)查询每个员工当前月的实际收入。

15

Select income-outcome from salary;

(8)查询每个员工的年龄。

Select year (current_date)-year(birthday) as 年龄 from employees;

(9)找出其地址中不含有“中山”两字的员工的号码、部门号和地址。

Select PhoneNumber,DepartmentID,Address from Employees where Address not like ’%中山%’;

(10)找出员工号码中倒数第二个数字为0的员工的姓名、地址和学历。

16

Select name,address,education from employees where employeeid like '%0_';

(11)查询所有2012年12月收入在2000到3000之间的员工号码。

Select employeeid from salary where time='2012-12' and income between 2000 and 3000;

(12) 查询所有工作时间不在15到20年之间的所有员工的员工号,员工名和工作时间。

Select employeeid,name, year(current_date)-year(workyear) from employees where year(current_date)-year(workyear) not between 15 and 20;

17

2. 子查询的使用

(1)查询在财务部工作的雇员的情况。

Select * from Employees where DepartmentID in (select DepartmentID from Departments where Departmentname=’财务部’);

(2)查询与李丽在同一个部门工作的所有员工的编号和姓名。

Select EmployeeID,name from employees where DepartmentID in (select DepartmentID from employees where name=’李丽’);

(3)查询与朱俊是同样学历的的所有员工的编号、姓名和出生日期。

Select employeeID,name,Birthday from employees where education in (select education from employees where name=’朱俊’);

18

3.连接查询的使用

(1)用全连接方法查询在财务部工作的雇员的情况。

Select 部’;

employees.* from departments,employees where

departments.departmentid=employees.departmentid and departmentname=’财务

(2)用全连接方法查询与李丽在同一个部门工作的所有员工的编号和姓名。

Select E.employeeID,E.name from Employees as E,Employees as S where E.departmentID=S.departmentID and S.name=’李丽’;

(3)用全连接方法查询与朱俊是同样学历的所有员工的编号、姓名和出生日期。

Select E.employeeID,E.name,E.Birthday from Employees as E,Employees as S where E.Education=S.Education and S.name =’朱俊’;

19

(4)用内连接方法查询不在财务部工作的所有员工信息。

Select

部’;

employees.* from employees join departments on

employees.departmentid=departments.departmentid where departmentname=’财务

4.GROUP BY, ORDER BY, LIMIT子句的使用 (1)查询男员工和女员工的人数。

Select sex as ‘性别’,count(*) as ‘人数’ from Employees group by sex;

(2)按部门列出该部门的员工人数。

Select DepartmentID as ‘部门号’,count(*) as ‘员工人数’ from Employees group by DepartmentID;

20

(3)查询员工数超过2人的部门名称和员工数量。

Select DepartmentName as ‘部门名称’,count(*) as ‘员工数量’ from Departments,Employees group by DepartmentName having count(*)>2;

(4)将Salary 表中按员工当月收入降序排列。 Select * from Salary order by Income desc;

(5)查询Employees表中前5位员工信息。

Select * from Employees limit 5;

21

思考题:

实验中遇到的问题及解决方法。

22

实验5 视图

实验类型: 验证型 实验课时: 1 指导教师: 时 间:20 年 月 日 课 次:第 节 教学周次:第 周 实验分室: 实验台号: 实 验 员:

实验目的:

1.掌握视图的概念和作用 2.掌握视图的创建方法 3.掌握如何查询和修改视图

实验要求:

了解视图的概念及相关操作

实验内容:

1. 创建视图 2. 查询视图 3. 更新视图 4. 删除视图

5. 在界面工具中操作视图

实验步骤:

说明:按实验步骤对数据库YGGL中的三个表进行数据查询,三个表结构如下(具体参看实验2):

Departments (DepartmentID,DepartmentName,Note) Employees

(EmployeeID,Name,Sex,Birthday,Education,WorkYear,Address,PhoneNumber,DepartmentID)

Salary(SalaryID,InCome,OutCome,Time, EmployeeI) 要求:填上正确答案。

23

1. 创建视图

(1)创建YGGL数据库上的视图DS_VIEW,视图包含Departments表的全部列。 Create or replace view DS_VIEW as select * from Departments;

(2)创建YGGL数据库上的视图ES_VIEW,视图包含员工号码、姓名和当年总实际收入。 Create

or

replace

ES_VIEW

(EmployeeID,Name,RealIncome)

as

select

Employees.EmployeeID,Name,sum(Income)-sum(Outcome) from Employees,Salary where Employees.EmployeeID=Salary.EmployeeID;

(3) 创建视图,包含员工号码、姓名、所在部门和实际收入这几列。

Create view MY_VIEW (员工号码,姓名,所在部门,实际收入) as select Employees.EmployeeID,Name,DepartmentName,Income-Outcome

from

Departments,Employees,Salary where Departments.DepartmentID=Employees.DepartmentID

24

and Employees.EmployeeID=Salary.EmployeeID;

2. 查询视图

(1)从视图DS_VIEW中查询出部门号为3的部门名称。

select DepartmentName from DS_VIEW where DepartmentID=’3’;

(2)从视图ES_VIEW中查询出姓名为“王林”的员工的实际收入。 Select RealIncome from ES_VIEW where Name=’王林’;

25

3. 更新视图

在更新视图前需要了解可更新视图的概念,了解什么视图是不可以进行修改的。 更新视图真正更新的是与视图关联的表。

(1)向视图DS_VIEW中插入一行数据:6,广告部,广告业务。 Insert into DS_VIEW values(‘6’,’财务部’,’财务管理’);

执行完该命令后,使用SELECT语句分别查看视图DS_VIEW和基本表Departments中发生的变化。(用语言描述)

视图DS_VIEW和基本表Departments里都增加了一条记录。‘6’,’财务部’,’财务管理’ 尝试向视图ES_VIEW中插入一行数据,看看会发生什么情况。(用语言描述)

(2) 修改视图DS_VIEW,将部门号为5的部门的部门名称修改为“生产车间”。 Update DS_VIEW set DepartmentName=’生产车间’ where DepartmentID=’5’;

执行完该命令后,使用SELECT语句分别查看视图DS_VIEW和基本表Departments中发生的变化。(用语言描述)

视图DS_VIEW和基本表Departments中相应的值都改变了。“市场部”变为“生产车间”

(3) 删除视图DS_VIEW中部门号为“1”的数据。 Delete from DS_VIEW where DepartmentID=’1’; 4. 删除视图 删除视图DS_VIEW。 Dorp view DS_VIEW; 5. 在界面工具中操作视图 (1)创建视图。

26

(2)编辑视图。 (3)删除视图。

思考题:

1.视图ES_VIEW中无法插入和删除数据,其中的RealIncome列值也无法修改,为什么?

2.总结视图和基本表的区别。

3.实验中遇到的问题及解决方法。 27

实验6 索引和数据完整性

实验类型: 验证型 实验课时: 2 指导教师: 时 间:20 年 月 日 课 次:第 节 教学周次:第 周 实验分室: 实验台号: 实 验 员:

实验目的:

1.掌握索引的使用方法 2.掌握数据完整性的实现方法。

实验要求:

了解索引和数据完整性的相关知识。

实验内容:

1. 创建索引 2. 删除索引 3. 数据完整性

实验步骤:

说明:按实验步骤对数据库YGGL中的三个表进行操作,三个表结构如下(具体参看实验2): Departments (DepartmentID,DepartmentName,Note) Employees

(EmployeeID,Name,Sex,Birthday,Education,WorkYear,Address,PhoneNumber,DepartmentID)

Salary(SalaryID,InCome,OutCome,Time, EmployeeID) 要求:将实验步骤填上正确答案。

1. 创建索引

a) 使用CREATE INDEX语句创建索引

(1)对YGGL数据库上的Employees表中的DepartmentID列建立索引。

USE YGGL;

CREATE INDEX depart_ind ON Employees(DepartmentID);

28

(2)在Employees表的Name列和Address列上建立复合索引。 CREATE INDEX Ad_ind ON Employees(Name,Address);

(3)在Departments表的DepartmentName列建立唯一性索引。

CREATE UNIQUE INDEX Dep_ind ON Departments (DepartmentName);

29

(4)使用SHOW INDEX语句查看Employees表的索引。 SHOW INDEX FROM Employees;

30

b) 使用ALTER TABLE语句向表中添加索引

(1)向Employees表中的出生日期列添加一个唯一性索引,姓名列和性别列添加一个复合索引。

ALTER TABLE Employees ADD UNIQUE INDEX date_ind(Birthday), ADD INDEX na_ind(Name,Sex);

(2)删除表Departments的主键。

(3)将表Departments的DepartmentID列设为主键。

31

c) 在创建表(CREATE TABLE)时创建索引

创建与表Departments表相同结构的表Departments1,将DepartmentName列设为主键, DepartmentID列上建立一个索引

CREATE TABLE Departments1 ( DepartmentID char(3), DepartmentName varchar(20), Note text, PRIMARY KEY (DepartmentName), INDEX DID_ind(DepartmentID) );

d) 界面方式创建索引

2. 删除索引

32

(1)使用DROP INDEX语句删除表Employees上的索引depart_ind,。

DROP INDEX depart_ind ON Employees;

(2)使用ALTER TABLE删除表Departments的主键和索引Dep_ind。 ALTER TABLE Departments DROP PRIMARY KEY, DROP INDEX Dep_ind;

3. 数据完整性

33

(1)创建一个表Employees3,只含EmployeeID,Name,Sex和Education列。将Name设为主键,EmployeeID为替代键

CREATE TABLE Employees3( EmployeeID char(6) NOT NULL, Name varchar(10) PRIMARY KEY, Sex char(1), Education char(4), UNIQUE(EmployeeID) );

(2) 创建一个表Salary1,要求所有Salary1表上出现的EmployeeID都要出现在Salary表中,利用完整性约束实现,要求当删除或修改Salary表上的EmployeeID列时,Salary1表中的EmployeeID值也会随之变化。

CREATE TABLE Salary1 ( EmployeeID char(6) NOT NULL PRIMARY KEY, InCome Float NOT NULL,

OutCome Float NOT NULL, FOREIGN KEY (EmployeeID) REFERENCES Salary(EmployeeID) ON UPDATE CASCADE ON DELETE CASCADE );

34

(3) 将表Salary中的数据插入到表Salary1中。

Insert into salary1 select * from salary;

(4) 删除或更新表Salary中的数据时,观察表Salary1中的数据有何变化(用语言表述)?

(5)创建一个表Employees4,只考虑号码和性别列,性别只能包含男或女。 CREATE TABLE Employees4 (

号码char(6) NOT NULL, 性别char(1) NOT NULL CHECK(性别IN('男', '女')) );

思考题:

1.添加主键和添加普通索引有什么区别?

2.实验中遇到的问题及解决方法。

35

实验7 MySQL语言结构

实验类型: 验证型 实验课时: 2 指导教师: 时 间:20 年 月 日 课 次:第 节 教学周次:第 周 实验分室: 实验台号: 实 验 员:

实验目的:

1.掌握常量的分类及使用 2.掌握变量的分类及使用 3.掌握各种运算符和表达式 4.掌握系统函数的使用

实验要求:

了解MySQL支持的各种数据类型 了解MySQL各种运算符的功能及使用方法 了解MySQL系统内置函数的作用

实验内容:

1. 常量的使用 2. 变量的使用 3. 运算符的使用 4. 系统函数的使用

实验步骤:

说明:按实验步骤对数据库YGGL中的三个表进行操作,三个表结构如下(具体参看实验2): Departments (DepartmentID,DepartmentName,Note) Employees

(EmployeeID,Name,Sex,Birthday,Education,WorkYear,Address,PhoneNumber,DepartmentID)

Salary(SalaryID,InCome,OutCome,Time, EmployeeID) 要求:将实验步骤中紫色底纹部分填上正确答案。

1. 常量的使用

(1) 计算194和142的乘积

Selcet 194*142;

36

(2) 获取以下这串字母的值:'I\\nlove\\nMySQL' Select 'I\\nlove\\nMySQL';

2.系统变量的使用

(1) 获取现在的MySQL版本号 Select @@version;

(2) 获取当前的系统时间 Select CURRENT_TIME;

37

(3) 获取当前的系统日期 Select CURRENT_DATE;

2. 用户变量的使用

(1) 参照YGGL数据库,创建一个名为female的用户变量,并在SELECT语句中使用该局部变量查找表中所有女职工的编号,姓名。

Use yggl Set @female=0;

Select EmployeeID,Name from Employees where sex=@female;

(2) 定义一个变量,用于描述YGGL数据库中的Salary表中员工000001的实际收入,然后查询该变量。

38

Set @phone=(select sum(income)-sum(outcome) as 实际收入 from Salary where employeeID=’000001’);

Select * from Salary where income-outcome=@phone;

3. 运算符的使用

(1) 使用算术运算符“-”查询员工的实际收入。

select EmployeeID,sum(income)-sum(outcome) as 实际收入 from Salary group by EmployeeID;

(2) 使用逻辑运算符“AND”查看以下语句的结果。

SELECT (7>6) AND ('A'='B');

对上面语句的执行结果进行分析。

4. 系统函数的使用

(1) 将数1.32656四舍五入取整,将1.32656保留小数点后2位小数。

Select round(1.32656);

39

Select truncate(1.32656,2);

(2) 求财务部雇员总人数。

SELECT count(EmployeeID) as 财务部人数 from Employees where DepartmentID=(select DepartmentID from Departments where DepartmentName=’财务部’);

(3) 返回Employees表中员工号最左端四个字符。 Select LEFT (EmployeeID,4) from Employees;

40

(4) 获得当前的日期和时间。 Select CURTIME(),CURDATE();

(5) 查询YGGL数据库中员工号为000001的员工出生的年份。 Select YEAR(Birthday) from Employees where EmployeeID=?000001?;

(6) 计算Employees表中每个员工的年龄。

Select 工号,姓名,YEAR(NEW())-YEAR(出生日期) as 年龄 from Employees;

思考题:

实验中遇到的问题及解决方法。

41

实验8 过程式数据库对象的使用

实验类型: 验证型 实验课时: 4 指导教师: 时 间:20 年 月 日 课 次:第 节 教学周次:第 周 实验分室: 实验台号: 实 验 员:

实验目的:

1. 掌握存储过程的创建和调用方法 2. 掌握MySQL的流程控制语句 3. 掌握MySQL游标的使用 4.掌握存储函数的创建和调用方法 5.掌握触发器的创建和使用 6.掌握事件的创建和使用

实验要求:

掌握存储过程、存储函数、触发器和事件的相关知识

实验内容:

1. 存储过程 2. 存储函数 3. 触发器

实验步骤:

说明:按实验步骤对数据库YGGL中的三个表进行操作,三个表结构如下(具体参看实验2): Departments (DepartmentID,DepartmentName,Note) Employees

(EmployeeID,Name,Sex,Birthday,Education,WorkYear,Address,PhoneNumber,DepartmentID)

Salary(SalaryID,InCome,OutCome,Time, EmployeeID) 要求:将实验步骤中紫色底纹部分填上正确答案。 1. 存储过程

(1) 创建存储过程,要求当一个员工的工作年份大于6年时将其转到经理办公室工作。

42

调用该存储过程并查看结果。

(2) 创建存储过程,使用游标计算本科及以上学历的员工在总员工数中所占的比例。

调用该存储过程并查看结果。

2. 存储函数

(1)创建存储函数,判断员工是否在研发部工作,若是则返回其学历,若不是则返回字符串“NO”。

43

(2) 分别定义和调用存储函数和存储过程,完成功能:按指定学号,返回这个学生的总学分.

3.触发器

在yggl数据库中新建一个表:

奖惩(奖惩编号,奖惩时间,奖惩类型,奖惩备注,员工编号) 其中主键为奖惩编号,外键为员工编号,参照Employees(employeeID) 奖惩类型的值为“奖励”和“处罚”

.创建触发器,当插入【奖惩】时,相应的触发器触发,如果【奖惩类型】为奖励, 将salary表中当月收入加100,如果【奖惩类型】为处罚,将salary表中当月收入减100

44

思考题:

本次实验中遇到的问题及解决方法。 45

实验9 备份与恢复

实验类型: 验证型 实验课时: 2 指导教师: 时 间:20 年 月 日 课 次:第 节 教学周次:第 周 实验分室: 实验台号: 实 验 员:

实验目的:

1.掌握界面方式下数据库的备份和还原 2.掌握使用SQL语句进行数据库备份和恢复 3.掌握使用客户端程序进行数据库的备份和还原

实验要求:

理解数据库的备份和还原的重要性及基本方法

实验内容:

1.界面方式下进行数据库备份和还原 2.SQL语句进行数据库备份和还原 3.使用客户端程序进行数据库的备份和还原

实验步骤:

说明:按实验步骤对数据库YGGL中的三个表进行操作,三个表结构如下(具体参看实验2): Departments (DepartmentID,DepartmentName,Note) Employees

(EmployeeID,Name,Sex,Birthday,Education,WorkYear,Address,PhoneNumber,DepartmentID)

Salary(SalaryID,InCome,OutCome,Time, EmployeeID) 要求:将实验步骤中紫色底纹部分填上正确答案。 1. 界面方式下进行数据库备份和还原

(1)在MySQL Workbench中进行数据库YGGL的备份。 (2)在MySQL Workbench中进行数据库YGGL的恢复。 2.用SQL语句进行数据库备份和还原

使用SQL语句只能备份和恢复表的内容,如果表的结构损坏,则要先恢复表的结构才能恢复数据。

46

(1)备份。

备份YGGL数据库中的Employees表到D盘FILE文件夹下Employees.txt文件中:

执行完后,查看D盘FILE文件夹下是否有Employees.txt文件。

(2)恢复。

先删除Employees表中的几行数据,再使用LOAD DATA语句恢复Employees表。

执行完后使用SELECT语句查看Employees表的数据变化。

3.使用客户端工具进行数据库的备份和还原 (1)使用mysqldump备份表和数据库

使用mysqldump命令备份数据库YGGL的Salary表:

查看D盘FILE文件夹下是否有名为Salary.sql的文件。 使用mysqldump命令备份整个YGGL数据库:

(2)使用mysql恢复数据库

为了方便查看效果,先删除YGGL数据库中的Employees表, 然后使用mysql命令恢复数据库YGGL:

查看数据库YGGL的内容是否恢复。

(3)使用mysqlimport恢复表数据。

Mysqlimport的功能和LOAD DATA INFILE语句是一样的,假设原来的Salary表的内容已经备份成Salary.txt文件,如果Salary表中的数据发生了变动,则可用下面的命令恢复。

47

mysqlimport -uroot -psa --low-priority --replace YGGL D:/FILE/Salary.txt 思考题:

1.

使用客房端程序mysqldump的--tab=选项将数据库YGGL中的所有表的表结构和

表数据分开备份。使用mysql程序来恢复表Salary的结构,使用mysqlimport恢复表的数据。

2.本次实验中遇到的问题及解决方法。 48

实验10 数据库的安全性

实验类型: 验证型 实验课时: 2 指导教师: 时 间:20 年 月 日 课 次:第 节 教学周次:第 周 实验分室: 实验台号: 实 验 员:

实验目的:

1.掌握数据库用户帐号的建立与管理 2.掌握数据库用户权限的管理

实验要求:

1.理解数据库安全的重要性 2.了解MySQL的安全机制

实验内容:

1.数据库用户帐号的建立与管理 2.用户权限的管理

实验步骤:

说明:按实验步骤对数据库YGGL中的三个表进行操作,三个表结构如下(具体参看实验2): Departments (DepartmentID,DepartmentName,Note) Employees

(EmployeeID,Name,Sex,Birthday,Education,WorkYear,Address,PhoneNumber,DepartmentID)

Salary(SalaryID,InCome,OutCome,Time, EmployeeID) 要求:将实验步骤中紫色底纹部分填上正确答案。 1. 数据库用户帐号的建立与管理

(1)创建数据库用户user_1和user_2,密码都为1234(服务器为本机服务器,名为localhost)。 在命令行客户端,以root身份登录MySQL服务器后运行下面的SQL语句。

49

本文来源:https://www.bwwdw.com/article/aiwp.html

Top