数据库实验报告.docx

上传人:b****0 文档编号:12487115 上传时间:2023-04-19 格式:DOCX 页数:15 大小:186.24KB
下载 相关 举报
数据库实验报告.docx_第1页
第1页 / 共15页
数据库实验报告.docx_第2页
第2页 / 共15页
数据库实验报告.docx_第3页
第3页 / 共15页
数据库实验报告.docx_第4页
第4页 / 共15页
数据库实验报告.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

数据库实验报告.docx

《数据库实验报告.docx》由会员分享,可在线阅读,更多相关《数据库实验报告.docx(15页珍藏版)》请在冰豆网上搜索。

数据库实验报告.docx

数据库实验报告

java高级程序设计实验报告

实验九

 

专业:

软件工程

班级:

学号:

学生姓名:

指导教师:

郭丽

 

2015年12月27日

1.登陆MySQL

首先要以管理员身份运行“命令提示符”

然后打开MySQL服务:

netstartmysql

然后登陆MySQL数据库:

mysql-uroot–p123456

2.创建stu数据库

创建数据库命令:

createdatabasestu;

创建表

创建表teacher命令:

createtableteacher(

TIDvarchar(13),

TNAMEvarchar(4)NOTNULL,

GENDERBIT,

AGETINYINT(3),

RESEARCHtextNOTNULL,

PRIMARYKEY(TID)

);

创建表teacher命令:

createtablestudent(

SNOvarchar(13),

SNAMEvarchar(4)NOTNULL,

GENDERBIT,

BIRTHDAYDATE,

INDAYDATE,

PHONEvarchar(100),

DESCRIPTIONtextNOTNULL,

TIDvarchar(13),

PRIMARYKEY(SNO),

FOREIGNKEY(TID)REFERENCESteacher(TID)

);

 

创建表relation命令:

createtablerelation(

TIDvarchar(13),

SNOvarchar(13),

XSTATUSTINYINTdefault'0'NOTNULL,

FOREIGNKEY(TID)REFERENCESteacher(TID),

FOREIGNKEY(SNO)REFERENCESstudent(SNO)

);

 

 

1)、向数据库stu的student表中插入10条学生数据,其中有一条数据是自己的信息,截图,写出SQL脚本。

(1)向教师表中添加信息:

SQL脚本:

INSERTINTOteacher(TID,TNAME,GENDER,AGE,RESEARCH)

VALUES('66666','a',1,30,'Java'),

('55555','b',1,35,'Java-Javaweb'),

('44444','c',0,40,'Java-Javaweb'),

('33333','d',0,43,'Java-C语言'),

('22222','e',1,32,'Java-C语言'),

('11111','f',0,41,'Java-C语言');

2)、向数据库stu的teacher表中插入5条教师数据,截图,写出SQL脚本,其中一条教师的ID要是66666.

(2)向学生表中添加信息:

SQL脚本:

INSERTINTOstudent(SNO,SNAME,GENDER,BIRTHDAY,INDAY,PHONE,DESCRIPTION)

VALUES('201470024231','s',1,'1996-01-31','2014-09-01','s.jpg','学生一名'),

('201470024211','s1',1,'1996-01-31','2014-09-01','s1.jpg','学生一名'),

('201470024222','s2',0,'1996-01-31','2014-09-01','s2.jpg','学生一名'),

('201470024233','s3',1,'1996-01-31','2014-09-01','s3.jpg','学生一名'),

('201470024244','s4',0,'1996-01-31','2014-09-01','s4.jpg','学生一名'),

('201470024255','s5',1,'1996-01-31','2014-09-01','s5.jpg','学生一名'),

('201470024266','s6',0,'1996-01-31','2014-09-01','s6.jpg','学生一名'),

('201470024277','s7',1,'1996-01-31','2014-09-01','s7.jpg','学生一名'),

('201470024288','s8',0,'1996-01-31','2014-09-01','s8.jpg','学生一名'),

('201470024299','s9',1,'1996-01-31','2014-09-01','s9.jpg','学生一名');

3)、向数据库stu的relation表中插入6条选报数据,截图,写出SQL脚本,其中一条数据的内容为你自

己与ID为6666的选报关系。

(3)向选报表中添加信息:

SQL脚本:

INSERTINTOrelation(TID,SNO,XSTATUS)

VALUES('66666','201470024231',1),

('22222','201470024222',1),

('33333','201470024255',1),

('33333','201470024244',1),

('22222','201470024233',0),

('33333','201470024211',1);

4)、修改自己的数据信息,将个人简介的内容修改为“万能”,截图,写出SQL脚本

SQL脚本:

updatestudentsetDESCRIPTION='万能‘whereSNO='201470024231';

 

5)、编写SQL,完成查询你自己的历史选报记录,即你都选报过哪些老师,这些选报信息的状态是什么,

要求显示的结果包括:

学生学号,学生名字,选报的老师的姓名,选报的老师的研究方向,选报状态

SQL脚本:

 

selectstudent.SNO,SNAME,TNAME,RESEARCH,XSTATUS

fromrelation,student,teacher

whererelation.SNO=student.SNOANDrelation.TID=teacher.TIDANDstudent.SNO='201470024231';

6)、编写SQL,完成查询ID为6666的老师的历史被选报记录,要求显示的结果包括:

学生学号,学生名字,选报的老师的姓名,选报的老师的研究方向,选报状态

SQL脚本:

selectstudent.SNO,SNAME,TNAME,RESEARCH,XSTATUS

fromrelation,student,teacher

whererelation.SNO=student.SNOANDrelation.TID=teacher.TIDANDteacher.TID='66666';

 

7)、编写SQL,完成查询没有进行任何选报操作的学生列表,显示结果包括:

学生学号,学生名字,性别,出生年月,个人简介

SQL脚本:

selectSNO,SNAME,GENDER,BIRTHDAY,DESCRIPTION

fromstudent

wherestudent.SNONOTIN(selectrelation.SNOfromrelation);

 

8)、编写SQL,完成统计当前完成选报的学生的个数。

SQL脚本:

selectcount(*)fromrelation

 

9)、编写SQL,完成统计每个老师指导的学生人数,显示结果包括:

教师姓名,所带学生人数

SQL脚本:

selectTNAME,count(SNO)

fromrelation,teacher

whererelation.TID=teacher.TIDANDrelation.XSTATUS=1

groupbyteacher.TNAME;

 

10)、编写SQL,统计报选老师数最多的学生的姓名

SQL脚本:

selectSNAME,COUNT(SNAME)

fromrelation,student

whererelation.SNO=student.SNO

GROUPBYSNAME

ORDERBYCOUNT(SNAME)DESC;(limit0,1)获取第一行数据

 

11)、编写SQL,统计被报选次数最多的老师的姓名

SQL脚本:

 

selectTNAME,COUNT(TNAME)

fromrelation,teacher

whererelation.TID=teacher.TID

GROUPBYTNAME

ORDERBYCOUNT(TNAME)DESC

limit0,1;

 

12)、编写SQL,统计知道学生人数最多的老师的姓名

SQL脚本:

 

selectTNAME,COUNT(TNAME)

fromrelation,teacher

whererelation.TID=teacher.TIDANDrelation.XSTATUS=1

GROUPBYTNAME

ORDERBYCOUNT(TNAME)DESC

limit0,1;

 

13)、编写SQL脚本,完成你自己选报数据表teacher中的某个老师的完整的过程

SQL脚本:

starttransaction;(出错会回滚)

INSERTINTOrelation(TID,SNO,XSTATUS)

VALUES('11111','201470024231',0);

commit;

 

14)、编写SQL脚本,完成删除teacher表中某个教师的完整过程。

由于teacher表与student表和relation表存在主外键关系,所以如果删除某个老师信息可能会对数据库造成影响。

所以我们在这里要用到事务。

(13题同理)

SQL脚本:

 

starttransaction;

DELETEfromteacher

whereTID='55555';(需要删除的老师ID)

commit;

 

总结

 

什么是事务?

 

事务是逻辑上的一组操作,组成这组操作的各个单元,要不全都成功要不全都失败,这个特性就是事务 

注意:

mysql数据支持事务,但是要求必须是innoDB存储引擎 

解决这个问题:

 

mysql的事务解决这个问题,因为mysql的事务特性,要求这组操作,要不全都成功,要不全都失败,这样就避免了某个操作成功某个操作失败。

利于数据的安全 

如何使用:

 

(1)在执行sql语句之前,我们要开启事务starttransaction; 

(2)正常执行我们的sql语句 

(3)当sql语句执行完毕,存在两种情况:

 

1,全都成功,我们要将sql语句对数据库造成的影响提交到数据库中,committ 。

2,某些sql语句失败,我们执行rollback(回滚),将对数据库操作赶紧撤销 。

 

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

当前位置:首页 > 自然科学 > 生物学

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

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