北邮 大三下 数据库实验一二 mysql版本.docx
实验报告学 院: 计算机学院 课程名称: 数据库系统 实验名称: 实验一 MySQL安装、数据库创建与维护实验 实验二 数据库表/视图的创建与维护实验 班 级: 姓 名: schnee 学 号: 实验一 MySQL安装、数据库创建与维护实验一 实验目的1.通过对MySQL 5.5的安装和简单使用:了解安装MySQL 5.5的软硬件环境和安装方法;熟悉MySQL 5.5的相关使用;熟悉MySQL 5.5的构成和相关工具;通过MySQL 5.5的使用来理解数据库系统的基本概念;2.通过创建数据库、并进行相应的维护,了解并掌握MySQL 5.5数据库的创建和维护的不同方法和途径,并通过这一具体的数据库理解实际数据库所包含的各要素。二 实验要求1 MySQL 5.5的安装实验要求学生在微机上安装MySQL 5.5数据库系统,为后续各个实验搭建实验环境。2 数据库创建与维护实验则要求面向具体应用领域,利用相关机制,创建并维护数据库系统,为后续各个实验提供前期准备3 要求学生根据以上要求确定实验步骤,独立完成以上实验内容。并在安装和数据库运行后熟悉MySQL 5.5 的各种运行管理。4 实验完成后完成实验报告三 实验环境操作系统:Microsoft Windows 7旗舰版 (32位)。硬件:容量足以满足MySQL 5.5安装及后续实验的使用。软件:数据库版本:MySQL 5.5 。四 实验内容1. MySQL 5.5软件安装(1) 在windows2007操作系统上安装并运行MySQL 5.5。(2) 练习连接和退出数据库。(3) 指定具体的安装位置。2. 数据库创建与维护(1) 创建学生选课数据库。(2) 对数据库属性和参数进行查询、相应的修改和维护,内容包括:-最大连接数-服务器端口-共享缓存数-为DBA保留的连接数-死锁检测时间-日志缓冲数-设置系统同步写(3) 练习数据库的删除等维护;(4) 用MySQL 5.5管理工具和交互式的ISQL语句分别完成以上操作。五 实验步骤及结果分析1. MySQL5.5 软件安装与运行1) MySQL5.5 的安装完全按照网上教程 ,所以就不赘述了。2) 连接和退出数据库打开dos窗口,进入目录mysqlbin,然后输入命令行:mysql u root p mysql回车后输入密码即可进入。运行结果如图:退出数据库只需输入exit(回车)即可。3) 具体安装位置2. 数据库创建与维护1) 创建学生选课数据库2) 对数据库属性和参数进行查询、相应的修改和维护a) 最大连接数:进入MySQL安装目录,打开MySQL配置文件my.ini查询,如下图可见初始值为100,修改为所需的值即可。b) 服务器端口:同样在my.ini里面可以查询到如下图所示,服务器端口初始值为3306,修改即可。c) 共享缓存数:MySQL里提供了查询缓冲机制以提高效率。相关参数比较多,有query_cache_limit、query_cache_size等,同样可以从my.ini里查询、修改和维护。d) 死锁检测时间:InnoDB在其拥有的锁表中自动检测事务死锁并且回滚事务.innodb_lock_wait_timeout=120.3) 数据库的删除等维护a) 显示当前数据库服务器中的数据库列表:mysql> show databases;b) 显示数据库中的数据表:mysql> use db;mysql> show tables;c) 建立数据库:mysql> create database one;d) 删除数据库:mysql> drop database one;如图所示,创建了一个数据库one,并且显示当前数据库列表出来,然后又把one这个数据库删除,再次显示数据库列表。结果如左图所示。六 实验小结本次实验,我一次性成功地安装了MySQL 5.5,并通过网站上的帖子 学习了my.ini配置文件的含义,实现了对数据库参数的查询、修改及维护。最后,我又顺利的执行了创建、删除、列表等数据库操作。在实验期间,我一开始时遇到了无法连接的问题,经老师指导,通过“控制面板 -> 系统和安全 -> 管理工具 -> 服务 -> MySQL右键启动”连接成功。此外,由于同学大多使用SQL2005等视图化软件,所以实验时,我经常要通过网络来独立解决自己遇到的问题。总体来说,这次实验比较简单,进行也比较顺利,不过却为后面的实验打下了坚实的基础。通过此次实验,我对MySQL这个软件有所了解,也能进行一些基本的数据库操作。而且自己通过网络查询等方法独立解决问题,也使我从实验中学到更多。实验二 数据库表/视图的创建与维护实验一 实验目的1 通过进行数据库表的建立操作,熟悉并掌握MySQL 5.5 数据库表的建立方法,理解关系数据库表的结构,巩固SQL标准中关于数据库表的建立语句。2 通过进行数据库表数据的增加、删除和插入等维护操作,熟悉并掌握MySQL 5.5数据库数据的操作方法,巩固SQL中关于数据维护的语句3 通过对MySQL 5.5中建立、维护视图的实验,熟悉MySQL 5.5中对视图的操作方法和途径,理解和掌握视图的概念二 实验要求(1) 用交互式语句完成以上操作;(2) 能够对整个的过程进行批命令操作;(3) 要求学生独立完成以上内容。(4) 根据以上内容确定实验步骤。(5) 实验完成后完成要求的实验报告内容。三 实验环境操作系统:Microsoft Windows 7旗舰版 (32位)。硬件:容量足以满足MySQL 5.5安装及后续实验的使用。软件:数据库版本:MySQL 5.5 。四 实验内容1. 数据库表实验:(1) 创建数据库表创建学生选课数据库中所包含的数据库表,数据库表结构如下:学生(学号,姓名,性别,年龄,系别,班级)课程(课程编号,课程名称,学分)选修(学号,课程编号,学生成绩)要求为各数据库表属性选择合适的数据类型。列名、数据类型(长度列、精度、小数位数项)、是否允许空值等。(2) 查看和修改表结构。选择一个数据库表,练习对其表结构进行相应的修改。(3) 练习用交互式的SQL语句分别完成以上操作。a) 对学生数据库中的三张表分别插入数据;b) 对表中的数据进行修改;c) 对表中的数据进行删除操作2. 视图实验:视图的建立、修改、删除(1) 建立如下视图:学生选修课程信息视图,包括以下内容:学生学号、姓名、所在系、选修的课程编号、课程名称、成绩(2) 修改以上视图,增加学生所在班级信息。(3) 对以上视图删除。五 实验步骤及结果分析1. 数据库表实验:(1) 创建数据库表(导入txt)由于老师提供了统一的数据表,所以没有自己创建,只是直接导入到创建的数据库db中。另,由于导入sql会出现中文无法正常显示的情况,所以我选择了导入txt文件而不是sql。导入过程如下(以student.txt为例):先产生表文件,如命名student:mysql> create database db;mysql> use db;mysql> Create Table student ( sno varchar(6) NOT NULL, sname varchar(6) DEFAULT NULL, sex varchar(2) DEFAULT NULL, bdate datetime DEFAULT NULL, dept varchar(8) DEFAULT NULL, classno varchar(3) DEFAULT NULL, PRIMARY KEY (sno) DEFAULT CHARSET=gbk;即导入成功一个表格,建立相应的属性,然后新开一个cmd在dos对应的mysql/bin目录下键入:mysqlimport -u 用户名 -p 库名(表上一级的,如test) 文本名(前面同表名,如sc.txt)三个数据库表都按此导入后,我们可以查询数据库db里的数据表(2) 查看和修改表结构a) 查看表结构student数据库表course数据库表sc数据库表b) 修改表结构l 删除classno如上图所示,表student的结构修改成功,classno被删除。l 增加classno如下图所示,表student的结构修改成功,增加了classno,且默认值都为NULL。l 后续工作由于逐行恢复太麻烦,所以我索性重新导入一次student数据库表。删除数据库表drop table student,然后再按原来的导入方法导入即可。(3) 对学生数据库中的三张表分别插入数据l student表插入合法数据查询表格确实已经插入成功:l student表插入不规范数据第一个是在属性为“常量、常量表达式和变量”的地方用了test插入值,属性不匹配,故插入失败。第二个是出现重复主键,故插入失败。l sc表插入合法数据插入成功。l course 表插入合法数据(4) 对表中的数据进行修改利用主键将course表中“数据库原理”的学分由3学分改为5学分。操作命令行如下:update course set credit=5 where cno=C02;操作结果截图如下:(5) 对表中的数据进行删除操作删除student中加入的数据,按照主键删除。删除成功2. 视图实验:视图的建立、修改、删除(1) 建立学生选修课程信息视图包括以下内容:学生学号、姓名、所在系、选修的课程编号、课程名称、成绩任何不是逻辑模型的一部分但作为虚关系对用户可见的关系称为视图。语句为:create view isee as (select student.sno,sname,dept,o,cname,grade from student,course,sc where student.sno=sc.sno and o=o);(2) 修改以上视图,增加学生所在班级信息语句为:alter view isee as (select student.sno,sname,dept,o,cname,grade,classno from student,course,sc where student.sno=sc.sno and o=o);(3) 对以上视图删除(4) 修改视图内容经过实验,我发现对于多个表组成的视图,无法进行修改。而对于单个表求得的视图,可以进行插入、删除等修改,且修改时视图和原表都会改变。3. 对整个过程进行批命令操作1) 在创建的数据库db的目录下创建.txt文本文件2) 重新开启一个命令行窗口,运行批处理文件先输入两次cd .,最后退回到C:>,再输入cd ProgramDataMySQLMySQL Server 5.5Datadb,然后输入下图中命令行。即可运行批处理文件。创建一个视图,查询视图内容;删除视图,查询视图内容,即检查删除效果。3) 运行上述操作后,若不删除视图,则可以在原来MySQL命令行中对视图isee进行操作。将txt文件中删除视图的操作去掉,即去掉后两句命令,则有六 实验小结这次实验主要在创建视图时遇到了一些问题,但这些问题源于课堂学习上的不熟悉。主要是在创建视图的语句中,对于两个限制条件,我直接用逗号隔开而不是使用and,从而导致了错误。另外,对于多个表中同名的属性,应该确定是选择哪一个表中的属性,即应该用student.sno或者sc.sno,而不能单独用sno。总体上这次实验还是比较简单的,只是因为内容比较多,而显得略为复杂了些。不过通过此次实验,我也进一步熟悉了MySQL的操作和SQL语句,对课堂所学知识做了查漏补缺和进一步的巩固。在此次实验中,我还学到了一些需要注意的良好的数据库语言习惯。l 在创建表时尽量设置主键,这样在插入数据时系统可以自动检测该记录是否与已存在的记录冲突。l 视图的名字不能与表的名字相同,因为视图与表一样,都会存储在数据库中。