《数据库原理及应用》实验报告.doc_第1页
《数据库原理及应用》实验报告.doc_第2页
《数据库原理及应用》实验报告.doc_第3页
《数据库原理及应用》实验报告.doc_第4页
《数据库原理及应用》实验报告.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

学院实验报告学号: 姓名: 班级: 同组者: 课程名称: 数据库原理及应用 指导老师: 实验成绩: 数据库原理及应用实验报告实验课程: 数据库原理及应用 学 号: 2012044543003 学生姓名: 陈洪波 班 级: 12通信工程1班 2015年 4 月 22 日实验一 创建和维护数据库一、实验目的(1)掌握在Windows 平台下安装与配置MySQL 5.5 的方法。(2)掌握启动服务并登录MySQL 5.5 数据库的方法和步骤。(3)了解手工配置MySQL 5.5 的方法。(4)掌握MySQL 数据库的相关概念。(5)掌握使用Navicat 工具和SQL 语句创建数据库的方法。(6)掌握使用Navicat 工具和SQL 语句删除数据库的方法。二、实验要求(1)学生提前准备好实验报告,预习并熟悉实验步骤;(2)遵守实验室纪律,在规定的时间内完成要求的内容;(3)12人为1小组,实验过程中独立操作、相互学习。三、实验内容及步骤(1)在Windows 平台下安装与配置MySQL 5.5.36 版。进入到下载页面,没看到5.5.36的版本,就选择了32位的5.5.43版本的来安装(2)在服务对话框中,手动启动或者关闭MySQL 服务。(3)使用Net 命令启动或关闭MySQL 服务。(4)分别用Navicat 工具和命令行方式登录MySQL。下面用Nacicat工具登录Mysql,连接测试成功的页面如下:登录成功的页面截图如下:运用行命令方式登录成功的页面如下:(5)在my.ini 文件中将数据库的存储位置改为D:MYSQLDATA。步骤总共有四步: 停止Mysql服务 打开MySQL默认的安装文件夹C:Program FilesMySQLMySQL Server 5.1中的my.ini文件,点击记事本顶部的“编辑”,“查找”,在查找内容中输入datadir后并点击“查找下一个”转到“Path to the database root数据库存储主路径”参数设置,找到datadir=C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.1/Data/即是默认的数据库存储主路径设置,现将它改到D:MYSQLDATA即可,正确的设置是datadir=D:MYSQLDATA。将老的数据库存储主路径中的数据库文件和文件夹复制到新的存储主路径重新启动MYSQL服务,这样子数据库的存储路径就完成了。(6)创建数据库。 使用Navicat 创建学生信息管理数据库gradem。 使用SQL 语句创建数据库MyDB。语句截图如下:(7)查看数据库属性。 在Navicat 中查看创建后的gradem 数据库和MyDB 数据库的状态,查看数据库所在的文件夹。 利用SHOW DATABASES 命令显示当前的所有数据库。(8)删除数据库。 使用Navicat 图形工具删除gradem 数据库。 使用SQL 语句删除MyDB 数据库。 利用SHOW DATABASES 命令显示当前的所有数据库。(9)使用配置向导修改当前密码,并使用新密码重新登录。(10)配置Path 变量,确保MySQL 的相关路径包含在Path 变量中。四、思考题My SQL的数据库文件有几种?扩展名分别是什么?答:一个格式文件-.frm,一个数据文件-.isd,一个索引文件-.isd。五、实验总结1、收获答:(1)在这次的实验过程中学习到了Mysql的安装过程和基本的配置,基本了解了用图形化工具Navicat和用SQL语言来删除以及创建数据库的方法。(2)熟练掌握了数据库启动的步骤和方法,通过查阅资料深刻认识到了数据库的强大功能,易于管理的特点对人们平时工作处理一些数据表格的帮助非常巨大。2、存在的问题答:还不能熟练地记住一些SQL语句,接下来得在这一方面下多点功夫。实验二 管理表一、实验目的(1) 掌握表的基础知识。(2) 掌握使用Navicat管理工具和SQL语句创建表的方法。(3) 掌握表的修改、查看、删除等基本操作方法。二、实验要求(1)学生提前准备好实验报告,预习并熟悉实验步骤;(2)遵守实验室纪律,在规定的时间内完成要求的内容;(3)12人为1小组,实验过程中独立操作、相互学习。三、实验内容及步骤(1)在gradem数据库中创建表4.18表4.22所示结构的表。表4.18 student表的表结构字段名称数据类型长度小数位数是否允许NULL值说明snochar10否主码snamevarchar8是ssexchar2是sbirthdaydatetime是saddressvarchar50是sdeptchar16是specialityvarchar20是表4.19 course表(课程名称表)的表结构字段名称数据类型长度小数位数是否允许NULL值说明cnochar5否主码cnamevarchar20否表4.20 sc表(成绩表)的表结构字段名称数据类型长度小数位数是否允许NULL值说明snochar10否组合主码、外码cnochar5否组合主码、外码degreedecimal41是1100表4.21 teacher表(教师表)的表结构字段名称数据类型长度小数位数是否允许NULL值说明tnochar3否主码tnamevarchar8是tsexchar2是tbirthdaydate是tdeptchar16是表4.22 teaching表(授课表)的表结构字段名称数据类型长度小数位数是否允许NULL值说明cnochar5否组合主码、外码tnochar3否组合主码、外码ctermtinyint10是110 (2) 向表4.18至表4.22输入数据记录,见表4.23表4.27。表4.23 学生关系表studentsnosnamessexsbirthdaysaddresssdeptspeciality20050101李勇男1987-01-12山东济南计算机工程系计算机应用20050201刘晨女1988-06-04山东青岛信息工程系电子商务20050301王敏女1989-12-23江苏苏州数学系数学20050202张立男1988-08-25河北唐山信息工程系电子商务表4.24 课程关系表coursecnocnamecnocnameC01数据库C03信息系统C02数学C04操作系统 表4.25 成绩表scsnocnodegree20050101C019220050101C028520050101C038820050201C029020050201C0380 表4.26 教师表teachertnotnametsextbirthdaytdept101李新男1977-01-12计算机工程系102钱军女1968-06-04计算机工程系201王小花女1979-12-23信息工程系202张小青男1968-08-25信息工程系 表4.27 授课表teachingcnotnoctermC011012C021021C032013C042024 (3) 修改表结构。 向student表中增加“入学时间”列,其数据类型为日期时间型。直接添加一个栏位,然后再进行相应的参数约束。 将student表中的sdept字段长度改为20。 直接在navicat的设计表里面改再保存就可以了。 将student表中的speciality字段删除。直接在图形工具里面删除整个栏位再保存就可以了 删除student表。(4) 利用SQL命令(create table、alter table、drop table)完成对表的操作利用create talbe 命令完成student表和course表的定义。Student表的定义如下:Use gradem Creat table student(sno char(10) primary key,Sname char(8),Ssex char(2),sbirthday ,Saddress char(50),Sdept char(16),Speciaity varchar(20);Course表格的定义代码如下;Use gradem Creat table course(cno char(5) primary key,cname char(20);利用drop table命令实现(3)中的。Drop table student;四、思考题 (1) MySQL中的数据库文件有几种?扩展名分别是什么?答:数据库文件- .mdf,次数据文件- .ndf,日志文件- .ldf(2) 在定义基本表语句时,NOT NULL参数的作用是什么?答:设置列的分量不为空值(3) 主码可以建立在“值可以为NULL”的列上吗?答:不行。五、实验总结:1、收获答:学会了在图形工具navicat里面建立表格跟输入数据的基本操作,在命令窗口会使用SQL语句查询已建好的表格的各种信息。2、存在的问题实验三 简单查询单表无条件和有条件查询一、实验目的(1) 掌握SELECT语句的基本用法。(2) 使用WHERE子句进行有条件的查询。(3) 掌握使用IN和NOT IN,BETWEENAND和NOT BETWEENAND来缩小查询范围的方法。(4) 利用LIKE子句实现字符串匹配查询。二、实验要求1、学生提前准备好实验报告,预习并熟悉实验步骤;2、遵守实验室纪律,在规定的时间内完成要求的内容;3、12人为1小组,实验过程中独立操作、相互学习。三、实验内容及步骤在上次实验建立的Gradem或Gradem1数据库中完成下面查询:(1) 查询所有学生的基本信息、所有课程的基本信息和所有学生的成绩信息(用三条SQL语句)。学生的基本信息:select * from student;所有课程的基本信息:select * from course;所有学生的成绩信息:select degree from student;(2) 查询所有学生的学号、姓名、性别和出生日期。Select sno,sname,sbirthday from student;(3) 查询所有课程的课程名称。Select cname from course;(4) 查询前10门课程的课号及课程名称。Select cno,cname from student limit 10;(5) 查询所有学生的姓名及年龄。Select sname,sage from student;(6) 查询所有年龄大于18岁的女生的学号和姓名。Select sno,sname from studentWhere sage18;(7) 查询所有男生的信息。Select * from studentWhere ssex=男;(8) 查询所有任课教师的姓名(Tname)和所在系别(Tdept)。Select tname,tdept from teacher;(9) 查询“电子商务”专业的学生姓名、性别和出生日期。Select sname,ssex,sbirthday from studentWhere speciality=电子商务;(10) 查询Student表中的所有系名。Select sdept from student;(11) 查询“C01”课程的开课学期。Select cterm from teachingWhere cno in(C01);(12) 查询成绩在8090分之间的学生学号及课号。Select sno,cno from scWhere degree 80 and degree 90;(13) 查询在1970年1月1日之前出生的男教师信息。Select * from teacherWhere tsex=男 and tbirthday1970;(14) 输出有成绩的学生学号。Select sno from sc where degree in not null;(15) 查询所有姓“刘”的学生信息。Select * from student where sname regexp刘;(16) 查询生源地不是山东省的学生信息。Select * from student where not saddress=山东青岛 and sadress=山东济南;(17) 查询成绩为79分、89分或99分的记录。(18) 查询名字中第二个字是“小”字的男生的学生姓名和地址。Select sname,saddress from student where sname like _小%;(19) 查询名称以“计算机_”开头的课程名称。Select speciality from student where sdept regexp 计算机;(20) 查询计算机工程系和软件工程系的学生信息。Select * from student where sdept =计算机工程系 and sdept=软件工程系;四、思考题1、LIKE的通配符有哪些?分别代表什么含义?答:有四种。%:代表任意长度的字符串,_:代表一个任意的字符,:表示指定范围内任意单个字符,:表示不指定范围内任意单个字符2、知道学生的出生日期,如何求出其年龄?答:datediff(year,数据库里的时间段,getdate() 就是当前时间减去数据库里的时间得到年。3、IS能用“=”来代替吗?4、关键字ALL和DISTINCT有什么不同的含义?答:ALL表示所有的字段,有重复的字段,都显示,DISTINCT表示如果有重复的,只取一条,过滤掉重复的字段。四、实验总结:1、收获从学习可以知道:数据库的内容是从数据表的创建和修改开始的,数据表的建立关系数据库的基本结构,它用来存储数据已经定义的属性,在数据表的操作中有:查看表的信息,查看表的属性,修改表中的数据,删除表中的数据以及修改、删除表的操作。从学习和实验报告的完成过程中我了解到,表是数据库数据中重要的一个数据对象,表建立的好坏直接影响到数据库的使用效果,表中的内容越具体对表越有利,然后对数据库中的各种应用也有着各种各样的便利。2、存在的问题实验四 简单查询分组与排序一、实验目的:(1) 利用GROUP BY子句对查询结果分组。(2) 利用ORDER BY子句对查询结果排序。(3) 掌握聚集函数的使用方法。二、实验要求1、学生提前准备好实验报告,预习并熟悉实验步骤;2、遵守实验室纪律,在规定的时间内完成要求的内容;3、12人为1小组,实验过程中独立操作、相互学习。三、实验内容及步骤在Gradem或Gradem1数据库中完成下面查询:(1) 统计有学生选修的课程的门数。 (2) 计算“c01”课程的平均成绩。(3) 查询选修了“c03”课程的学生的学号及其成绩,查询结果按分数降序排列。(4) 查询各个课程号及相应的选课人数。(5) 统计每门课程的选课人数和最高分。(6) 统计每个学生的选课门数和考试总成绩,并按选课门数降序排列。(7) 查询选修了3门以上课程的学生学号。(8) 查询成绩不及格的学生学号及课号,并按成绩降序排列。(9) 查询至少选修一门课程的学生学号。(10) 统计输出各系学生的人数(11) 统计各系学生人数;各系的男、女生人数。(两条命令)(12) 统计各班人数;各班男、女生人数。(两条命令)(13) 统计各系的老师人数,并按人数升序排序。(14) 统计不及格人数超过10人的课程号。统计选修人数超过10人的课程号。(15) 查询软件系的男生信息,查询结果按出生日期升序排序,出生日期相同的按地址降序排序。三、思考题(1) 聚集函数能否直接使用在SELECT子句、HAVING子句、WHERE子句、GROUP BY子句中?答:可以使用在SELECT子句跟HAVING子句中,不可用在WHERE子句跟GROUP BY子句中。 (2) WHERE子句与HAVING子句有何不同?答:作用对象不同,WHERE子句作用于表和视图,HAVING子句作用于组。四、实验总结:1、收获通过本次实验使我更加了解一些常用的SQL语句:查询语句:select,添加语句:INSERT,删除语句:DELETE等,简单掌握了怎么给表分组以及表的排序查询。有些不太会的题目通过跟同学交流以及上网查询资料,基本都得到了解决,总的来说通过实验还能发现自己的不足之处,可以通过查缺补漏,印象会比较深刻。2、存在的问题一些查询语句的使用还不熟练,应该在以后多加练习,这样子才能更好地掌握这门语言的基本知识。实验五、六、七 多表查询一、实验目的(1) 掌握SELECT语句在多表查询中的应用。(2) 掌握多表连接的几种连接方式及应用。二、实验要求1、学生提前准备好实验报告,预习并熟悉实验步骤;2、遵守实验

温馨提示

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

评论

0/150

提交评论