网络数据库技术课程实验指导_第1页
网络数据库技术课程实验指导_第2页
网络数据库技术课程实验指导_第3页
网络数据库技术课程实验指导_第4页
网络数据库技术课程实验指导_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE38辽东学院自编教材网络数据库技术实验指导书鲁琴编(信息管理与信息系统专业用)信息技术学院2013年12月目录实验1 认识MySQL 2实验2 数据定义 4实验3 表数据插入、修改和删除 8实验4 数据查询 12实验5 视图 16实验6 索引和数据完整性 19实验7 MySQL语言结构 23实验8 过程式数据库对象的使用 26实验9 备份与恢复 30实验10 数据库的安全性 33实验11 Oracle数据库管理 36实验12 Oracle数据库开发 37

实验1 认识MySQL实验类型:验证型实验课时:2指导教师:时间:20年月日课次:第节教学周次:第周实验分室:实验台号:实验员:实验目的:1.掌握MySQL服务器的安装与配置方法2.掌握MySQL命令行客户端的使用3.了解MySQL图形界面工具的基本情况实验要求:掌握数据库的基本概念、方法和原理。实验内容:1.MySQL服务器的下载、安装和配置2.MySQL命令行客户端的使用3.认识MySQLWorkbench。实验步骤:1.MySQL服务器的下载、安装和配置(1)登录MySQL官方网站下载专区(/downloads/)。(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)画出E-R图(2)将E-R图转换为关系模式员工(员工编号,姓名,性别,出生日期,学历,参加工作时间,地址,电话号码,部门号)部门(部门号,部门名,备注)员工薪水(薪水编号,收入,支出,年月,员工编号)(3)确定各数据表的结构要求:将下面三个表中带底纹的空的单元格填上对应的值。员工信息表:Employees列名数据类型长度是否允许为空说明EmployeeIDchar6No员工编号,主键Namevarchar10No姓名Sexchar1No性别BirthdaydateNo出生日期Educationchar4No学历WorkYeardateYes参加工作时间Addressvarchar20Yes地址PhoneNumberchar12Yes电话号码部门信息表:Departments列名数据类型长度是否允许为空说明DepartmentIDchar3No部门编号,主键DepartmentNamevarchar20No部门名NotetextYes备注员工薪水情况表:Salary列名数据类型长度是否允许为空说明SalaryIDchar12No薪水编号,主键InComefloatNo收入OutComefloatNo支出Timechar7No薪水年月2.使用SQL命令创建数据库和表⑴使用SQL命令创建用于企业管理的员工管理数据库YGGL打开MySQL命令行客户端,输入管理员密码登录,使用CREATE语句创建YGGL数据库。CreatedatabaseYGGL;⑵使用命令行方式创建数据库YGGL中各表首先将YGGL数据库变成当前活动的数据库UseYGGL;创建部门信息表DepartmentsCreatetableDepartments(DepartmentIDchar(3)notnull,DepartmentNamevarchar(20)notnull,Notetext,Primarykey(DepartmentID));创建员工信息表EmployeesCreatetableEmployees(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));建员工薪水情况表SalaryCreatetableSalary(SalaryIDchar(12)notnull,InComefloatnotnull,OutComefloatnotnull,Timechar(7)notnull,EmployeeIDchar(6)notnull,Primarykey(SalaryID),Foreignkey(EmployeeID)referencesEmployees(EmployeeID));建一个结构与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王林11966-01-23大专1989-07-23中山路32-1-508833556682010008伍容华11976-03-28本科1998-09-20北京东路100-2833213211020010王向容11982-12-09硕士2004-12-05四牌楼10-0-108837923611020018李丽01960-07-30大专1984-08-09中山东路102-2834133011102201刘明11972-10-18本科1995-10-08虎距路100-2836066085102208朱俊11965-09-28硕士1992-06-28牌楼巷5-3-106847088175108991钟敏01979-08-10硕士2005-08-10中山路10-3-105833467223111006张石兵11974-10-01本科1996-09-01解放路34-1-203845634185210678林涛11977-04-02大专1977-04-02中山北路24-35834673363302566李玉珉11968-09-20本科1968-09-20热和路209-3587659914308759叶凡11978-11-18本科1978-11-18北京西路3-7-52833089014504209陈林琳01969-09-03大专1969-09-03汉中路120-4-12844681584表2Departments表数据样本部门号部门名称备注部门号部门名称备注1财务部Null4研发部Null2人力资源部Null5市场部Null3经理办公室Null表3Salary表数据样本编号收入支出年月员工编号2012120000012100.8123.092012-120000012012120100081582.6288.032012-1201000820121202001028601982012-120200102012120200182347.681802012-120200182012121022012569.88185.652012-1210220120121210220819801002012-121022082012121089913259.98281.522012-121089912012121110061987.0179.582012-1211100620121221067822401212012-122106782012123025662980.7210.22012-123025662012123087592531.98199.082012-123087592012125042092066.151082012-125042092012110000012100.8120.092012-110000012012110100081582.6280.032012-1101000820121102001028602002012-110200102012110200182347.681902012-110200182012111022012569.881882012-1110220120121110220819801002012-111022082012111089913259.98280.522012-111089912012111110061987.01882012-1111100620121121067822401292012-112106782012113025662980.7222012-113025662012113087592531.981992012-113087592012115042092066.151102012-11504209实验步骤:使用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');使用SQL语句更新表数据将编号为’011112’的职工的收入改为2890Updatesalarysetincome=2890whereEmployeeID=’011112;’将所有职工的收入增加100Updatesalarysetincome=income+100;使用SQL语句删除表数据删除表Employee中编号为’011112’的职工的信息。DeletefromemployeeswhereEmployeeID=’011112’;删除所有收入大于2500的职工信息DeletefromemployeeswhereEmployeeIDin(selectEmployeeIDfromsalarywhereincome>2500);使用TRUNCATETABLE语句删除表中所有行Truncatetablesalary;使用界面工具向表中插入数据使用界面工具修改表中数据思考题: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年以后出生的员工姓名和地址。select Name,Addressfromemployeeswhereyear(birthday)>1970;(5)查询女员工的地址和电话,并使用AS子句将结果中各列的标题分别指定为地址、电话。selectAddressas地址,PhoneNumberas电话fromemployeeswheresex='0';(6)查询员工2012年12月的薪水号和收入水平,收入为2000元以下显示为低收入,2000-3000元显示为中等收入,3000元以上显示为高收入。selectSalaryID,casewhen(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';查询所有工作时间不在3到6年之间的所有员工的员工号,员工名和工作时间。selectEmployeeID,Name,WorkYearfromemployeeswhereWorkYearnotbetween'3'and'6';2.子查询的使用(1)查询在财务部工作的雇员的情况。select*fromemployees,departmentswhereemployees.DepartmentID=departments.DepartmentIDandDepartmentName='财务部';(2)查询与李丽在同一个部门工作的所有员工的编号和姓名。 selectName,EmployeeIDfromemployeeswhereDepartmentID=(selectDepartmentIDfromemployeeswhereName='李丽');(3)查询与朱俊是同样学历的的所有员工的编号、姓名和出生日期。selectEmployeeID,Name,BirthdayfromemployeeswhereEducation=(selectEducationfromemployeeswherename='朱俊');3.连接查询的使用(1)用全连接方法查询在财务部工作的雇员的情况。select*fromemployees,departmentswhereemployees.DepartmentID=departments.DepartmentIDandDepartmentName='财务部';(2)用全连接方法查询与李丽在同一个部门工作的所有员工的编号和姓名。selecta.Name,a.EmployeeIDfromemployeesasa,employeesasbwherea.DepartmentID=b.DepartmentIDand='李丽';(3)用全连接方法查询与朱俊是同样学历的所有员工的编号、姓名和出生日期。selecta.Name,a.EmployeeID,a.Birthdayfromemployeesasa,employeesasbwherea.Education=b.Educationandb.Name='朱俊';(4)用内连接方法查询不在财务部工作的所有员工信息。select*fromemployeesinnerjoindepartmentson(employees.DepartmentID=departments.DepartmentID)andDepartmentName!='财务部';4.GROUPBY,ORDERBY,LIMIT子句的使用(1)查询男员工和女员工的人数。selectsex,count(sex)fromemployeesgroupbysex;(2)按部门列出该部门的员工人数。selectDepartmentName,count(employeeID)as人数fromemployees,departmentswhereemployees.DepartmentID=departments.DepartmentIDgroupbyDepartmentName;(3)查询员工数超过2人的部门名称和员工数量。selectDepartmentName,count(employeeID)as人数fromemployees,departmentswhereemployees.DepartmentID=departments.DepartmentIDgroupbyemployees.DepartmentIDhavingcount(employeeID)>2;(4)将Salary表中按员工当月收入降序排列。selecttime,SalaryID,InComefromsalaryorderbytime,InComedesc;(5)查询Employees表中前5位员工信息。select*fromemployeeslimit5;思考题:实验中遇到的问题及解决方法。

实验5 视图实验类型:验证型实验课时:1指导教师:时间:20年月日课次:第节教学周次:第周实验分室:实验台号:实验员:实验目的:1.掌握视图的概念和作用2.掌握视图的创建方法3.掌握如何查询和修改视图实验要求:了解视图的概念及相关操作实验内容:创建视图查询视图更新视图删除视图在界面工具中操作视图实验步骤:说明:按实验步骤对数据库YGGL中的三个表进行数据查询,三个表结构如下(具体参看实验2):Departments(DepartmentID,DepartmentName,Note)Employees(EmployeeID,Name,Sex,Birthday,Education,WorkYear,Address,PhoneNumber,DepartmentID)Salary(SalaryID,InCome,OutCome,Time,EmployeeI)要求:填上正确答案。1.创建视图(1)创建YGGL数据库上的视图DS_VIEW,视图包含Departments表的全部列。CREATEVIEWDS_VIEWASSELECT*FROMDepartments;(2)创建YGGL数据库上的视图ES_VIEW,视图包含员工号码、姓名和当年总实际收入。CREATE

VIEW

Employees_view(EmployeeID,Name,realIncome)

AS

SELECT

Employees.EmployeeID,Name,Income-OutComeFROM

Employees,salary

WHERE

Employees.EmployeeID=salary.EmployeeID

;(3)创建视图,包含员工号码、姓名、所在部门和实际收入这几列。查询视图从视图DS_VIEW中查询出部门号为3的部门名称。select

DepartmentName

from

DS_view

where

DepartmentID='3';(2)从视图ES_VIEW中查询出姓名为“王林”的员工的实际收入。select

RealIncome

from

Employees_view

where

Name='王林';更新视图在更新视图前需要了解可更新视图的概念,了解什么视图是不可以进行修改的。更新视图真正更新的是与视图关联的表。向视图DS_VIEW中插入一行数据:6,广告部,广告业务。insert

into

DS_VIEW

values('6','广告部','广告业务')执行完该命令后,使用SELECT语句分别查看视图DS_VIEW和基本表Departments中发生的变化。(用语言描述)尝试向视图ES_VIEW中插入一行数据,看看会发生什么情况。(用语言描述)(2)修改视图DS_VIEW,将部门号为5的部门的部门名称修改为“生产车间”。update

DS_VIEW

set

DepartmentName='生产车间'

where

DepartmentID='5';执行完该命令后,使用SELECT语句分别查看视图DS_VIEW和基本表Departments中发生的变化。(用语言描述)(3)删除视图DS_VIEW中部门号为“1”的数据。delect

from

DS_VIEW

where

DepartmentID='1';删除视图删除视图DS_VIEW。DropVIEWDS_VIEW;在界面工具中操作视图(1)创建视图。(2)编辑视图。(3)删除视图。思考题:1.视图ES_VIEW中无法插入和删除数据,其中的RealIncome列值也无法修改,为什么?2.总结视图和基本表的区别。3.实验中遇到的问题及解决方法。

实验6 索引和数据完整性实验类型:验证型实验课时:2指导教师:时间:20年月日课次:第节教学周次:第周实验分室:实验台号:实验员:实验目的:1.掌握索引的使用方法2.掌握数据完整性的实现方法。实验要求:了解索引和数据完整性的相关知识。实验内容:创建索引删除索引数据完整性实验步骤:说明:按实验步骤对数据库YGGL中的三个表进行操作,三个表结构如下(具体参看实验2):Departments(DepartmentID,DepartmentName,Note)Employees(EmployeeID,Name,Sex,Birthday,Education,WorkYear,Address,PhoneNumber,DepartmentID)Salary(SalaryID,InCome,OutCome,Time,EmployeeID)要求:将实验步骤填上正确答案。创建索引a)使用CREATEINDEX语句创建索引1)对YGGL数据库上的Employees表中的DepartmentID列建立索引。USE

YGGL;

CREATE

INDEX

depart_ind

ON

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

INDEX

Ad_ind

ON

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

UNIQUE

INDEX

Dep_ind

ON

Departments

(DepartmentName);

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

INDEX

FROM

Employees;

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

UNIQUE

INDEX

date_ind(Birthday),

ADD

INDEX

na_ind(Name,Sex);

删除表Departments的主键。ALTER

TABLE

Departments

DROP

PRIMARY

KEY;

将表Departments的DepartmentID列设为主键。ALTER

TABLE

Departments

ADD

PRIMARY

KEY(DepartmentID);

c)在创建表(CREATETABLE)时创建索引创建与表Departments表相同结构的表Departments1,将DepartmentName列设为主键,DepartmentID列上建立一个索引CREATE

TABLE

Departments1

(

DepartmentID

char(3),

DepartmentName

varchar(20),

Note

text,

PRIMARY

KEY

(DepartmentName),

INDEX

DID_ind(DepartmentID)

);

d)界面方式创建索引删除索引(1)使用DROPINDEX语句删除表Employees上的索引depart_ind,。DROP

INDEX

depart_ind

ON

Employees;

(2)使用ALTERTABLE删除表Departments的主键和索引Dep_ind。ALTER

TABLE

Departments

DROP

PRIMARY

KEY,

DROP

INDEX

Dep_ind;

数据完整性(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,其结构同salary。要求所有Salary1表上出现的EmployeeID都要出现在Employees表中,利用完整性约束实现,要求当删除或修改Employees表上的EmployeeID列时,Salary1表中的EmployeeID值也会随之变化。CREATETABLESalary1(EmployeeIDchar(6)NOTNULLPRIMARYKEY,InComeFloatNOTNULL,OutComeFloatNOTNULL,FOREIGNKEY(EmployeeID)REFERENCESSalary(EmployeeID)ONUPDATECASCADEONDELETECASCADE)ENGINE=InnoDBDEFAULTCHARSET=gb2312;(3)将表Salary中的数据插入到表Salary1中。Insertintosalary1select*fromsalary;(4)删除或更新表employees中的数据时,观察表Salary1中的数据有何变化(用语言表述)?(5)创建一个表Employees4,只考虑号码和性别列,性别只能包含男或女。CREATETABLEEmployees4(号码char(6)NOTNULL,性别char(1)NOTNULLCHECK(性别IN('男','女')));思考题:1.添加主键和添加普通索引有什么区别?答:主键一定是唯一性索引,唯一性索引并不一定就是主键。所谓主键就是能够唯一标识表中某一行的属性或属性组,一个表只能有一个主键,但可以有多个候选索引。因为主键可以唯一标识某一行记录,所以可以确保执行数据更新、删除的时候不会出现张冠李戴的错误。主键除了上述作用外,常常与外键构成参照完整性约束,防止出现数据不一致。数据库在设计时,主键起到了很重要的作用。主键可以保证记录的唯一和主键域非空,数据库管理系统对于主键自动生成唯一索引,所以主键也是一个特殊的索引。一个表中可以有多个唯一性索引,但只能有一个主键主键列不允许空值,而唯一性索引列允许空值。2.实验中遇到的问题及解决方法。答:1.备份时mysqldump中没有空格,databases前注意有两个破折号。2.任何队列的操作都将导致表扫描,它包括数据库函数、计算表达式等等,查询时要尽可能将操作移至等号右边。

实验7 MySQL语言结构实验类型:验证型实验课时:2指导教师:时间:20年月日课次:第节教学周次:第周实验分室:实验台号:实验员:实验目的:1.掌握常量的分类及使用2.掌握变量的分类及使用3.掌握各种运算符和表达式4.掌握系统函数的使用实验要求:了解MySQL支持的各种数据类型了解MySQL各种运算符的功能及使用方法了解MySQL系统内置函数的作用实验内容:常量的使用变量的使用运算符的使用系统函数的使用实验步骤:说明:按实验步骤对数据库YGGL中的三个表进行操作,三个表结构如下(具体参看实验2):Departments(DepartmentID,DepartmentName,Note)Employees(EmployeeID,Name,Sex,Birthday,Education,WorkYear,Address,PhoneNumber,DepartmentID)Salary(SalaryID,InCome,OutCome,Time,EmployeeID)要求:将实验步骤中紫色底纹部分填上正确答案。常量的使用(1)计算194和142的乘积(2)获取以下这串字母的值:'I\nlove\nMySQL'系统变量的使用(1)获取现在的MySQL版本号(2)获取当前的系统时间(3)获取当前的系统日期用户变量的使用(1)参照YGGL数据库,创建一个名为female的用户变量,并在SELECT语句中使用该局部变量查找表中所有女职工的编号,姓名。(2)定义一个变量,用于描述YGGL数据库中的Salary表中员工000001的当月实际收入,然后查询该变量。运算符的使用(1)使用算术运算符“-”查询员工的实际收入。(2)使用逻辑运算符“AND”查看以下语句的结果。SELECT(7>6)AND('A'='B');对上面语句的执行结果进行分析。系统函数的使用(1)将数1.32656四舍五入取整,将1.32656保留小数点后2位小数。(2)求财务部雇员总人数。(3)返回Employees表中员工号最左端四个字符。(4)获得当前的日期和时间。(5)查询YGGL数据库中员工号为000001的员工出生的年份。(6)计算Employees表中每个员工的年龄。思考题:实验中遇到的问题及解决方法。

实验8 过程式数据库对象的使用实验类型:验证型实验课时:4指导教师:时间:20年月日课次:第节教学周次:第周实验分室:实验台号:实验员:实验目的:掌握存储过程的创建和调用方法掌握MySQL的流程控制语句掌握MySQL游标的使用4.掌握存储函数的创建和调用方法5.掌握触发器的创建和使用6.掌握事件的创建和使用实验要求:掌握存储过程、存储函数、触发器和事件的相关知识实验内容:存储过程存储函数触发器实验步骤:说明:按实验步骤对数据库YGGL中的三个表进行操作,三个表结构如下(具体参看实验2):Departments(DepartmentID,DepartmentName,Note)Employees(EmployeeID,Name,Sex,Birthday,Education,WorkYear,Address,PhoneNumber,DepartmentID)Salary(SalaryID,InCome,OutCome,Time,EmployeeID)要求:将实验步骤中紫色底纹部分填上正确答案。存储过程创建存储过程,要求当一个员工的工作年头大于6年时将其转到经理办公室工作。调用该存储过程并查看结果。(2)创建存储过程,使用游标计算本科及以上学历的员工在总员工数中所占的比例。调用该存储过程并查看结果。存储函数(1)分别创建存储函数和存储过程,判断员工是否在研发部工作,若是则返回其学历,若不是则返回字符串“NO”。DELIMITER$$CREATEDEFINER=`root`@`localhost`PROCEDURE`find_xl`(inbhchar(3),outxlchar(4))BEGINdeclarebmbhchar(20);selecteducation,departmentnameintobmbhfromemployees,departmentswheredepartments.departmentid=employees.departmentidandemployeeid=bh;ifbmbh='研发部'thensetxl=education;elsesetxl='no';endif;END$$DELIMITER$$CREATEDEFINER=`root`@`localhost`FUNCTION`find_xl`(bhchar(6))RETURNSchar(20)CHARSETutf8BEGINdeclarebmbhchar(6);selectdepartmentnameintobmbhfromemployees,departmentswheredepartments.departmentid=employees.departmentidandemployeeid=bh;ifbmbh='研发部'thenreturn(selecteducationfromemployeeswhereemployeeid=bh);elsereturnno;endif;END$$分别定义和调用存储函数和存储过程,完成功能:按指定员工号和年份,返回这个职工在这个年度的总收入.DELIMITER$$CREATEDEFINER=`root`@`localhost`PROCEDURE`find_Saraly`(inbhchar(6),innfchar(7),outzsrfloat)BEGINselectincome-outcomeassumsrfromsalarywhereemployeeid=bhandtime=nf;END$$DELIMITER$$CREATEDEFINER=`root`@`localhost`FUNCTION`find_salary`(bhchar(6),nfchar(7))RETURNSfloatBEGINreturn(selectincome-outcomeassumsrfromsalarywhereemployeeid=bhandtime=nf);END$$3.触发器在yggl数据库中新建一个表:奖惩(奖惩编号,奖惩时间,奖惩类型,奖惩备注,员工编号)其中主键为奖惩编号,外键为员工编号,参照Employees(employeeID)奖惩类型的值为“奖励”和“处罚”.创建触发器,当插入【奖惩】时,相应的触发器触发,如果【奖惩类型】为奖励,将salary表中当月收入加100,如果【奖惩类型】为处罚,将salary表中当月收入减100思考题:本次实验中遇到的问题及解决方法。

实验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)在MySQLWorkbench中进行数据库YGGL的备份。(2)在MySQLWorkbench中进行数据库YGGL的恢复。2.用SQL语句进行数据库备份和还原使用SQL语句只能备份和恢复表的内容,如果表的结构损坏,则要先恢复表的结构才能恢复数据。(1)备份。备份YGGL数据库中的Employees表到D盘FILE文件夹下Employees.txt文件中:执行完后,查看D盘FILE文件夹下是否有Employees.txt文件。(2)恢复。先删除Employees表中的几行数据,再使用LOADDATA语句恢复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的功能和LOADDATAINFILE语句是一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论