武汉理工大学数据库实验报告.docx_第1页
武汉理工大学数据库实验报告.docx_第2页
武汉理工大学数据库实验报告.docx_第3页
武汉理工大学数据库实验报告.docx_第4页
武汉理工大学数据库实验报告.docx_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

学生学号 实验成绩学 生 实 验 报 告 书实验课程名称数据库系统原理开 课 学 院计算机科学与技术学院指导教师姓名张华伟学 生 姓 名学生专业班级软件工程zy1302班2015-2016学年第一学期实验课程名称: 数据库系统原理 实验项目名称熟悉和安装MySQL实验成绩实 验 者专业班级软件zy1302班组 别同 组 者实验日期2015年9月20日第一部分:实验分析与设计1 实验内容描述(问题域描述)实验目的:(1) 熟悉并掌握MySQL数据库的下载和安装流程。(2) 熟悉MySQL管理工具的使用。(3) 了解库和表的基本操作。实验内容:(1) 下载数据库(2) 安装数据库(3) 熟悉数据库的基本操作二.实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)(1) 下载数据库:百度搜索“MySQL”,进入官网下载最新版MySQL安装包(2) 安装数据库:打开下载好的安装包,根据提示完成安装(我只安装了MySQL Server)(3) 熟悉数据库的基本操作:进入命令行操作界面,进入MySQL,尝试简单的操作三、主要仪器设备及耗材 PC机第二部分:实验调试与结果分析一、 调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)1. 下载数据库2. 安装数据库3. 熟悉数据库的基本操作二、实验结果分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)l 数据库下载:MySQL数据库安装软件有解压版和安装版,解压版需要配置环境参数,而安装版的可以自动配置参数,这里主要介绍安装版。下载数据库可以去官网下载,但官网很多版本不提供下载,可以通过百度等搜索引擎查找自己需要版本的下载。这里以mysql5.6.16.0为例:百度搜索“mysql5.6.16.0下载”,这里可以进入咕咕猪下载站进行下载。l 数据库的安装的注意事项:打开安装好的安装包,根据提示一步一步安装。l 熟悉MySQL环境:1 命令行操作(1)由开始-所有程序-MySQL-MySQL Server5.6-MySQL 5.6 Command Line Client,进入命令行操作界面,输入数据库密码,回车:(2)库的操作:创建:create database dac;(创建数据库)显示:show databases;(查看数据库)调用:use dac;删除:drop database dac;(删除数据库)(3) 表的简单操作:创建:create table chen_penson (id int(8) primary key auto_increment,name varchar(10),age int(4),email varchar(20);描述:desc chen_penson;(描述表结构)修改:alter table chen_penson add sex varchar(4);(添加一个新的字段) alter table chen_penson drop age;(删除一个字段) alter table chen_penson change sex xxxx char(20);(修改字段类型)重命名: rename table chen_person to wsy;(修改表名称)删除:drop table wsy;(删除表)2 MySQL可视化工具个人感觉Navicat For MySQL非常好用,下图便是它的界面:三、小结、建议及体会 通过本次实验,我熟悉并掌握MySQL数据库的下载和安装流程,熟悉MySQL管理工具的使用,了解库和表的基本操作。因为在之后的各个实验中都要用到SQL,所以我认为这次实验是一种基础练习,一定要打好基础才能完成之后的实验。总而言之,本次实验我收获很多,以后也会继续努力学习数据库,认真完成每一次实验。实验课程名称: 数据库对象增删改查基本操作 实验项目名称数据库对象增删改查基本操作实验成绩实 验 者专业班级软件zy1302班组 别同 组 者实验日期2015年10月5日第一部分:实验分析与设计一.实验内容描述(问题域描述)实验目的:(1)学会对数据库表进行增删改查基本数据操作(2)学会修改数据库表结构实验内容:新建数据库stuDB,创建学生信息表Student,实体定义的属性如下:Student: (学号,姓名,性别,出生日期,民族,所属班级,籍贯,手机号)对数据库表进行增删改查基本操作二.实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)新建数据库stuDB,创建学生信息表Student,实体定义的属性如下:Student: (学号,姓名,性别,出生日期,民族,所属班级,籍贯,手机号)对数据库表进行增删改查基本操作三、主要仪器设备及耗材 PC机第二部分:实验调试与结果分析一、 调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)新建数据库stuDB,创建学生信息表Student,实体定义的属性如下:Student: (学号,姓名,性别,出生日期,民族,所属班级,籍贯,手机号)对数据库表进行增删改查基本操作二、实验结果分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)1 设计数据库表结构 学生信息表(Student)字段名描述数据类型字段权限studentNo学号char(10)Primarykey studentName姓名Varchar(30)Not null sex性别char(2)Not nullbirthday出生日期dateNot null nation民族varchar(30)Not nullclass所属班级varchar(30)Not nullhomeTown籍贯varchar(30)Not nulphoneNumber手机号码varchar(30)Not nul2 进入命令行界面(开始-所有程序-MySQL-MySQL Server5.6-MySQL 5.6 Command Line Client,也可由其他方式进入),创建数据库stuDB,创建数据库表Student。(1)建立数据库:create database if not exists stuDB;可使用“SHOW DATABASES”查看系统存在哪些数据库(2)建立Student表: CREATE TABLE student ( studentNo char(10) NOT NULL, studentName varchar(30) NOT NULL, sex char(2) NOT NULL, birthday date NOT NULL, nation varchar(20) NOT NULL, class varchar(30) NOT NULL, homeTown varchar(30) NOT NULL, phoneNumber varchar(30) NOT NULL, PRIMARY KEY (studentNo)ENGINE=InnoDB DEFAULT CHARSET=utf8;可使用“DESC student”查看表结构3 数据库表的增删改查基本操作(1) 在student表中添加3条记录单行插入:INSERTINTO student(studentNo,studentName,sex,birthday,nation,class,homeTown,phoneNumber)VALUES(00001,zhangsan,1,1991-10-20,汉,信息1203,湖北武汉;多行插入:INSERTINTO student(studentNo,studentName,sex,birthday,nation,class,homeTown,phoneNumber)VALUES(00002,李丽,0,1993-11-20,汉,信息1203,云南,(00003,王五,1,1992-11-25,蒙古,信息1203,山西;(2) 将00001的手机号修改为:UPDATE student SET phoneNumberHERE studentNo=00001;(3) 查询学号00003的学生姓名、出生日期、籍贯:SELECT studentName,birthday,homeTownFROM student WHERE studentNo=00003;(4) 删除学号00003的学生:SELECT studentName,birthday,homeTownFROM student;DELETE FROM student WHERE studentNo=00003;SELECT studentName,birthday,homeTownFROM student;4 修改数据库表结构(1) 建表:准备一张class表,表结构为:班级(班级编号,班级名称,年级)CREATE TABLE class ( classNo char(10) NOT NULL, className varchar(30) NOT NULL, grade smallint(6) NOT NULL, PRIMARY KEY (classNo);(2)添加列:alter table class add institute varchar(50);(3) 修改列:修改列属性alter table class modify institute varchar(30);修改列名alter table class change column institute insti varchar(30);(4) 删除列:alter table class drop column insti;三、小结、建议及体会 通过本次实验,我学会对数据库表进行增删改查基本数据操作,也学会修改数据库表结构。这其中包括了很多的实践,有实践有一定会有失败,但是在老师同学的帮助下,也通过自己的努力,最终完成了本次实验,非常有成就感。接下来的实验,我会认真对待的!实验课程名称: 数据库的查询和视图 实验项目名称数据库的查询和视图实验成绩实 验 者专业班级软件zy1302班组 别同 组 者实验日期2015年10月20日第一部分:实验分析与设计2 实验内容描述(问题域描述)实验目的:(1)掌握SELECT语句的基本用法(2)掌握子查询的表示(3)掌握连接查询的表示(4)掌握SELECT语句的GEOUP BY子句的作用和使用方法(5)掌握SELECT语句的ORDER BY子句的作用和使用方法(6)熟悉视图的概念和作用(7)掌握视图的创建方法(8)掌握如何查询和修改视图实验内容:使用SQL语句建立企业员工管理数据库YGGL,包含3张表:(1) Employees:员工信息表 (2)Departments:部门信息表 (3)Salary:员工薪水情况表 样本数据如下:表实验2.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表实验2.2 Departments表数据样本部门号部门名称备注部门号部门名称备注1财务部null4研发部null2人力资源部null5市场部null3经理办公室null表实验2.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 在其中插入多行数据记录,然后修改和删除一些记录。二.实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)l 设计数据库l SELECT语句的基本使用l 子查询的使用l 连接查询的使用l GROUP BY、ORDER BY和LIMIT子句的使用l 创建视图l 查询视图l 更新视图l 删除视图三、主要仪器设备及耗材 PC机第二部分:实验调试与结果分析一、 调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)l 设计数据库l SELECT语句的基本使用l 子查询的使用l 连接查询的使用l GROUP BY、ORDER BY和LIMIT子句的使用l 创建视图l 查询视图l 更新视图l 删除视图二、实验结果分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)1 设计数据库(1)设计数据库表结构表实验2.4 Employees表结构列名数据类型长度是否允许空值说明employeeIDchar6否员工编号,主键namechar10否姓名educationchar4否学历birthdaydate16否出生日期sexchar2否性别workyeartinyint1是工作时间addressvarchar20是地址phonenumberchar12是电话departmentIDchar3否员工部门号,外键表实验2.5 Departments表结构列名数据类型长度是否允许空值说明departmentIDchar3否部门编号,主键departmentNamechar20否部门名notetext16是备注表实验2.6 Salary表结构列名数据类型长度是否允许空值说明employmeeIDchar6否员工编号,主键Incomefloat8否收入Outcomefloat8否支出(2)设计数据库语句CREATE DATABASE IF NOT EXISTS YGGL;USE YGGL;CREATE TABLE Departments ( DepartmentID char(3) NOT NULL, DepartmentName char(20) NOT NULL, Note text(16), PRIMARY KEY(DepartmentID);INSERTINTO Departments(DepartmentID,DepartmentName) VALUES (1,财务部), (2,人力资源部), (3,经理办公室), (4,研发部), (5,市场部);CREATE TABLE Employees ( EmployeeID char(6) NOT NULL, Name char(10) NOT NULL, Education char(4) NOT NULL, Birthday date NOT NULL, Sex char(2) DEFAULT 1, WorkYear tinyint(1), Address varchar(20), PhoneNumber char(12), DepartmentID char(3) NOT NULL, PRIMARY KEY(EmployeeID);INSERT INTO EmployeesVALUES (000001,王林,大专,1966-01-23,1,8,中山路32-1-508,83355668,2), (010008,伍荣华,本科,1976-03-28,1,3,北京东路100-2,83321132,1), (020010,王向荣,硕士,1982-12-09,1,2,四排路10-0-108,83792361,1), (020018,李丽,大专,1962-07-23,0,6,中山东路32-1-508,83413301,1), (102201,刘明,本科,1972-10-18,1,3,虎踞路100-2,83606608,5), (102208,朱骏,硕士,1965-09-28,1,2,牌楼巷5-3-106,84708817,5), (108991,钟敏,硕士,1979-05-23,0,4,中山路10-3-105,83346722,3), (111006,张世兵,本科,1974-06-13,1,1,解放路34-1-203,84563418,5), (210678,林涛,大专,1977-04-02,1,2,中山北路24-35,83467336,3), (302566,李玉敏,本科,1968-09-20,1,3,中山路32-1-514,85765991,4), (308759,叶凡,本科,1978-06-03,1,2,北京西路3-7-52,83308901,4), (504209,陈琳琳,大专,1969-09-13,0,5,汉中路120-4-12,84468158,4);CREATE TABLE Salary ( EmployeeID char(6) NOT NULL, Income float(8) NOT NULL, Outcome float(8) NOT NULL, PRIMARY KEY(EmployeeID);INSERTINTO Salary VALUES (000001,2100.8,123.09), (010008,1582.62,88.03), (102201,2569.88,185.65), (111006,1987.01,79.53), (504209,2066.15,108.0), (302566,2980.7,210.2), (108991,3259.98,281.52), (020010,2860.0,298.0), (308759,2531.98,199.08), (210678,2243.0,121.0), (102208,1980.0,100.0), (020018,2347.68,180.0);(3)进入命令行界面建立以上数据库,可以直接将上面代码拷贝进去。2 SELECT语句的基本使用(1)用SELECT语句查询Departmrnts表的所有记录。select * from Departments;(2)用SELECT语句查询Salary表的所有记录。select * from Salary;(3)用SELECT语句查询Departments表的部门号和部门名称列。select DepartmentID,DepartmentNamefrom Departments;(4)查询Employees表中部门号和性别,要求使用DISTINCT消除重复行。select distinct DepartmentID,Sexfrom Employees;(5)查询月收入高于2000的员工号码。select EmployeeID from Salary where Income2000;(6)查询所有1970以后出生的员工的姓名和住址。 select Name,Address from Employees where Birthday=1970-0-0;(7)查询所有财务部门的员工号码和姓名。select EmployeeID,Namefrom Employeeswhere DepartmentID=( select DepartmentID from Departments where DepartmentName=财务部);(8)计算Salary表中员工月收入的平均数。 select avg(Income) from Salary;(9)获得Employees表中的最大的员工号码。select max(EmployeeID) from Employees;(10)计算Salary表中所有员工的总支出。select sum(Outcome) from Salary;(11) 查询财务部官员的最高和最低实际收入。select max(Income-Outcome),min(Income-Outcome)from Employees,Departments,Salarywhere Employees.EmployeeID=Salary.EmployeeID and Employees.DepartmentID=Departments.DepartmentID and DepartmentName=财务部;(12) 找出所有其地址含有“中山”的雇员的号码及部门号。select EmployeeID,DepartmentIDfrom Employeeswhere Address like %中山%;(13) 查找员工号码中倒数第二个数字为0的姓名、地址和学历。select Name,Address,Educationfrom Employeeswhere EmployeeID like %0_;(14) 找出所有部门“1”或“2”工作的雇员的号码。select EmployeeIDfrom Employees,Departmentswhere Employees.DepartmentID=Departments.DepartmentID and Departments.DepartmentID in(1,2);3 子查询的使用用子查询的方法查找所有收入在2500以下的雇员的情况。select *from Employeeswhere EmployeeID in( select EmployeeID from Salary where Income2500);4 连接查询的使用(1)查询每个雇员的情况及其工作部门的情况。select Employees.*,Departments.*from Employees,Departments,Salarywhere Employees.EmployeeID=Salary.EmployeeID and Employees.DepartmentID=Departments.DepartmentID;(2)使用内连接的方法查找不在财务部工作的所有员工信息。select Employees.*from Departments join Employees on Departments.DepartmentID=Employees.DepartmentIDwhere DepartmentName!=财务部;(3)使用外连接方法查找所有员工的月收入。select Incomefrom Employees left outer join Salary on Employees.EmployeeID=Salary.EmployeeID;5 GROUP BY、ORDER BY和LIMIT子句的使用(1)按部门列出在该部门工作的员工的人数。select DepartmentID,count(DepartmentID)from Employeesgroup by DepartmentID;(2)按员工的工作年份分组,统计各个工作年份的人数,如工作1年的多少人,工作2年的多少人。select WorkYear,count(WorkYear)from Employeesgroup by WorkYear;(3)在ORDER BY子句中使用子查询,查询员工姓名、性别和工龄信息,要求按实际收入从大到小排列。select Name,sex,WorkYearfrom Employees,Salarywhere Employees.EmployeeID=Salary.EmployeeIDorder by (Income-Outcome) desc;6 创建视图(1)创建YGGL数据库上的视图DS_VIEW,视图包含Departments表的全部列。create or replace view ds_vie

温馨提示

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

评论

0/150

提交评论