电子科技大学数据库原理及应用实验报告计算机学院Word格式文档下载.docx
《电子科技大学数据库原理及应用实验报告计算机学院Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《电子科技大学数据库原理及应用实验报告计算机学院Word格式文档下载.docx(19页珍藏版)》请在冰点文库上搜索。
![电子科技大学数据库原理及应用实验报告计算机学院Word格式文档下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/4/94005524-55e6-49fc-8959-70ec049c5365/94005524-55e6-49fc-8959-70ec049c53651.gif)
创立、备份与恢复数据库
二、实验学时:
2
三、实验内容和目的:
本实验要修业生掌握创立数据库的方法及有关操作,向数据库中增添样本数
据,学习SQLSERVER数据库的恢复和备份。
四、实验原理:
使用数据库管理系统DB、DDL创立数据库及数据库对象
五、实验器械(设施、元器件)
MySQLWorkBench,安装了MySQL的阿里云服务器一台
六、实验步骤:
远端使用,从MySQL官网上配置好MySQL5.7的源以后安装启动服务
安装好MySQLServer5.7以后配置好安全选项,比方封闭远程root登录保证安全,翻开允
许远程连结数据库等
使用root账号登录,创立一个一般用户(如图)
为了方便起见给用户ROOT操作权限
翻开本机的MySQLWorkBench
新建一个查问,开始写建库建表的语句
createtabledep(
depidvarchar(8)primarykey,
depanmevarchar(20)notnull
);
createtableteacher(
tidvarchar(8)primarykey,
tnamevarchar(8)notnull,
titlevarchar(10),
depidvarchar(20),
createtablestudent(
sidvarchar(11)primarykey,
snamevarchar(8)notnull,
sexChar
(2)notnull,
birthddate,
semailvarchar(20),
homeaddrvarchar(40),
createtablecourse(
cidvarchar(8)primarykey,
cnamevarchar(30)notnull,
cid_prevarchar(8),
creditsnumeric(3,1)notnull
createtablesc(
sidvarchar(8)notnull,
cidvarchar(8)notnull,
tidvarchar(8)notnull,
scoreinteger,
primarykey(sid,cid)
数据库的备份
在mysql服务器主机上履行命令
-u用户名–p密码
这里使用了root用户
--all-databases备份所有数据库,并导出到backup.sql文件
数据库的恢复
七、实验数据及结果剖析:
如上图所示
八、实验结论、心得领会和改良建议:
使用mysql熟习了数据库的成立,表的成立,数据库整体备份复原。
实验二
数据库的完好性
4
经过设置表的检查拘束、外键拘束领会数据库完好性的含义,拘束条件下数据改正操作的限制,以及实现改正操作的技巧。
数据库库的完好性、拘束条件、构造化查问语言。
阿里云服务器一台,MySQLWorkBench
在实验一的基础上增添外键拘束,Check拘束
纯手动输入命令
depnamevarchar(20)notnull
)characterset=utf8;
constraintteacher_fkforeignkey(depid)referencesdep(depid)
sidvarchar(15)primarykey,
constraintstudent_fkforeignkey(depid)referencesdep(depid),check(sexin('
男'
'
女'
)),
check(find_in_set('
@'
semail))
sidvarchar(11)notnull,
constraintsc_fk_sidforeignkey(sid)referencesstudent(sid),constraintsc_fk_cidforeignkey(cid)referencescourse(cid),constraintsc_fk_tidforeignkey(tid)referencesteacher(tid),primarykey(sid,cid),
check(score>
=0andscore<
=100)
接下来制造一些表内的数据,方便以后的实验(在以后的试验中还有增添,这里就不给出了)
insertintodep
values('
001'
计'
算机科学与工程'
002'
微'
电子与固体电子'
insertintoteacher
000001'
'
胡旺'
副教授'
000002'
俸志刚'
讲课老师'
insertintostudent(sid,sname,sex,depid)
060201035'
张三'
男'
030204028'
李四'
060102027'
王五'
030201012'
老六'
女'
045201012'
刘七'
insertintocourse
100'
C++程序设计'
null,4.0);
101'
失散数学'
null,3.0);
102'
数据构造'
4.0);
insertintosc
100);
59);
80);
77);
62);
如上所示。
注意,需要在建表的同时使用utf8字符集。
这点在以后加入数据时进行了
改正,不然不支持中文
代码在2.sql文件以及文件中
学习了使用外键拘束,check拘束
实验三
数据的改正
练习UPDATE、DELETE命令的使用,实现对数据的改正和删除。
使用构造化查问语言,在知足拘束条件的状况下达成数据改正
阿里云服务器一台,电脑一台
手动输入sql语句
updatedep
setdepname='
Information'
wheredepid='
;
/*将院系中,院系名改为Information*/
deletefromsc
wheresidin(selectsidfromstudentwheredepid='
)andcid='
/*在选课表中,删除计算机科学与工程系学生选修2号课程的记录*/
/*在选课表中,删除软件工程系学生选课1号课程的纪录记录*/
insertintostudent(sid,sname,sex,depid,birthd,semail,homeaddr)
select'
2406030102'
sname,sex,depid,birthd,semail,homeaddrfromstudentwheresid='
updatescsetsid='
wheresid='
deletefromstudentwheresid='
/*学号为2406010103的同学由本来的计算机科学与工程系转入信息安全系,学号改正为2406030102,
在数据库中做出相应改正*/
使用了update语句改正
学习了当外键拘束存在的时候怎样进行改正
(即改正学号的步骤)
Sql语句保留在3.sql文件中
外键的存在能够很好的对数据进行拘束,防备一些改正的过程中出现不合
法的数据。
实验四
简单查问、多表查问
练惯用SELECT查问语句,设置查问条件,实现单表查问。
练习使用SELECT语句从多个表中查问数据,表的内连结、左外连结、右外连结的使用以及设置连结条件,理解连结条件和查问条件的在目的和功能上的差别
构造化查问语言、表的连结、关系运算
查问年纪在20—22之间的学生姓名(经过出诞辰期和目前日期计算年纪,方法见第八章)
selectsname
fromstudent
whereFLOOR(DATEDIFF(CURDATE(),birthd)/365.2422)<
=22andFLOOR(DATEDIFF(CURDATE(),birthd)/365.2422)>
=20;
查问年纪在20—22之间的学生姓名、院系和年纪(忘掉截图)
selectsname,depname,FLOOR(DATEDIFF(CURDATE(),birthd)/365.2422)
fromstudent,dep
wherestudent.depid=dep.depidand(DATEDIFF(CURDATE(),birthd)/365.2422)<
查问姓’张’的学生的学号、姓名、邮件地点
selectsid,sname,semail
wheresnamelike张'
%'
查问所有有成绩(成绩不为空)的学生学号和课程号
selectsid,cidfromscwherescore>
0;
查问选修了2号课程成绩在60分以下的所有学生的学号、姓名、学生的邮件地点、课程名、教师姓名和教师的邮件地点及课程成绩
selectstudent.sid,student.sname,student.semail,ame,teacher.tname,sc.scorefromstudent,course,teacher,sc
wheresc.sid=student.sidandsc.cid=course.cidandsc.tid=teacher.tidandsc.score<
60;
查问既选修了1号课程,又选修了2号课程的学生学号
selectdistinctsid
fromsc
wheresidin(selectsidfromscwherecid='
)andsidin(selectsidfromscwherecid='
使用了多种select语句
使用了多种连结方式
语句保留在4.sql内
查问使用的不娴熟,效率还能够提高
实验五
分组统计查问
练习使用齐集函数count(),max(),min(),avg()等在SQL命令中实现统计功能。
使
用GROUPBY子句实现分组查问,以及齐集函数在分组查问中的应用。
领会分组查问的功能特色。
构造化查问语言、分组查问、集函数
查问选修数据库并成绩在60分以上的人数
求每个学生的选课的门数,显示学号和选课门数
求每个学生选课的总学分数,显示学号和学分
求每个学生的总成绩,显示学号和总成绩
求每门课程的均匀成绩,并显示课程名及均匀成绩
求每门课程的学生选修人数,并显示课程名及选修人数
求选修了5门以上课程的学生姓名及邮件地点
使用了groupby与having语句实现了分组的功能
语句在5.sql文件内
分组的语句能方便的实现好多功能
实验六
会合操作、子查问
IN、EXISTS、NOTEXISTS运算在WHERE子句中的应用;
静态会合和由
SELECT命令产生的动向结果集运算。
构造化查问语言、会合运算、子查问
查问其余系中比信息系(depid=’IS’)某一学生年纪小的学生姓名和年纪
查问没有选修任何课程的学生姓名、所在院系及邮件地点
查问选修了所有课程的学生姓名
查问既选修了1号课程,又选修了2号课程的学生姓名
使用了结合查问
使用嵌套的查问达成复杂的工作,保留在6.sql内
结合查问使得复杂的查问逻辑变为一条语句,提高了效率