《MySQL数据库技术》实验报告.doc
MySQL数据库技术实验报告系 别班 级学 号姓 名地点计算机科学系 计科110211150004常赵有C111机房课程名称MySQL数据库技术实验名称实验1 MySQL的使用实 验 过 程目的要求(1)掌握MySQL服务器安装方法(2)掌握MySQL Administrator的基本使用方法(3)基本了解数据库及其对象实验准备(1)了解MySQL安装的软硬件要求(2)了解MYSQL支持的身份验证模式(3)了解MySQL各组件的主要功能(4)基本了解数据库、表、数据库对象实验内容1.安装MySQL服务器和MySQL界面工具安装MySQL界面工具。(插入安装好的界面工具截图即可)2.利用MySQL客户端访问数据库(1)打开开始,程序,MySQL,MySQL server 5.1,MySQL command line client,进入MySQL客户端界面,输入管理员密码登录。(2) 在客户端输入“help”或“h”,查看MySQL帮助菜单,仔细阅读帮助菜单的内容。(3) 实用show语句查看系统自动创建的数据库。(4) 实用USE语句选择mysql数据库为当前数据库。(5) 使用SHOW TABLES 语句查看当前数据库中的表。(6) 使用了一条SELECT语句查看mysql数据库中存储用户信息表的user的内容。(7) 使用use语句将当前的数据库设定为ination_schema,并查看数据库数据库中有哪些表。实验小结在安装MySql中有时可能不能安装不成功,那么卸载时,会存在删除不完全的情况。导致再次安装时依然不成功。在对某个数据库进行操作之前,必须先选中该数据库。在MySql安装过程中,注意修改字符集为gb2312或gbk, 以支持中文信息输入。MySQL数据库技术实验报告系 别班 级学 号姓 名地点计算机科学系计科110211150004常赵有C111机房课程名称MySQL数据库技术实验名称实验2 创建数据库和表实 验 过 程目的和实验要求(1)了解MySQL数据库中的存储引擎分类(2)了解表的结构特点(3)了解MySQL的基本数据类型(4)了解空值的概念(5)学会在MySQL界面工具中创建数据库和表(6)学会使用SQL语句创建数据库和表实验内容1.实验题目创建用于企业用于管理的员工管理数据库,数据库名为YGGL,包含员工的信息,部门信息,及员工的薪水信息。数据库YGGL包含下列三个表(1) Employees员工信息表(2) Departments部门信息表(3)Salary员工薪水情况表表实验2.1 Employees表结构列名数据类型长度是否允许空值说明Employeeschar6否员工编号,主键namechar10否姓名educationchar4否学历birthdaydate16否出生日期sexchar2否性别workyeartinyint1是工作时间addressvarchar20是地址phonenumberchar12是电话departmentIDchar3否员工部门号,外键表实验2.2 Departments表结构列名数据类型长度是否允许空值说明departmentIDchar3否部门编号,主键departmentNamechar20否部门名notetext16是备注表实验2.3 Salary表结构列名数据类型长度是否允许空值说明employmeeIDchar6否员工编号,主键Incomefloat8否收入Outcomefloat8否支出2.实验准备 首先要明确,能够创建数据库的用户必须是数据管理员,或是被授权使用CREATEDATEBASE语句的用户。 其次,确定数据库包含哪些表,以及所包含的个表的数据结构,还要了解MySQL的常用数据类型,以及创建数据库的表。此外还要了解两种常用的创建数据、表的方法,即在界面管理工具中创建和使用CREAT DATEBASE 语句创建。实验步骤1.使用命令行方式创建数据库YGGL。(1)打开MySQL command line client,输入管理员密码登录,使用CREATE语句创建YGGL数据库。(2) 在YGGL数据库存在的情况下,使用CREAT DATEBASE语句新建数据库YGGL,查看错误信息,再尝试加上IF NOT EXISTS关键词创建YGGL,看看有什么变化。(3) 使用命令方法创建数据库YGGL1,要求数据库字符集为utf8,校对规则为utf8_general_ci。2.使用SQL语句在YGGL数据库中创建表employees执行创建表Employees的Sql语句。3使用SQL语句删除表和数据库(1) 删除表employmees。(2) 删除数据库YGGL。(3) 使用命令行将表Emloyees1中的Emailaddress列删除,并将Sex列的默认值修改为男。实验小结在不知道系统中是否存在要创建的数据库时,最好加上IF NOT EXISTS,来避免因已存在而致使无法成功创建的情况发生。对于创建表及删除数据库、表时,类同。MySQL数据库技术实验报告系 别班 级学 号姓 名地点计算机科学系 计科110211150004常赵有C111机房课程名称MySQL数据库技术实验名称实验3 表数据插入、修改和删除实 验 过 程目的和实验要求(1)学会在界面管理工具中对数据库表进行插入、修改和删除数据操作(2)学会用SQL语句对数据库进行插入、修改和删除数据操作(3)了解数据更新操作时要注意数据完整性(4)了解SQL语句对表数据操作的灵活控制功能实验内容1.实验题目 分别使用MySQL Administator和SQL语句,向在实验2建立的数据库YGGL的表Employees、Departments和Salary中插入多行数据记录,然后修改和删除一些记录。使用SQL进行有效的修改和删除。2.实验准备首先,了解对表数据的插入、删除、修改都属于表数据的更新操作。对表数据的操作可以在MySQL Administator中进行,也可以由SQL语句实现。其次,要掌握SQL中用于对表数据进行插入、修改、和删除的命令分别是INSERT、UPDATE和DELETE。要特别注意在执行插入、删除和修改等数据更新操作时,必须保证数据完整性。此外,还要了解使用SQL语言在对表数据进行插入、修改和删除时,比在MySQL Administator中操作表数据更为灵活,功能更强大。在实验2中,用于实验的YGGL数据库中的3个表已经建立,现在要将各表的样本数据添加到表中。样本数据如表实验3.1、表实验3.2和表实验3.3所示。表实验3.1 Employees表数据样本编号姓名学历出生日期性别工作时间住址电话部门号000001王林大专1966-01-2318中山路32-1-508833556682010008伍容华本科1976-03-2813北京东路100-28332113211020010王向荣硕士1982-12-0912四牌路10-0-108837923611020018李丽大专1960-07-3006中山东路102-2834133011102201刘明本科1972-10-1813虎踞路100-2836066085102208朱俊硕士1965-09-2812牌楼巷5-3-106847088175108991钟敏硕士1979-08-1004中山路10-3-105833467223111006张石兵本科1974-10-0111解放路34-1-203845634185210678林涛大专1977-04-0212中山北路24-35834673363302566李玉敏本科1968-09-2013热河路209-3587659914308759叶凡本科1978-11-1812北京西路3-7-52833089014504209陈林琳大专1969-09-0305汉中路120-4-12844681584表实验3.2 Departments表数据样本部门号部门名称备注部门号部门名称备注1财务部null4研发部null2人力资源部null5市场部null3经理办公室null表实验3.3 Salary表数据样本编号收入支出编号收入支出0000012100.8123.091089913259.98281.520100081582.6288.030200102860.0298.01022012569.88185.650200182347.68180.01110061987.0179.583087592531.98199.085042092066.15108.02106782240.0121.03025662980.7210.21022081980.0100.0实验步骤1. 使用SQL语句插入表数据(1)向表Employees中插入记录(000001,王林,大专,1966-01-23,1,8,中山路32-1-508,83355668,2。(2) 使用REPLACE语句向Departments表插入记录(1,广告部,负责推广产品),并查看是否已插入。2. 使用SQL语句修改表数据(1)使用SQL命令修改表Salary,将编号为011112的职工收入改为2890。(2) 将所有职工收入增加100。(3) 使用SQL命令删除Employees中编号为011112的职工信息。(4) 删除所有收入大于2500的员工信息。 (5) 使用TRANCATE TABLE语句删除Salary表中有行。(删除后请重新插入,以后要用)实验小结注意分号为英文字符下的;在要求查询结果的属性列名用中文表示时,AS可加可不加;模糊查询时,还可用正则表达式;MySQL数据库技术实验报告系 别班 级学 号姓 名地点计算机科学系计科110211150004常赵有C111机房课程名称MySQL数据库技术实验名称实验4 数据库的查询和视图实 验 过 程目的要求(1)掌握SELECT语句的基本用法(2)掌握子查询的表示(3)掌握连接查询的表示(4)掌握SELECT语句的GEOUP BY子句的作用和使用方法(5)掌握SELECT语句的ORDER BY子句的作用和使用方法(6)熟悉视图的概念和作用(7)掌握视图的创建方法(8)掌握如何查询和修改视图实验准备(1)了解SELECT语句的基本语法格式(2)了解SELECT语句执行方法(3)了解子查询的表示方法(4)了解查询的表示方法(5)了解SELECT语句的GROUP BY子句的作用和使用方法(6)了解SELECT语句的ORDER BY子句的作用(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以下的显示为低收入,20003000的显示为中等收入,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.GROUP BY、ORDER BY和LIMIT子句的使用(1)按部门列出在该部门工作的员工的人数。(2) 按员工的学历分组,列出本科、大专和硕士的人数。(3) 按员工的工作年份分组,统计各个工作年份的人数,如工作1年的多少人,工作2年的多少人。(4) 将员工信息按出生日期从小到大排列。(5) 在ORDER BY子句中使用子查询,查询员工姓名、性别和工龄信息,要求按实际收入从大到小排列。(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。实验小结注意分号为英文字符下的;在要求查询结果的属性列名用中文表示时,AS可加可不加;模糊查询时,还可用正则表达式;用子查询方法时,可在FROM后使用;在利用子查询方法时,可将问题分解,先写出框架,在具体实现;MySQL数据库技术实验报告系 别班 级学 号姓 名地点计算机科学系计科110211150004常赵有C111机房课程名称MySQL数据库技术实验名称实验5 索引和数据完整性实 验 过 程目的要求(1) 掌握索引的使用方法(2) 掌握数据完整性的实现方法实验准备(1) 了解索引的作用与分类(2) 掌握索引的创建方法(3) 理解数据完整性的概念及分类(4) 掌握各种数据完整性的实现方法实验内容1. 创建索引(1) 在Employees表的Name列和Address列上建立复合索引。(2) 对Departments表上的DepartmentName列建立唯一性索引。(3) 使用CREATE INDEX语句能创建主键吗不能。(4) 向Employees表中的出生日期列添加一个唯一性索引,姓名列和性别列上添加一个复合索引。(5) 假设Departments表中没有主键,使用ALTER TABLE语句将DepartmentID列设为主键。(6) 添加主键和添加普通索引有什么区别添加主键会自动创建主键索引, 普通索引需要自己手动去添加和指定,表中效率最高的索引就是主键索引(7) 创建与Departments表相同结构的表Departments1,将DepartmentName设为主键,DepartmentsID上建立一个索引。2. 删除索引(1) 使用DROP INDEX语句删除表Employees上的索引depart_ind。(2) 使用ALTER TABLE语句删除Departments上的主键和索引Dep_ind。3. 数据完整性(1) 创建一个表Employees3,只含EmployeeID、Name、Sex和Education列。将Name设为主键,作为列Name的完整性约束。EmployeeID为替代键,作为表的完整性约束。(2) 创建一个表Salary1,要求所有Salary表上出现的EmployeeID都要出现在Salary1表中,利用完整性约束实现,要求当删除或修改Salary表上的EmployeeID列时,Salary1表中的EmployeeID值也会随之变化。(3) 创建完Salary1表后,初始化该表的数据与Salary表相同。删除Salary表中一行数据,再查看Salary1表的内容,看看会发生什么情况。(4) 使用ALTER TABLE语句向Salary表中的EmployeeID列添加一个外键,要求当Employees表中要删除或修改与EmployeeID值有关的行时,检查Salary表有没有该EmployeeID值,如果存在则拒绝更新Employees表。(5) 创建表Employees4,只考虑号码和性别两列,性别只能包含男或女。(6) 创建表Employees5,只考虑学号和出生日期两列,出生日期必须大于1980年1月1日。实验小结添加主键时自动创建主键索引,普通索引需要自己手动去添加和指定,表中效率最高的索引是主键索引。MySQL数据库技术实验报告系 别班 级学 号姓 名地点计算机科学系计科110211150004 常赵有C111机房课程名称MySQL数据库技术实验名称实验6 MySQL语言结构实 验 过 程目的要求(1)掌握变量的分类及其使用(2)掌握各种运算符的使用(3)掌握系统内置函数的使用实验准备(1)了解MySQL支持的各种基本数据类型(2)了解MySQL各种运算符的功能及使用方法(3)了解MySQL系统内置函数的使用实验内容1.常量的使用(1)计算196*345。(2) 获取以下这串字符InlovenMySQL.2.系统变量的使用(1)获得现在使用的MySQL版本。(2) 获得系统当前时间。(3) 获得系统当前日期。3.用户变量的使用 定义一个变量,用于描述YGGL数据库中Salary员工表000001的实际收入,然后查询该变量。4.运算符的使用(1)使用算数运算符“-”查询员工的实际收入。(2) 使用比较运算符“”查询Employees表中工作时间小于5年的员工信息。(3) 使用逻辑运算符“AND”查看以下语句结果SELECT76ANDAB;5.系统内置函数的使用(1)获得一组数组的最大值和最小值。(数组自拟)(2) 使用ROUND()函数获得一个数的四舍五入的整数值。(3) 使用ABS()函数获得一个数的绝对值。(4) 使用SQRT()函数返回一个数的平方根。(5) 使用CONCAT函数连接两个字符串。(6) 求财务部收入最高的员工姓名。(7) 查询员工收入的平均数。(8) 获得当前日期和时间并查询YGGL数据库中员工号为000001的员工出生年份。(9) 使用CHAR()函数将ASCII码代表的字符组成字符串。(10) 使用LEFT()函数返回从字符串abcdef左边开始的3个字符。(11) 使用DAYNAME()函数返回当前时间的星期名。(12) 列举出其他的时间日期函数。DAYOFWEEKdate WEEKDAYdate DAYOFMONTHdate DAYOFYEARdateMONTHdate DAYNAMEdate MONTHNAMEdate QUARTERdate WEEKdate,firstYEARdate HOURtime MINUTEtime SECONDtime PERIOD_ADDP,N DATE_ADD DATE_SUB ADDDATE SUBDATE实验小结CURDATE等同于CURRENT_DATECURTIME等同于CURRENT_TIMEMySQL数据库技术实验报告系 别班 级学 号姓 名地点计算机科学系计科110211150004常赵有C111机房课程名称MySQL数据库技术实验名称实验7 过程式数据库对象的使用实 验 过 程目的要求(1)掌握存储过程创建和调用的方法(2)掌握MySQL中程序片段的组成(3)掌握游标的使用方法(4)掌握存储函数创建和调用的方法(5)掌握触发器的使用方法(6)掌握事件的创建和使用方法实验准备(1)了解存储过程体中允许的SQL语句类型和参数的定义方法(2)了解存储过程的调用方法(3)了解存储函数的定义和调用方法(4)了解触发器的作用和使用方法(5)了解时间的作用和定义方法实验内容1.存储过程(1)创建存储过程,要求当一个员工的工作年份大于6年时将其转到经理办公室工作。(2) 创建存储过程,使用游标计算本科及以上学历的员工在总员工数中所占的比例。2.存储函数(1)创建存储函数,判断员工是否在研发部工作,若是则返回其学历,若不是则返回字符串“NO”。(2) 创建一个存储函数,将工作时间满4年的员工收入增加500。3.触发器(1)创建UPDATE触发器,当Departments表中部门号发生变化时,Employees表中员工所属部门号也将改变。(2) 创建UPDATE触发器,当Salary表中的InCome值增加500时,OutCome值则增加50。4.事件(1)创建一个2009年11月25日上午11点执行的事件。(2) 创建一个从下个月20日开始到2009年5月20日结束,每个月执行一次的事件。实验小结(此处填写自己在完成本实验的过程中遇到的问题和收获的经验,要求不少于150字,格式为五号,宋体,单倍行距)DELIMITER的使用使用DELIMITER改变结束标记后,在代码中每条完整语句后要加分号在创建事件的时候,要将事件发生是要做什么写上,不能只有开始和结束时间MySQL数据库技术实验报告系 别班 级学 号姓 名地点计算机科学系计科110211150004常赵有C111机房课程名称MySQL数据库技术实验名称实验8 备份与恢复实 验 过 程目的要求(1)掌握使用SQL语句进行数据库完全备份的办法(2)掌握使用客户端程序进行完全备份的方法实验准备了解在MySQL Administrator中进行数据库备份操作的方法。实验内容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 语句的最后没有;。MySQL数据库技术实验报告系 别班 级学 号姓 名地点计算机科学系 计科110211150004常赵有C111机房课程名称MySQL数据库技术实验名称实验9 数据库的安全性实 验 过 程目的要求(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(系统管理员)有对计算机/域的完全访问控制权;Backup Operator(备份操作员)可以备份和还原计算机上的文件,而不论这些文件的权限如何;还可登录到计算机和关闭计算机,但不能更改安全性设置;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语句查询所有存储引擎和字符集的列表。欢迎您的光临,Word文档下载后可修改编辑.双击可删除页眉页脚.谢谢你的意见是我进步的动力,希望您提出您宝贵的意见让我们共同学习共同进步学无止境.更上一层楼。