您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 《数据库原理及应用实验》
《数据库原理与应用实验》实验报告册学年第学期学院:专业:年级:姓名:学号:任课教师:学院班级学号姓名2MySQL+Navicat安装步骤与下载地址百度地址:配置与简单使用百度地址:本文档所书写的代码,为本人纯手工敲打,并且通过软件测试成功,欢迎大家进行学习,如有错误,可联系本人邮箱2960223883@qq.com学院班级学号姓名3实验一创建和维护数据库一、实验目的(1)掌握在Windows平台下安装与配置MySQL5.5的方法。(2)掌握启动服务并登录MySQL5.5数据库的方法和步骤。(3)掌握MySQL数据库的相关概念。(4)掌握使用Navicat工具和SQL语句创建数据库的方法。(5)掌握使用Navicat工具和SQL语句删除数据库的方法。二、实验要求(1)学生提前准备好实验报告,预习并熟悉实验步骤;(2)遵守实验室纪律,在规定的时间内完成要求的内容;三、实验内容及步骤(1)在Windows平台下安装与配置MySQL5.5.36版。(2)在服务对话框中,手动启动或者关闭MySQL服务。(3)使用Net命令启动或关闭MySQL服务。(4)分别用Navicat工具和命令行方式登录MySQL。(5)在my.ini文件中将数据库的存储位置改为D:\MYSQL\DATA。(6)创建数据库。①使用Navicat创建学生信息管理数据库gradem。②使用SQL语句创建数据库MyDB。(7)删除数据库。①使用Navicat图形工具删除gradem数据库。②使用SQL语句删除MyDB数据库。四、思考题学院班级学号姓名4常见的数据库产品有哪些?五、实验总结1、收获2、存在的问题学院班级学号姓名5实验二管理表一、实验目的(1)掌握表的基础知识。(2)掌握使用Navicat管理工具和SQL语句创建表的方法。(3)掌握表的修改、查看、删除等基本操作方法。二、实验要求(1)学生提前准备好实验报告,预习并熟悉实验步骤;(2)遵守实验室纪律,在规定的时间内完成要求的内容;三、实验内容及步骤(1)在gradem数据库中创建表2.1~表2.5所示结构的表。表2.1student表的表结构字段名称数据类型长度小数位数是否允许NULL值说明snochar10否主码snamevarchar8是ssexchar2是sbirthdaydatetime是saddressvarchar50是sdeptchar16是specialityvarchar20是表2.2course表(课程名称表)的表结构字段名称数据类型长度小数位数是否允许NULL值说明cnochar5否主码cnamevarchar20否表2.3sc表(成绩表)的表结构字段名称数据类型长度小数位数是否允许NULL值说明snochar10否组合主码、外码cnochar5否组合主码、外码degreedecimal41是1~100表2.4teacher表(教师表)的表结构字段名称数据类型长度小数位数是否允许NULL值说明tnochar3否主码tnamevarchar8是tsexchar2是学院班级学号姓名6tbirthdaydate是tdeptchar16是表2.5teaching表(授课表)的表结构字段名称数据类型长度小数位数是否允许NULL值说明cnochar5否组合主码、外码tnochar3否组合主码、外码ctermtinyint10是1~10(2)向表2.1至表2.5输入数据记录,见表2.6~表2.10。表2.6学生关系表studentsnosnamessexsbirthdaysaddresssdeptspeciality20050101李勇男1987-01-12山东济南计算机工程系计算机应用20050201刘晨女1988-06-04山东青岛信息工程系电子商务20050301王敏女1989-12-23江苏苏州数学系数学20050202张立男1988-08-25河北唐山信息工程系电子商务表2.7课程关系表coursecnocnamecnocnameC01数据库C03信息系统C02数学C04操作系统表2.8成绩表scsnocnodegree20050101C019220050101C028520050101C038820050201C029020050201C0380表2.9教师表teachertnotnametsextbirthdaytdept101李新男1977-01-12计算机工程系102钱军女1968-06-04计算机工程系201王小花女1979-12-23信息工程系202张小青男1968-08-25信息工程系表2.10授课表teachingcnotnocterm学院班级学号姓名7C011012C021021C032013C042024(3)在navicat下修改表结构。①向student表中增加“入学时间”列,其数据类型为日期时间型。②将student表中的sdept字段长度改为20。③将student表中的speciality字段删除。④删除student表。(4)利用SQL命令(createtable、altertable、droptable)完成对表的操作①利用createtalbe命令完成student表和course表的定义。②利用altertable、droptable命令实现(3)中的所有任务。学院班级学号姓名8四、思考题(1)在定义基本表语句时,NOTNULL参数的作用是什么?(2)主码可以建立在“值可以为NULL”的列上吗?五、实验总结:1、收获2、存在的问题学院班级学号姓名9实验三简单查询——单表无条件和有条件查询一、实验目的(1)掌握SELECT语句的基本用法。(2)使用WHERE子句进行有条件的查询。(3)掌握使用IN和NOTIN,BETWEEN…AND和NOTBETWEEN…AND来缩小查询范围的方法。(4)利用LIKE子句实现字符串匹配查询。二、实验要求1、学生提前准备好实验报告,预习并熟悉实验步骤;2、遵守实验室纪律,在规定的时间内完成要求的内容;三、实验内容及步骤在上次实验建立的Gradem或Gradem1数据库中完成下面查询:(1)查询所有学生的基本信息、所有课程的基本信息和所有学生的成绩信息(用三条SQL语句)。SELECT*FROMstudent;SELECT*FROMcourse;SELECT*FROMsc;(2)查询所有学生的学号、姓名、性别和出生日期。SELECTsno,sname,ssex,sbirthdayFROMstudent;(3)查询所有课程的课程名称。SELECTcnameFROMcourse(4)查询前10门课程的课号及课程名称。SELECTcno,cnameFROMcourseWHEREcno=10学院班级学号姓名10(5)查询所有学生的姓名及年龄。SELECTsname,year(now())-year(sbirthday)FROMstudent;(6)查询所有年龄大于18岁的女生的学号和姓名。SELECTsno,snameFROMstudentWHEREssex='女'andyear(now())-year(sbirthday)18(7)查询所有男生的信息。SELECT*FROMstudent,teacherWHEREssex='男'andtsex='男'(8)查询所有任课教师的姓名(Tname)和所在系别(Tdept)。SELECTtname,tdeptFROMteacher(9)查询“电子商务”专业的学生姓名、性别和出生日期。SELECTsname,ssex,sbirthdayFROMstudentWHEREsdept='电子商务'(10)查询Student表中的所有系名。SELECTsdeptFROMstudent(11)查询“C01”课程的开课学期。SELECTctermFROMteachingWHEREcno='c01'(12)查询成绩在80~90分之间的学生学号及课号。SELECTsno,cnoFROMscWHEREdegreeBETWEEN80and90学院班级学号姓名11(13)查询在1970年1月1日之前出生的男教师信息。SELECT*FROMteacherWHEREtbirthday'1970-01-01'andtsex=’男’;(14)输出有成绩的学生学号。SELECTsnoFROMscWHEREdegreeisNOTNULL;(15)查询所有姓“刘”的学生信息。SELECT*FROMstudentWHEREsnameLIKE'刘%'(16)查询生源地不是山东省的学生信息。SELECT*FROMstudentWHEREsaddressNOTLIKE'山东%'(17)查询成绩为79分、89分或99分的记录。SELECT*FROMscWHEREdegree='79'ordegree='89'ordegree='99'(18)查询名字中第二个字是“小”字的男生的学生姓名和地址。SELECTsname,saddressFROMstudentWHEREssex='男'andsnameLIKE'_小'(19)查询名称以“计算机_”开头的课程名称。SELECTcnameFROMcourseWHEREcnameLIKE'计算机_'学院班级学号姓名12(20)查询计算机工程系和软件工程系的学生信息。SELECT*FROMstudentWHEREsdept='计算机工程系'ORsdept='软件工程系'四、思考题1、LIKE的通配符有哪些?分别代表什么含义?通配符含义%有零个或更多个字符组成的任意字符串_任意单个字符[]用于指定范围,例如[A~F],表示A~F范围内的任何单个字符[^]表示指定范围之外的,例如[^A~F],表示A~F范围以外的任何单个字符。2、知道学生的出生日期,如何求出其年龄?SELECTyear(now())-year(sbirthday)FROMstudent;3、IS能用“=”来代替吗?不能is是用来判断null的,比如remarkisnull或者remarkisnotnull=是用来直接比较值的。4、关键字ALL和DISTINCT有什么不同的含义?ALL表示所有的字段,有重复的2条,2条都显示,DISTINCT表示如果有重复的,只取一条。五、实验总结:1、收获经过这节数据库课程的学习,我基本上掌握了创建数据库以及对数据库的操作的基础知识。学习了SQL数据库中的增、删、改、查等功能,数据库这门课涉及到以前的知识不多,是一门从头学起的课程,即使基础不是很好,只要认真听讲、复习功课,还是一门比较容易掌握的课。2、存在的问题不够熟悉对数据库系统的操作,不会运用快捷键,需要更多的练习和操作。学院班级学号姓名13实验四简单查询——分组与排序一、实验目的:(1)利用GROUPBY子句对查询结果分组。(2)利用ORDERBY子句对查询结果排序。(3)掌握聚集函数的使用方法。二、实验要求1、学生提前准备好实验报告,预习并熟悉实验步骤;2、遵守实验室纪律,在规定的时间内完成要求的内容;三、实验内容及步骤在Gradem或Gradem1数据库中完成下面查询:(1)统计有学生选修的课程的门数。SELECTCOUNT(DISTINCTcno)FROMcourse(2)计算“c01”课程的平均成绩。SELECTAVG(degree)FROMscWHEREcno='c01';(3)查询选修了“c03”课程的学生的学号及其成绩,查询结果按分数降序排列。SELECTsno,degreeFROMscWHEREcno='c03'ORDERBYdegreeDESC;(4)查询各个课程号及相应的选课人数。SELECTcno,COUNT(sno)F
本文标题:《数据库原理及应用实验》
链接地址:https://www.777doc.com/doc-4298394 .html