电子科技大学数据库原理及应用实验报告计算机学院.docx

上传人:b****8 文档编号:9815867 上传时间:2023-02-06 格式:DOCX 页数:19 大小:18.48KB
下载 相关 举报
电子科技大学数据库原理及应用实验报告计算机学院.docx_第1页
第1页 / 共19页
电子科技大学数据库原理及应用实验报告计算机学院.docx_第2页
第2页 / 共19页
电子科技大学数据库原理及应用实验报告计算机学院.docx_第3页
第3页 / 共19页
电子科技大学数据库原理及应用实验报告计算机学院.docx_第4页
第4页 / 共19页
电子科技大学数据库原理及应用实验报告计算机学院.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

电子科技大学数据库原理及应用实验报告计算机学院.docx

《电子科技大学数据库原理及应用实验报告计算机学院.docx》由会员分享,可在线阅读,更多相关《电子科技大学数据库原理及应用实验报告计算机学院.docx(19页珍藏版)》请在冰豆网上搜索。

电子科技大学数据库原理及应用实验报告计算机学院.docx

电子科技大学数据库原理及应用实验报告计算机学院

 

计算机专业类课程

 

 

课程名称:

数据库原理及应用

 

学院:

计算机科学与工程学院

 

专业:

数字媒体技术

 

学生姓名:

tss

 

学号:

2015060501

 

指导教师:

胡旺

 

日期:

2017年4月26日

 

电子科技大学

 

实验报告

 

实验一

 

一、实验名称:

创立、备份与恢复数据库

 

二、实验学时:

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,

depidvarchar(20),

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拘束

 

纯手动输入命令

 

createtabledep(

depidvarchar(8)primarykey,

depnamevarchar(20)notnull

)characterset=utf8;

createtableteacher(

tidvarchar(8)primarykey,

tnamevarchar(8)notnull,

titlevarchar(10),

depidvarchar(20),

constraintteacher_fkforeignkey(depid)referencesdep(depid)

)characterset=utf8;

createtablestudent(

sidvarchar(15)primarykey,

snamevarchar(8)notnull,

sexChar

(2)notnull,

 

depidvarchar(20),

birthddate,

semailvarchar(20),

homeaddrvarchar(40),

constraintstudent_fkforeignkey(depid)referencesdep(depid),check(sexin('男','女')),

check(find_in_set('@',semail))

)characterset=utf8;

createtablecourse(

cidvarchar(8)primarykey,

cnamevarchar(30)notnull,

cid_prevarchar(8),

creditsnumeric(3,1)notnull

)characterset=utf8;

createtablesc(

sidvarchar(11)notnull,

cidvarchar(8)notnull,

tidvarchar(8)notnull,

scoreinteger,

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)

)characterset=utf8;

 

接下来制造一些表内的数据,方便以后的实验(在以后的试验中还有增添,这里就不给出了)

 

insertintodep

values('001',计'算机科学与工程');

insertintodep

values('002',微'电子与固体电子');

insertintoteacher

values('000001','胡旺','副教授','001');

insertintoteacher

values('000002','俸志刚','讲课老师','001');

insertintostudent(sid,sname,sex,depid)

values('060201035','张三','男','001');

insertintostudent(sid,sname,sex,depid)

values('030204028','李四','男','001');

 

insertintostudent(sid,sname,sex,depid)

values('060102027','王五','男','001');

insertintostudent(sid,sname,sex,depid)

values('030201012','老六','女','001');

insertintostudent(sid,sname,sex,depid)

values('045201012','刘七','女','001');

insertintocourse

values('100','C++程序设计',null,4.0);

insertintocourse

values('101','失散数学',null,3.0);

insertintocourse

values('102','数据构造','100',4.0);

insertintosc

values('060201035','100','000001',100);

insertintosc

values('030204028','100','000002',59);

insertintosc

values('045201012','100','000001',80);

insertintosc

values('045201012','101','000001',77);

insertintosc

values('045201012','102','000002',62);

 

七、实验数据及结果剖析:

 

如上所示。

 

注意,需要在建表的同时使用utf8字符集。

这点在以后加入数据时进行了

 

改正,不然不支持中文

 

代码在2.sql文件以及文件中

 

八、实验结论、心得领会和改良建议:

 

学习了使用外键拘束,check拘束

 

电子科技大学

 

实验报告

 

实验三

 

一、实验名称:

数据的改正

 

二、实验学时:

4

 

三、实验内容和目的:

 

练习UPDATE、DELETE命令的使用,实现对数据的改正和删除。

 

四、实验原理:

 

使用构造化查问语言,在知足拘束条件的状况下达成数据改正

 

五、实验器械(设施、元器件)

 

阿里云服务器一台,电脑一台

 

六、实验步骤:

 

手动输入sql语句

 

updatedep

setdepname='Information'

wheredepid='001';/*将院系中,院系名改为Information*/

 

deletefromsc

wheresidin(selectsidfromstudentwheredepid='001')andcid='102';

/*在选课表中,删除计算机科学与工程系学生选修2号课程的记录*/

 

deletefromsc

wheresidin(selectsidfromstudentwheredepid='002')andcid='101';

/*在选课表中,删除软件工程系学生选课1号课程的纪录记录*/

 

insertintostudent(sid,sname,sex,depid,birthd,semail,homeaddr)

select'2406030102',sname,sex,depid,birthd,semail,homeaddrfromstudentwheresid='060201035';

updatescsetsid='2406030102'wheresid='060201035';deletefromstudentwheresid='060201035';

/*学号为2406010103的同学由本来的计算机科学与工程系转入信息安全系,学号改正为2406030102,

在数据库中做出相应改正*/

 

七、实验数据及结果剖析:

 

使用了update语句改正

 

学习了当外键拘束存在的时候怎样进行改正

 

(即改正学号的步骤)

 

Sql语句保留在3.sql文件中

 

八、实验结论、心得领会和改良建议:

 

外键的存在能够很好的对数据进行拘束,防备一些改正的过程中出现不合

 

法的数据。

 

电子科技大学

 

实验报告

 

实验四

 

一、实验名称:

简单查问、多表查问

 

二、实验学时:

2

 

三、实验内容和目的:

 

练惯用SELECT查问语句,设置查问条件,实现单表查问。

练习使用SELECT语句从多个表中查问数据,表的内连结、左外连结、右外连结的使用以及设置连结条件,理解连结条件和查问条件的在目的和功能上的差别

 

四、实验原理:

 

构造化查问语言、表的连结、关系运算

 

五、实验器械(设施、元器件)

 

阿里云服务器一台,MySQLWorkBench

 

六、实验步骤:

 

手动输入sql语句

 

查问年纪在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)<=22andFLOOR(DATEDIFF(CURDATE(),birthd)/365.2422)>=20;

 

查问姓’张’的学生的学号、姓名、邮件地点

 

selectsid,sname,semail

fromstudent

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='101')andsidin(selectsidfromscwherecid='100');

 

七、实验数据及结果剖析:

 

使用了多种select语句

 

使用了多种连结方式

 

语句保留在4.sql内

 

八、实验结论、心得领会和改良建议:

 

查问使用的不娴熟,效率还能够提高

 

电子科技大学

 

实验报告

 

实验五

 

一、实验名称:

分组统计查问

 

二、实验学时:

4

 

三、实验内容和目的:

 

练习使用齐集函数count(),max(),min(),avg()等在SQL命令中实现统计功能。

使

 

用GROUPBY子句实现分组查问,以及齐集函数在分组查问中的应用。

领会分组查问的功能特色。

 

四、实验原理:

 

构造化查问语言、分组查问、集函数

 

五、实验器械(设施、元器件)

 

阿里云服务器一台,电脑一台

 

六、实验步骤:

 

手动输入sql语句

 

查问选修数据库并成绩在60分以上的人数

 

求每个学生的选课的门数,显示学号和选课门数

 

求每个学生选课的总学分数,显示学号和学分

 

求每个学生的总成绩,显示学号和总成绩

 

求每门课程的均匀成绩,并显示课程名及均匀成绩

 

求每门课程的学生选修人数,并显示课程名及选修人数

 

求选修了5门以上课程的学生姓名及邮件地点

 

七、实验数据及结果剖析:

 

使用了groupby与having语句实现了分组的功能

 

语句在5.sql文件内

 

八、实验结论、心得领会和改良建议:

 

分组的语句能方便的实现好多功能

 

电子科技大学

 

实验报告

 

实验六

 

一、实验名称:

会合操作、子查问

 

二、实验学时:

2

 

三、实验内容和目的:

 

IN、EXISTS、NOTEXISTS运算在WHERE子句中的应用;静态会合和由

 

SELECT命令产生的动向结果集运算。

 

四、实验原理:

 

构造化查问语言、会合运算、子查问

 

五、实验器械(设施、元器件)

 

阿里云服务器一台,电脑一台

 

六、实验步骤:

 

手动输入sql语句

 

查问其余系中比信息系(depid=’IS’)某一学生年纪小的学生姓名和年纪

 

查问没有选修任何课程的学生姓名、所在院系及邮件地点

 

查问选修了所有课程的学生姓名

 

查问既选修了1号课程,又选修了2号课程的学生姓名

 

七、实验数据及结果剖析:

 

使用了结合查问

 

使用嵌套的查问达成复杂的工作,保留在6.sql内

 

八、实验结论、心得领会和改良建议:

 

结合查问使得复杂的查问逻辑变为一条语句,提高了效率

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 面试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1