数据库原理及课程设计实验报告册期末提交 2.docx
- 文档编号:30716796
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:32
- 大小:1.23MB
数据库原理及课程设计实验报告册期末提交 2.docx
《数据库原理及课程设计实验报告册期末提交 2.docx》由会员分享,可在线阅读,更多相关《数据库原理及课程设计实验报告册期末提交 2.docx(32页珍藏版)》请在冰豆网上搜索。
数据库原理及课程设计实验报告册期末提交2
审定成绩:
学生实验实习报告册
学年学期:
2020-2021学年(春)学期
课程名称:
数据库原理及课程设计
学生学院:
软件工程学院
专业班级:
物联网
学生学号:
学生姓名:
联系电话:
二O二O年十二月
教师评阅记录表
【重要说明】
●学生提交报告册最终版时,必须包含此页,否则不予成绩评定。
●本报告册模板内容格式除确实因为填写内容改变了布局外,不得变更其余部分的格式,否则不予成绩评定。
报告是否符合考核规范
☑符合□不符合
报告格式是否符合标准
☑符合□不符合
报告是否完成要求内容
☑是□否
报告评语:
报告成绩:
评阅人签名(签章)
2020年月日
●教师评阅记录表
●实验实习日志
实验实习日志1
分项名称
表的创建和操作
指导教师
课程名称
数据库原理及课程设计
课程编号
20610508
实验实习地点
完成日期
学生姓名
学生学号
学院专业
软件工程学院物联网专业
所在班级
19物联网工程
一、实验实习目的及要求
熟练掌握使用Navicat和Transact-SQL语言两种方法创建、修改和删除表。
掌握管理表的有关系统存储过程。
二、实验实习设备(环境)及要求(软硬件条件)
电脑和NavicatforMySQL软件
三、实验实习过程和结果分析(源代码、步骤截图等)
1、利用Navicat创建满足以下要求的数据库:
①数据库存在于连接MySQL中;②数据库名称为xsgl;③字符集选择utf8--UTF-8Unicode;排序规则选择utf8_general_ci。
2、在数据库xsgl中,利用Navicat创建以下表格:
1)表格名为xs(学生基本情况表);
2)表格中各个属性的定义如下:
列名
含义
数据类型
长度
能否取空值
备注
xh
学号
int
no
主码
xm
姓名
char
8
yes
xb
性别
char
2
yes
nl
年龄
tinyint
yes
zy
专业
char
16
yes
jtzz
家庭住址
char
50
yes
具体步骤如下:
打开新建的数据库“xsgl”–右键点击“表”--“新建表”。
按照上表内容输入个属性的定义,填写“列名”、“数据类型”,并取消或选择“允许NULL值”前的选项,并右键点击“xh”,选择将其设为主键,如图2.1所示:
图2.1
点击“保存”,输入表名:
xs。
结果如图2.2所示:
图2.2
3、按照以下步骤向表格xs中添加如下记录:
xh
(学号)
xm
(姓名)
xb
(性别)
nl
(年龄)
zy
(专业)
jtzz
(家庭住址)
200809412
庄小燕
女
24
计算机
上海市中山北路12号
200809415
洪波
男
25
计算机
青岛市解放路105号
200109102
肖辉
男
23
计算机
杭州市凤起路111号
200109103
柳嫣红
女
22
计算机
上海市邯郸路1066号
200307121
张正正
男
20
应用数学
上海市延安路123号
200307122
李丽
女
21
应用数学
杭州市解放路56号
1)打开Navicat;
2)打开连接MySQL找到数据库xsgl中的表格xs;
3)在表格xs上右击鼠标,选择“打开表”;
4)在接着出现的记录录入界面上添加记录。
(方向键下增加新纪录)
添加完后如图3.1所示:
图3.1
4、向表xs中增加“入学时间”属性列,其列名为rxsj,数据类型为datetime型。
步骤:
右键单击xs表—设计表—加入列rxsj,设置数据类型为datetime。
如图4.1所示:
图4.1
5、将表xs中nl(年龄)列的数据类型改为int型。
步骤:
与第4项类似
6、在数据库xsgl中,利用Transact-SQL语言创建以下表格:
1)表格名为kc(课程情况表);
2)表格中各个属性的定义如下:
列名
含义
数据类型
长度
能否取空值
备注
kch
课程号
char
4
no
主码
kcm
课程名
char
20
yes
xss
学时数
int
yes
xf
学分
int
yes
步骤:
点击“新建查询”,输入以下代码,点击运行
USExsgl;
createtablekc
(
kchchar(4)notnull,
kcmchar(20)null,
xssintnull,
xfintnull,
primarykey(kch)
)engine=innodbdefaultcharset=utf8auto_increment=1;
命令成功完成后,在“xggl”数据库中右键点击“表”,选择“刷新”,
7、利用Transact-SQL语言修改kc表。
①增加“成绩”一列cj,int型,允许为空值,默认为0。
步骤:
点击“新建查询”,输入以下代码,点击运行
ALTERTABLEkcADDCOLUMNcjINTDEFAULT0;
②修改cj列的类型为char。
步骤:
点击“新建查询”,输入以下代码,点击运行
ALTERTABLEkcCHANGECOLUMNcjcjCHAR(4);
③修改cj列的列名为mark。
步骤:
点击“新建查询”,输入以下代码,点击运行
ALTERTABLEkcCHANGEcjmarkCHAR(4)DEFAULT0;
④删除mark列。
步骤:
点击“新建查询”,输入以下代码,点击运行
ALTERTABLEkcDROPCOLUMNmark;
7、利用Navicat和Transact-SQL语言两种方式删除表kc。
①步骤:
右键点击表“kc”,选择删除。
②步骤:
点击“新建查询”,输入以下代码,点击执行
DROPTABLEkc
8、利用Transact-SQL将表xs重命名为Students。
步骤:
点击“新建查询”,输入以下代码,点击执行
RENAMETABLExsgl.xsTOxsgl.Students;
四、实验遇到问题及解决办法(有就写,没有就不写)
五、实验心得
进一步熟悉了Navicat和Transact-SQL语言两种方法创建、修改和删除表。
了解学习了管理表的有关系统存储过程。
实验实习日志2
分项名称
表格数据的基本查询操作
指导教师
彭泽玉
课程名称
数据库原理及课程设计
课程编号
20610508
实验实习地点
1403
完成日期
10.10
学生姓名
肖洋
学生学号
2019116034
学院专业
软件工程学院物联网专业
所在班级
19物联网工程
一、实验实习目的及要求
掌握SELECT语句的基本用法。
掌握计算列的用法。
掌握WHERE子句中各类查询条件的写法。
二、实验实习设备(环境)及要求(软硬件条件)
电脑和NavicatforMySQL软件
三、实验实习过程和结果分析(源代码、步骤截图等)
图3.1
图5.1
图6.1
四、实验遇到问题及解决办法(有就写,没有就不写)
五、实验心得
学习了新的控制语句,掌握SELECT语句的基本用法。
掌握计算列的用法。
掌握WHERE子句中各类查询条件的写法。
实验实习日志3
分项名称
表格数据的编辑和维护
指导教师
彭泽玉
课程名称
数据库原理及课程设计
课程编号
20610508
实验实习地点
1403
完成日期
10.14
学生姓名
田恩
学生学号
2019116028
学院专业
软件工程学院物联网专业
所在班级
19物联网工程
一、实验实习目的及要求
熟练掌握使用Transact-SQL语言和通过Navicat输入表数据、修改表数据和删除表数据的操作。
二、实验实习设备(环境)及要求(软硬件条件)
电脑和NavicatforMySQL软件
三、实验实习过程和结果分析(源代码、步骤截图等)
1、在数据库world中建立一个名为newlanguage的表,其结构与表countrylanguage完全一样(注意各字段的默认值、字符集、排序方式等;enum型要添加枚举值否则报错),如图1.1:
图1.1
2、在表newlanguage中插入中国的客家话,其名称为CountryCode为CHN,language为Kejia,isOfficial为F,percentage为0.3。
USEworld;
INSERTINTOnewlanguage
VALUES('CHN','Kejia','F',0.3);
4、试将表countrylanguage中的所有记录插入到表newlanguage中去,其SQL命令为:
USEworld;
INSERTINTOnewlanguage
SELECT*
FROMcountrylanguage;
5、将表newlanguage中Language为“Kejia”的语言的Percentage改为0.4
UPDATEnewlanguage
SETPercentage=0.4
WHERELanguage='Kejia';
6、将表newlanguage中语言的Percentage均减去0.1。
USEworld;
UPDATEnewlanguage
SETPercentage=Percentage-0.1;
7、删除表newlanguage中澳大利亚(CountrCode为“AUS”)的英语记录。
USEworld;
DELETEFROMnewlanguage
WHERECountryCode='AUS'
ANDLanguage='English';
8、清空表newlanguage中的所有数据。
USEworld;
TRUNCATETABLEnewlanguage;
三、练习题
以下题目在数据库world中完成。
1、通过Navicat,在country、countrylanguage、和city三个表中各输入10条记录。
2、将一条新的城市记录(Name:
Beijing,Country:
AFG,District:
Beijing,Population:
21148000)插入表city中。
USEworld;
INSERTINTOcity
VALUES('Beijing','AFG','Beijing',21148000);
3、插入一条语言记录(“CHN”,“Minnan”,“F”,0.5)到表countrylanguage。
USEworld;
INSERTINTOcountrylanguage
VALUES('CHN','Minnan','F',0.5);
4、删除CountryCode为“ABW”的语言记录。
四、实验遇到问题及解决办法(有就写,没有就不写)
五、实验心得
学习到了更多的语法,发现语句都是灵活的,机动性很强。
使用了Transact-SQL语言和通过Navicat输入表数据、修改表数据和删除表数据的操作。
实验实习日志4
分项名称
安装并熟悉navcatmysql
指导教师
彭泽玉
课程名称
数据库原理及课程设计
课程编号
20610508
实验实习地点
1403
完成日期
2020.11.30
学生姓名
肖洋
学生学号
2019116034
学院专业
软件工程学院
所在班级
物联网
一、实验实习目的及要求
熟练掌握使用Transact-SQL语言和通过Navicat输入表数据、修改表数据和删除表数据的操作
二、实验实习设备(环境)及要求(软硬件条件)
设备:
电脑
要求:
温馨的实验以及良好的软硬件设施
三、实验实习过程和结果分析(源代码、步骤截图等)
(一)、集合查询
用UNION并操作实现集合查询,查询计算机科学系的学生详细信息及年龄不大于19岁的学生详细信息。
SELECT*
FROMstudent
WHERESdept='cs'
UNION
SELECT*
FROMstudent
WHERESage<=19;
(二)、嵌套查询
1.带有IN谓词的子查询
(1)用带有IN谓词的子查询,查询与“刘晨”在同一个系学习的学生信息,要求查出学号,姓名,所在系。
SELECTsno,sname,Sdept
FROMstudent
WHERESdeptin
(
SELECTSdept
FROMstudent
WHERESname='刘晨'
);
(2)用带有IN谓词的子查询,查询所有选修了1号课程的学生姓名。
SELECTsname
FROMstudent
WHEREsnoin
(SELECTsno
FROMsc
WHEREcno='1')
(3)用带有IN谓词的子查询,查询选修了课程名为“信息系统”的学生学号和姓名。
SELECTsno,sname
FROMstudent
WHEREsnoin(SELECTSno
FROMsc
WHEREcno=3);
2.带有比较运算符的子查询
(1)用带有比较运算符的子查询,查询与“刘晨”同岁的学生,要求查出学号,姓名,年龄。
SELECTsno,sname,sage
FROMstudent
WHERESage=(
SELECTSage
FROMstudent
WHERESname='刘晨');
(2)用带有比较运算符的子查询,查询成绩高于200215122这个同学平均成绩的学生选课记录,要求查出学号,课程号,成绩。
SELECTsno,cno,grade
FROMsc
WHEREGrade>(SELECTAVG(Grade)
FROMsc
WHERESno='200215122');
(3)用带有比较运算符的子查询,找出每个学生超过他选修课程平均成绩的课程号,要求结果中显示学号和对应课程号。
SELECTsno,cno
FROMscy
WHEREGrade>(SELECTAVG(Grade)
FROMscx
WHEREy.Sno=x.sno);
3.带有ANY或ALL谓词的子查询
(1)用带有ANY或ALL谓词的子查询,查询比CS系某一学生年龄小的学生姓名和年龄。
SELECTsname,Sage
FROMstudent
WHERESage FROMstudent WHERESdept='cs') (2)用带有ANY或ALL谓词的子查询,查询其他系中比CS系所有学生年龄小的学生姓名和年龄。 SELECTsname,sage FROMstudent WHERESage FROMstudent WHERESdept='cs') ANDSdept<>'cs'; 4.带有EXISTS谓词的子查询 (1)用带有EXISTS谓词的子查询,查询没有选修1号课程的学生姓名。 SELECTsname FROMstudent WHERENOTEXISTS(SELECT* FROMsc WHEREcno=1ANDstudent.Sno=sc.Sno); (2)用带有EXISTS谓词的子查询,查询与“刘晨”在同一个系学习的学生,要求查出学号,姓名,所在系。 SELECTsno,sname,sdept FROMstudents1 WHEREEXISTS(SELECT* FROMstudents2 WHEREs1.Sdept=s2.SdeptANDs2.sname='刘晨'); 四、实验遇到问题及解决办法(有就写,没有就不写) 五、实验心得 熟练掌握使用Transact-SQL语言和通过Navicat输入表数据、修改表数据和删除表数据的操作 实验实习日志 分项名称 连接查询 指导教师 彭泽玉 课程名称 数据库原理及课程设计 课程编号 20610508 实验实习地点 1403 完成日期 2020.11.22 学生姓名 肖洋 学生学号 2019116034 学院专业 软件工程学院物联网专业 所在班级 物联网 一、实验实习目的及要求 熟悉连接查询的使用,连接查询是关系数据库中最主要的查询,包括非等值连接查询、等值连接查询、自然连接查询、外连接查询、自身连接查询、复合条件连接查询等。 二、实验实习设备(环境)及要求(软硬件条件) 电脑和NavicatforMySQL软件 三、实验实习过程和结果分析(源代码、步骤截图等) (一)、在连接“MySQL”中新建数据库“stuinfo”,并将数据库文件stuinfo.sql导入到该数据库之中。 (二)、完成如下查询 1.查询每个学生的学号,姓名,所在系,选修的课程号和成绩 SELECTsc.Sno,Sname,Sdept,Cno,Grade FROMstudent,sc WHEREstudent.Sno=sc.Sno; 2.查询数学系(MA)学生的学号,姓名,所在系,选修的课程号和成绩(在第一题的基础上增加限定条件) SELECTsc.Sno,Sname,Sdept,Cno,Grade FROMstudent,sc WHEREstudent.Sno=sc.SnoANDSdept='MA'; 3.查询数学系(MA)学生的学号,姓名,所在系,选修的课程号,课程名和成绩(比第二题多查一个属性列‘课程名’,则多涉及一张表,应增加一个连接条件) SELECTsc.Sno,Sname,Sdept,sc.Cno,Cname,Grade FROMstudent,sc,course WHEREstudent.Sno=sc.SnoANDsc.Cno=course.CnoANDSdept='MA'; 4.查询选修了2号课程的所有学生的姓名,性别,所在系 SELECTSname,Ssex,Sdept FROMstudent,sc WHEREstudent.Sno=sc.SnoANDCno=2; 5.查询选修了2号课程且成绩在80分以上的所有学生的姓名,性别,所在系及成绩 SELECTSname,Ssex,Sdept,Grade FROMstudent,sc WHEREstudent.Sno=sc.SnoANDCno=2ANDGrade>80; 6.查询每一门课的间接先修课的课程号(即先修课的先修课) SELECTFIRST.cno,SECOND.cpno FROMcourseFIRST,courseSECOND WHEREFIRST.cpno=SECOND.cno; 7.查询至少选修一门课程的女学生的姓名(使用groupby和having子句) 参考: selectstudent.sname fromstudent,sc wherestudent.sno=sc.snoandstudent.ssex='女' groupbystudent.sno havingcount(*)>=1; 8.查询选修了信息系统课程的学生平均成绩 参考: selectavg(grade) fromsc,course whereo=oandcname='信息系统'; 四、实验遇到问题及解决办法(有就写,没有就不写) 五、实验心得 熟悉非等值连接查询、等值连接查询、自然连接查询、外连接查询、自身连接查询、复合条件连接查询等的使用。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库原理及课程设计实验报告册期末提交 数据库 原理 课程设计 实验 报告 期末 提交
![提示](https://static.bdocx.com/images/bang_tan.gif)