MySQL数据库技术》实验报告模板Word文档下载推荐.docx
《MySQL数据库技术》实验报告模板Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《MySQL数据库技术》实验报告模板Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。
在对某个数据库进行操作之前,必须先选中该数据库。
在MySql安装过程中,注意修改字符集为gb2312或gbk,以支持中文信息输入。
实验2创建数据库和表
目的和实验要求:
(1)了解MySQL数据库中的存储引擎分类
(2)了解表的结构特点
(3)了解MySQL的基本数据类型
(4)了解空值的概念
(5)学会在MySQL界面工具中创建数据库和表
(6)学会使用SQL语句创建数据库和表
1.实验题目
创建用于企业用于管理的员工管理数据库,数据库名为YGGL,包含员工的信息,部门信息,及员工的薪水信息。
数据库YGGL包含下列三个表:
(1)Employees:
员工信息表
(2)Departments:
部门信息表
(3)Salary:
员工薪水情况表
表实验2.1Employees表结构
列名
数据类型
长度
是否允许空值
说明
Employees
char
6
否
员工编号,主键
name
10
姓名
education
4
学历
birthday
date
16
出生日期
sex
2
性别
workyear
tinyint
1
是
工作时间
address
varchar
20
地址
phonenumber
12
电话
departmentID
3
员工部门号,外键
表实验2.2Departments表结构
部门编号,主键
departmentName
部门名
note
text
备注
表实验2.3Salary表结构
employmeeID
Income
float
8
收入
Outcome
支出
2.实验准备
首先要明确,能够创建数据库的用户必须是数据管理员,或是被授权使用CREATEDATEBASE语句的用户。
其次,确定数据库包含哪些表,以及所包含的个表的数据结构,还要了解MySQL的常用数据类型,以及创建数据库的表。
此外还要了解两种常用的创建数据、表的方法,即在界面管理工具中创建和使用CREATDATEBASE语句创建。
实验步骤:
1.使用命令行方式创建数据库YGGL。
(1)打开MySQLcommandlineclient,输入管理员密码登录,使用CREATE语句创建YGGL数据库。
(2)在YGGL数据库存在的情况下,使用CREATDATEBASE语句新建数据库YGGL,查看错误信息,再尝试加上IFNOTEXISTS关键词创建YGGL,看看有什么变化。
(3)使用命令方法创建数据库YGGL1,要求数据库字符集为utf8,校对规则为utf8_general_ci。
2.使用SQL语句在YGGL数据库中创建表employees
执行创建表Employees的Sql语句。
3使用SQL语句删除表和数据库
(1)删除表employmees。
(2)删除数据库YGGL。
(3)使用命令行将表Student中的Sdept列删除,并添加“入学时间”列,其数据类型为日期型
在不知道系统中是否存在要创建的数据库时,最好加上IFNOTEXISTS,来避免因已存在而致使无法成功创建的情况发生。
对于创建表及删除数据库、表时,类同。
实验3表数据插入、修改和删除(必)
(1)学会在界面管理工具中对数据库表进行插入、修改和删除数据操作
(2)学会用SQL语句对数据库进行插入、修改和删除数据操作
(3)了解数据更新操作时要注意数据完整性
(4)了解SQL语句对表数据操作的灵活控制功能
分别使用MySQLAdministator和SQL语句,向在实验2建立的数据库YGGL的表Employees、Departments和Salary中插入多行数据记录,然后修改和删除一些记录。
使用SQL进行有效的修改和删除。
首先,了解对表数据的插入、删除、修改都属于表数据的更新操作。
对表数据的操作可以在MySQLAdministator中进行,也可以由SQL语句实现。
其次,要掌握SQL中用于对表数据进行插入、修改、和删除的命令分别是INSERT、UPDATE和DELETE。
要特别注意在执行插入、删除和修改等数据更新操作时,必须保证数据完整性。
此外,还要了解使用SQL语言在对表数据进行插入、修改和删除时,比在MySQLAdministator中操作表数据更为灵活,功能更强大。
在实验2中,用于实验的YGGL数据库中的3个表已经建立,现在要将各表的样本数据添加到表中。
样本数据如表实验3.1、表实验3.2和表实验3.3所示。
表实验3.1Employees表数据样本
编号
住址
部门号
000001
王林
大专
1966-01-23
中山路32-1-508
010008
伍容华
本科
1976-03-28
北京东路100-2
020010
王向荣
硕士
1982-12-09
四牌路10-0-108
020018
李丽
1960-07-30
中山东路102-2
102201
刘明
1972-10-18
虎踞路100-2
5
102208
朱俊
1965-09-28
牌楼巷5-3-106
108991
钟敏
1979-08-10
中山路10-3-105
111006
张石兵
1974-10-01
解放路34-1-203
210678
林涛
1977-04-02
中山北路24-35
302566
李玉敏
1968-09-20
热河路209-3
308759
叶凡
1978-11-18
北京西路3-7-52
504209
陈林琳
1969-09-03
汉中路120-4-12
表实验3.2Departments表数据样本
部门名称
财务部
null
研发部
人力资源部
市场部
经理办公室
表实验3.3Salary表数据样本
2100.8
123.09
3259.98
281.52
1582.62
88.03
2860.0
298.0
2569.88
185.65
2347.68
180.0
1987.01
79.58
2531.98
199.08
2066.15
108.0
2240.0
121.0
2980.7
210.2
1980.0
100.0
1.使用SQL语句插入表数据
(1)向表Employees中插入记录:
('
000001'
'
王林'
大专'
1966-01-23'
1'
8,'
中山路32-1-508,'
'
2'
)。
(2)使用REPLACE语句向Departments表插入记录:
广告部'
负责推广产品'
),并查看是否已插入。
2.使用SQL语句修改表数据
(1)使用SQL命令修改表Salary,将编号为011112的职工收入改为2890。
(2)将所有职工收入增加100。
(3)使用SQL命令删除Employees中编号为011112的职工信息。
(4)删除所有收入大于2500的员工信息。
(5)使用TRANCATETABLE语句删除Salary表中有行。
(删除后请重新插入,以后要用)
注意分号为英文字符下的;
在要求查询结果的属性列名用中文表示时,AS可加可不加;
模糊查询时,还可用正则表达式;
实验4数据库的查询和视图
(1)掌握SELECT语句的基本用法
(2)掌握子查询的表示
(3)掌握连接查询的表示
(4)掌握SELECT语句的GEOUPBY子句的作用和使用方法
(5)掌握SELECT语句的ORDERBY子句的作用和使用方法
(6)熟悉视图的概念和作用
(7)掌握视图的创建方法
(8)掌握如何查询和修改视图
(1)了解SELECT语句的基本语法格式
(2)了解SELECT语句执行方法
(3)了解子查询的表示方法
(4)了解查询的表示方法
(5)了解SELECT语句的GROUPBY子句的作用和使用方法
(6)了解SELECT语句的ORDERBY子句的作用
(7)了解SELECT语句的LIMIT子句的作用
(8)了解视图的概念
(9)了解创建视图的方法
(10)了解对视图的操作
1.SELECT语句的基本使用
(1)用SELECT语句查询Departmrnts表的所有记录。
(2)用SELECT语句查询Salary表的所有记录。
(3)用SELECT语句查询Departments表的部门号和部门名称列。
(4)查询Employees表中部门号和性别,要求使用DISTINCT消除重复行。
(5)查询月收入高于2000的员工号码。
(6)查询所有1970以后出生的员工的姓名和住址。
(7)查询所有财务部门的员工号码和姓名。
(8)查询Empoyees表中男员工的姓名和出生日期,要求个列标题用中文表示。
(9)查询Employees员工的姓名住址和收入水平,2000以下的显示为低收入,2000`3000的显示为中等收入,3000以上的显示为高收入。
(10)计算Salary表中员工月收入的平均数。
(11)获得Employees表中的最大的员工号码。
(12)计算Salary表中所有员工的总支出。
(13)查询财务部官员的最高和最低实际收入。
(14)找出所有其地址含有“中山”的雇员的号码及部门号。
(15)查找员工号码中倒数第二个数字为0的姓名、地址和学历。
(16)找出所有部门“1”或“2”工作的雇员的号码。
2.子查询的使用
(1)用子查询的方法查找所有收入在2500以下的雇员的情况。
(2)用子查询的方法查找研发部比财务部所有雇员收入都高的雇员的姓名。
(3)用子查询的方法查找年龄比研发部所有雇员年龄都大的雇员的姓名。
3.连接查询的使用
(1)查询每个雇员的情况及其工作部门的情况。
(2)使用内连接的方法查找不在财务部工作的所有员工信息。
(3)使用外连接方法查找所有员工的月收入。
(4)查询研发部在1966年以前出生的雇员姓名及其薪水详情。
4.GROUPBY、ORDERBY和LIMIT子句的使用
(1)按部门列出在该部门工作的员工的人数。
(2)按员工的学历分组,列出本科、大专和硕士的人数。
(3)按员工的工作年份分组,统计各个工作年份的人数,如工作1年的多少人,工作2年的多少人。
(4)将员工信息按出生日期从小到大排列。
(5)在ORDERBY子句中使用子查询,查询员工姓名、性别和工龄信息,要求按实际收入从大到小排列。
(6)返回Employees表中从第3位员工开始的5个员工的信息。
5.创建视图
(1)创建YGGL数据库上的视图DS_VIEW,视图包含Departments表的全部列。
(2)创建YGGL数据库上的视图Employees_view,视图包含员工号码、姓名和实际收入。
6.查询视图
(1)从视图DS_VIEW中查询出部门号为3的部门名称。
(2)从视图Employees_view查询出姓名为“王林”的员工的实际收入。
7.更新视图
(1)向视图DS_VIEW中插入一行数据:
6,广告部,广告业务。
(2)执行完该命令使用SELECT语句分别查看视图DS_VIEW和基本表Departments中发生的变化。
(3)尝试向视图Employees_view中插入一行数据,看看会发生什么情况。
(4)修改视图DS_VIEW,将部门号为5的部门名称修改为“生产车间”。
(5)执行完该命令使用SELECT语句分别查看视图DS_VIEW和基本表Departments中发生的变化。
(6)修改视图Employees_view视图中号码为000001的雇员的姓名为“王浩”。
(7)删除该视图DS_VIEW中部门号为“1”的数据。
8.删除视图
删除视图DS_VIEW。
用子查询方法时,可在FROM后使用;
在利用子查询方法时,可将问题分解,先写出框架,在具体实现;
实验5数据完整性
(1)掌握数据完整性的实现方法
(1)理解数据完整性的概念及分类
(2)掌握各种数据完整性的实现方法
1.数据完整性
(1)创建一个表Employees3,只含EmployeeID、Name、Sex和Education列。
将Name设为主键,作为列Name的完整性约束。
EmployeeID为替代键,作为表的完整性约束。
(2)创建一个表Salary1,要求所有Salary表上出现的EmployeeID都要出现在Salary1表中,利用完整性约束实现,要求当删除或修改Salary表上的EmployeeID列时,Salary1表中的EmployeeID值也会随之变化。
(3)创建完Salary1表后,初始化该表的数据与Salary表相同。
删除Salary表中一行数据,再查看Salary1表的内容,看看会发生什么情况。
(4)使用ALTERTABLE语句向Salary表中的EmployeeID列添加一个外键,要求当Employees表中要删除或修改与EmployeeID值有关的行时,检查Salary表有没有该EmployeeID值,如果存在则拒绝更新Employees表。
(5)创建表Employees4,只考虑号码和性别两列,性别只能包含男或女。
(6)创建表Employees5,只考虑学号和出生日期两列,出生日期必须大于1980年1月1日。
实验6备份与恢复(选做)
(1)掌握使用SQL语句进行数据库完全备份的办法
(2)掌握使用客户端程序进行完全备份的方法
了解在MySQLAdministrator中进行数据库备份操作的方法。
1.用SQL语句进行数据库备份和恢复
(1)备份YGGL数据库中的Employees表到D盘FILE文件夹下,并在执行完成后查看D盘FILE文件夹下是否有Employees.txt文件。
(2)先删去Employees表中的几行数据,再使用SQL语句恢复Employees表,执行完成后使用SELECT查看Employees表的变化。
2.使用客户端工具备份和恢复表
(1)使用mysqldump备份数据库YGGL中的Salary表,并查看是否备份成功。
(2)备份整个YGGL数据库,并查看是否备份成功。
(3)先删除YGGL数据库中的Employees表,再使用mysql恢复数据库。
(4)假设原来的Salary表内容已经备份成Salary.txt文件,如果Salary表中的数据发生了变动,使用mysqlimport恢复表数据。
在用SQL语句备份数据库时,指定的文件夹必须是真实存在的,MYSQL系统会自动生成备份的文件,而不会将不存在的文件夹生成。
在进入客户端时cd语句的最后没有'
;
。
系别软件的
班级软件的
姓名张三
实验7数据库的安全性(选做)
(1)掌握数据库用户账号的建立与删除方法
(2)掌握数据库用户权限的授予方法
(1)了解数据库安全的重要性
(2)了解数据库用户账号的建立于删除的方法
(3)了解数据库用户权限的授予和回收方法
1.数据库用户
(1)创建数据库用户user_1和user_2,密码都为1234(假设服务器名为localhost)。
(2)将用户user_2的名称修改为user_3。
(3)将用户user_3的密码修改为123456。
(4)删除用户user_3。
(5)以user_1用户身份登陆MySQL。
(6)刚刚创建的用户有什么样的权限。
Administrator(系统管理员)——有对计算机/域的完全访问控制权;
BackupOperator(备份操作员)——可以备份和还原计算机上的文件,而不论这些文件的权限如何;
还可登录到计算机和关闭计算机,但不能更改安全性设置;
Replicator(复制员)——权限是在域内复制文件;
User(普通用户)——权限同受限用户。
(7)创建一个用户,并以该用户的身份登录。
2.用户权限的授予与收回
(1)授予用户user_1对YGGL数据库Emlpoees表的所有操作权限及查询操作权限。
(2)授予用户user_1对Emlpoees表进行插入,修改,删除操作权限。
(3)授予用户user_1对数据库YGGL的所有权限。
(4)授予user_1在Salary表上的SELECT权限,并允许其将该权限授予其他用户。
(5)回收user_1的Emlpoees表上的SELECT权限。
(6)授予用户user_1所有的用户权限。
(7)取消用户user_1所有的权限。
如果用户名已存在则无法创建名称相同的用户;
刚刚创建的用户的权限:
他们可以登录到MYSQL,但是他们不能使用USE语句来让用户已经创建的任何数据库成为当前数据库,因此他们无法访问那些数据库的表,只允许进行不需要权限的操作,例如,用一条show语句查询所有存储引擎和字符集的列表。