第一篇:第2次报告_数据库上的基本操作实验课案
西 安 邮 电 大 学
实
验:课程 班
级 学号 学生姓名 任课教师(计算机学院)
课内实验报告
数据库上的基本操作实验
数据库原理及应用A
计科1405
04141152 高宏伟
孟彩霞
:::::
一、实验目的
1、掌握使用 T-SQL 语句和企业管理器对数据表进行插入,修改和删除数据的操作,并体会数据完整性约束的作用,加深对数据完整性约束的理解。
2、熟练掌握 INSERT、UPDATE、DELETE 语句的语法和使用。
3、掌握 SQL 的查询语句(SELECT语句)的使用方法,掌握简单表的数据查询、数据排序 和多表操作时数据连接查询的操作方法。
4、进一步掌握SELECT 语句的使用的方法,通过实验能够熟练的使用 SELECT语句。
5、掌握嵌套查询和统计查询的方法。
6、理解索引和视图的概念。
7、掌握索引的使用方法。
8、掌握视图的定义和使用方法。
二、实验内容
1、分别使用T-SQL语句和企业管理器,向数据库JWGL, 数据库Market,数据库SPJ,数据库TSGL中的各张表中输入一些记录。
2、使用 T-SQL 语句进行插入,修改和删除记录的操作。
3、简单查询操作。包括投影,选择条件表达,数据排序等。
4、连接查询操作。包括等值连接,自然连接,一般连接(内连接),外连接,左连接,右连接和自然连接等。
5、在数据库 JWGL 的学生表 Student,课程表 Course,学生选课表 SC 中完成第三章 3.40-3.47 中的查询操作。
6、在数据库 Market 的客户表 Customers,货品表 Goods,订单表Orders中完成习题 6中(6)-(9)的查询。
7、在数据库 SPJ中的供应商表 S,零件表 P,工程项目表 J,供应情况表 SPJ中,用 SELECT 查询语句完成第 2 章习题 10 中(4)-(5)的查询。
8、在数据库TSGL的图书,读者和借阅3个表中,用SELECT语句完成一些查询。
9、建立索引。对JWGL数据库的学生选课表SC建立索引,要求按照Cno升序、Grade降序建立一个名为SC_ind的索引。USE JWGL IF EXISTS(SELECT name FROM sysindexes WHERE name = 'SC_ind')DROP INDEX SC.SC_ind;GO USE JWGL CREATE INDEX SC_ind ON SC(Cno,Grade DESC);
10、视图的定义和操作,(1)在JWGL数据库里,完成第三章例3.54~例3.61例题中视图的定义和视图上的查询、更新操作。
(2)在Market数据库中,完成第三章习题11中(1)中建立视图的操作,然后在视图上完成第三章习题11(2)的查询操作。
三、实验环境
MS SQL Server 2016
四、实验前准备
1、明确能够创建数据库的用户必须是系统管理员,或是被授权使用 CREATE DATABASE语句的用户。
2、创建数据库必须要确定数据库名、所有者(即创建数据库的用户)、数
据库大小(最初大小、最大大小、是否允许增长及增长的方式)和存储数据的文件。
3、确定数据库包含哪些表以及包含的各表的结构,还要了解 SQL Server 的常用数据类型,以创建数据库的表。
4、知道如何创建数据库及完成相应操作,了解常用创建数据库和表的方法。
五、实验步骤
(1)分别使用 T-SQL 语句和企业管理器,向数据库 JWGL、数据库 Market 中各输入一些记录。
(2)使用 T-SQL 语句进行插入、修改和删除记录的操作。
① 插入数据时既要插入一些不违背数据完整性约束的记录,也要插入一些违背数据完整性约束的记录,观察插入后的结果,并利用相关知识解释此现象。在涉及参照完整性约束的参照表中插入数据时,理解系统是如何保证完整性的。
②修改数据时除使用正确数据外,也可以对修改后的新值使用一些违背数据完整性约束的数据,观察系统执行后的结果。另外进一步观察在涉及参照完整性 约束的参照表和被参照表中修改数据时系统的执行情况,如果违背参照完整性 那么观察结果。
③删除记录时一般不会出现问题,但要是在有参照完整性约束的被参照表中删除数据时也存在破坏完整性的情况。观察删除记录系统的执行结果。
(4)简单查询操作。该试验包括投影、选择表达、数据排序等。
① 在数据库 JWGL 中的学生表 Student、课程表 Course、学生选课表 SC 中完 成第 3 章例题 3.10-例题 3.28 的查询操作。
② 在数据库 Market 的客户表 Customers、货品表 Goods、订单表 Orders 中完 成第 3 章习题 6 中(1)-(4)的查询。
③在数据库 TSGL 的图书、读者和借阅 3 个表中,用 SELECT 语句完成以下查 询:查询类分别为“计算机”的所有的图书信息;查询数据库方面的图书信息; 查询 2008-05-10到 2008-07-10 之间的借阅资料。
(5)连接查询操作。该实验包括等值连接、自然连接、一般连接(内连接)、外连接、左外连接、右外连接和自然连接等。
① 在数据库 JWGL 中的学生表 Student、课程表 Course、学生选课表 SC 中完 成第 3 章例题 3.35-例题 3.39 中的查询操作。
② 在数据库 Market 的客户表 Customers、货品表 Goods、订单表 Orders 中完 成第 3 章习题 6 中(5)的查询。
③ 在数据库 TSGL 的图书、读者和借阅 3 个表中,用 SELECT 语句完成以下 查询:查询借书者的借书证号、姓名、单位、所借书号、书名和借阅日期。
(6)在数据库 JWGL 的学生表 Student、课程表 Course、学生选课表 SC 中完 成第 3 章例题 3.40-例题 3.47 中的查询操作。
(9)在数据库 Market 的客户表 Customers、货品表 Goods、订单表 Orders 中 完成第 3 章习题 6 中(6)-(9)的查询。
(10)在数据库 SPJ的供应商表 S、零件表 P、工程项目表 J、供应情况表 SPJ 中,用 SELECT 查询语句完成第二章习题 10 中(4)~(5)的查询。
(11)在数据库 TSGL 的图书、读者和借阅 3 个表中,用 SELECT 语句完成以 下查询。
① 查询人民邮电出版社出版的各类图书的平均价格。
SELECT 类别,AVG平均价
FROM 图书
WHERE 出版社 ='人民邮电出版社' GROUP BY 类别
ORDER BY 类别 ASC
② 使用嵌套查询完成查询了借了书的读者信息。
③ 统计目前借了书的读者人数。
④ 统计过期未还书的图书册数。
六、实验结果
1.插入数据
修改数据
执行UPDATE Student SET Age=Age+1语句后可以看到所有学生的年龄增加了1岁。
执行
UPDATE Student SET Age=Age+1 UPDATE SC SET Grade=0 WHERE Sno In(SELECT Sno FROM Student WHERE Sdept='CS');
语句后可以看到所有计算机系学生的成绩变成了0。
执行下面语句后会报错
UPDATE Student SET
Age='twenty'
删除数据
执行DELETE FROM SC WHERE Cno='2'语句后可看到所有选秀了2号课程学生选课记录被删除。
查询全体学生的学号姓名和所在系上的值组成的新元祖的集合
SELECT Sno,Sname,Sdept From Student
查询全体学生的所有信息 SELECT *From Student
查询全体学生的姓名和出生年份
SELECT Sname,2016-Age 出生年份 From Student
查询考试成绩低于80的学生的学号和成绩
SELECT Sno,Grade From SC WHERE Grade<=80;
查询每个学生及其选修课的情况
SELECT Student.*,SC.* FROM Student,SC WHERE Student.Sno=SC.Sno;
查询选修了Java且成绩在90分以上的学生的学号和姓名
SELECT Student.Sno,Sname FROM Student,Course,SC WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno AND Cname='Java'AND Grade>90
求没有使用天津供应商生产的红色的零件的工程号Jno SELECT Jno FROM J WHERE Jno NOT IN(SELECT Jno
FROM SPJ,S,P WHERE SPJ.Sno=S.Sno
AND SPJ.Pno=P.Pno AND S.City='天津'
AND P.Color='红');
求至少使用了供应商S1所供应的全部零件的工程号Jno SELECT Jno FROM SPJ X WHERE NOT EXISTS(SELECT * FROM SPJ Y WHERE Y.Sno='S1' AND NOT EXISTS(SELECT * FROM SPJ Z WHERE Z.Pno=Y.Pno);AND Z.Jno=X.Jno)
由输出结果知没有这样的工程存在。例3.54 例3.55
例3.56
例3.57 例3.58
例3.59
例3.60
例3.61
七、评价分析及心得体会
通过这次实验熟悉了T-SQL语句对数据进行插入、修改删除等操作的方法,体会了数据完整性约束的作用,加深了对数据完整性约束的理解。熟练掌握了INSERT、UPDATE、DELETE语句的语法和使用方法。掌握了SELECT语句的使用方法,可以进行简单查询和连接查询以及复杂查询中的嵌套查询和统计查询。理解了索引和视图的概念,掌握了索引的使用方法和视图的定义和使用方法。
第二篇:大学生数据库实验课实验六报告
《数据库技术及应用》
实验六、SQL数据查询语言 DQL
学生姓名 学生班级 学生学号 指导老师
重庆邮电大学计算机学院 计算机专业实验中心
一. 实验内容
本次实验用于了解SQL语言的SELECT语句对数据的查询,学会在Navicat for MySQL中用SELECT语句对表中的数据进行简单查询、连接查询、嵌套查询和组合查询。
实验步骤:执行以下内容
1.启动Navicat for MySQL,登录到本地数据库服务器后,连接到test数据库上。用Create Table建立Student表、Course表和Choose表:
(建表语句并非本次重点略)
2.用INSERT语句分别向Student表中插入3个元组、Course表中插入3个元组、Choose表中插入7个元组:
1中的截图就是已经运行这些语句后截图的结果。
3.用SELECT语句,查询计算机学院学生的学号和姓名。
4.用between…and…表示查询条件,查询年龄在20~23岁的学生信息。
5.用SELECT语句的COUNT()聚集函数,统计Student表中学生总人数。
6.用SELECT语句的max()、min()、sum()、avg()四个聚集函数,计算Choose表中C1课程的最高分、最低分、总分、平均分。
7.用SELECT语句对空值(NULL)的判断条件,查询Course表中先修课称编号为空值的课程编号和课程名称。
8.查询学生的学号、姓名、选修的课程名及成绩。
9.用SELECT的存在量词EXISTS,查询与“张三”在同一个学院学习的学生信息。
10.用SELECT语句的嵌套查询,查询选修C1课程的成绩低于“张三”的学生的学号和成绩。
11.用SELECT语句的组合查询(UNION),查询选修了C1课程或者选修了C3课程的学生学号
12.用SELECT语句的组合查询(UNION)与DISTINCT短语,查询选修了C1课程或者选修了C3课程的学生学号,并取消重复的数据。
二. 遇到的问题&解决
在步骤10的嵌套查询中因为多个表中存在同名列,而我的语句指代不明一直错误,在老师的帮助下发现了这个问题并解决。
三. 心得体会
查询语句是本课程最重要的项目,完成了课上的实验后我还得自行多加练习才行。因为这次相比前面几次,难度明显增大了(容易犯很多错误)。
第三篇:大学生数据库实验课实验四报告
《数据库技术及应用》
实验四、SQL语言数据定义语言DDL
学生姓名
学生班级
学生学号
指导老师
重庆邮电大学计算机学院 计算机专业实验中心 一. 实验内容
在 Navicat for MySQL 中使用 CREATE 命令完成对表、索引、视图、同义词 的创建,使用 DROP 命令完成对表、索引、视图、同义词的删除,使用 ALTER 命 令对表结构进行修改及完整性约束的增加、删除。
二. 实验步骤
1.启动 Navicat for MySQL,在 MySQL – 新建连接中完成连接参数配置。2.登录到本地数据库服务器后,连接到 test 数据库上。3.用 SQL 语句(如下),建立如下所示的表 student;
4.同理
5.同理
6.用 Drop Table 语句删除表 CourseAa。
7.用 Alter Table 语句更新表 ChooseBb,添加一个属性名 Bb4,类型 Varchar, 长度 20,完整性约束设为非空值,缺省值设为字符“系统测试值”。
8.用 Alter Table 语句更新表 ChooseBb,添加一个属性名 Bb5,类型 Varchar, 长度 10,完整性约束设为主码。完成后,表 ChooseBb 的设计如下所示。
9.用 Create View 语句建立一个视图 View_Choosebb,生成的视图属性名(View_bb1,View_bb2,view_bb3), 其中 View_bb1 对应于基表 ChooseBb 的 Bb1、View_bb2 对应于基表 ChooseBb 的 Bb4、view_bb3 对应于基表 ChooseBb 的 Bb5。完成后,视图 View_Choosebb 的设计如下所示。
10.用 Drop View 语句删除视图 View_Choosebb。
11.用 Create Index 语句对表 ChooseBb 的 Bb2 属性建立一个升序索引,索引名 Index_bb2。用 Create Index 语句对表 ChooseBb 的 Bb4 属性建立一个降序索引,索引名 Index_bb4。
12.用 Drop Index 语句删除索引 Index_bb2。
三. 心得体会
因为有理论课的基础,本次实验相对轻松,很快就完成了。不过中间出现了许多小错误,还好及时改正了。在实践中体会这些平时学理论未注意到的小细节才能更好的掌握知识。
第四篇:数据库应用基础(第二版)第二章数据库的基本操作实验2.2之实验报告
四、实验2-2报告
1.通过上述实验,请回答下列问题
(1)LIST ____RECORD____=DISPLAY,而DISPLAY____ALL____=LIST。
(2)执行了LIST命令后,EOF()=___T__。
(3)执行了GOTOP命令后,BOF()=.T.,对吗?为什么?
答:不对,因为执行了GO TOP命令后,记录指针移动到表文件的第一条记录上,尔BOF()是测试记录指针是否在文件头的函数,首记录和文件头并不是同一个位置。
(4)如何用LIST/DISPLAY命令显示备注字段内容?
答:LIST是是滚动显示当前表中的指定记录,如果要显示备注型字段的内容,则必须在LIST命令中指定备注型字段名;DISPLAY分屏显示当前表中的指定数据。
(5)你认为用REPLACE对表文件记录进行修改,与用BROWSE命令修改有什么不同?
答:REPLACE命令是成批修改表字段值的非全屏幕编辑命令;而BROWSE命令具有现实和修改表内容的功能。
(6)SET DELETED ON/OFF语句对被逻辑删除的记录有何影响?
答:此语句制定标有删除的记录是否参与其他命令的处理。SET DELETED ON表示逻辑删除标志有效,既有删除标记的记录不参与处理;SET DELETED OFF表示逻辑删除标志无效,既有删除标记的记录参与处理。
(7)通过实验,请你归纳当EOF()为.T.时,RECNO()为多少?当BOF()为.T.时,RECNO()为多少?
答:当EOF()为.T.时,RECNO()为末记录;当BOF()为.T.时,RECNO()为文件头。
(8)用SORT命令建立排序文件后,紧接着用LIST命令却看不到排序结果,为什么?
答:因为还没有使用use打开对应文件
(9)建立索引文件时,有一个可选参数[UNIQUE],它有什么意义?你能举例说明吗?
答:[UNIQUE],当多个记录的<索引表达式>值相同时,只有其中第一个记录的值记入索引文件。
(10)请总结一下表的排序与表索引有什么不同。
答:索引是表记录排序的一种方法,同时生成一张索引表,而表的排序没有生成其他文件。
2.实验完成情况及存在问题
第五篇:2022 北部湾 中考化学 一轮复习板块五 第1讲常见的化学仪器与基本实验操作 专题训练(学生版)
板块五
第1讲常见的化学仪器与基本实验操作
基础达标
1.下列不能作为反应容器的是()
A.烧杯
B.量筒
C.锥形瓶
D.燃烧匙
2.下列仪器可以直接加热的是()
3.(2021·桂林中考)下列实验操作正确的是()
4.(2021·贺州中考)下列实验操作错误的是()
5.下列实验操作正确的是()
6.下列实验基本操作中正确的是()
7.(2021·柳州模拟)下列实验操作中,有明显错误的是()
8.(2021·云南中考)正确的实验操作是实验成功的保证,下列实验操作正确的是()
9.正确规范的操作是实验成功和人身安全的重要保证。如图所示实验操作正确的是()
10.(2021·赤峰中考)下列实验基本操作,错误的是()
11.加热是最常见的反应条件,这一基本实验操作常要使用酒精灯。下列有关说法错误的是()
A.为了使酒精灯燃烧更旺,将灯内酒精添满,以增加可燃物
B.酒精灯里的酒精洒到桌面上燃烧起来,可用湿抹布盖灭
C.用完酒精灯后用灯帽盖灭,其灭火原理是隔绝氧气
D.用燃着的木条点燃酒精灯,燃着的木条的作用是使温度达到可燃物的着火点
12.(2021·龙东中考)下列有关实验操作错误的是()
A.倾倒液体药品时,细口瓶上的标签应朝向手心
B.粗盐提纯实验蒸发操作中,当蒸发皿中出现较多固体时,停止加热
C.给试管内的液体加热时,试管口不要对着自己或他人
D.用排水法收集氧气时,导管口刚有气泡冒出时就开始收集
13.实验时发生意外需及时处理。下列处理方法错误的是()
A.过滤液体滤纸被戳破——把玻璃棒靠在三层滤纸处
B.蒸发时食盐四处飞溅——撤去酒精灯并不断搅拌
C.触碰热试管手被烫伤——冷水冲洗后涂抹烫伤膏
D.氢氧化钠沾到皮肤上——大量水冲洗后涂硼酸溶液