数据库第三次实验

本次实验旨在掌握SQL中的数据更新操作,包括insert、update、delete和truncate table语句的使用,以及视图的创建、更新和撤销。学生需在实验环境中按照指导完成相关操作,并书写实验报告,记录实验过程和解决问题的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<实验要求>

  1. 每次实验前学生必须根据实验内容认真准备。
  2. 在指导教师的帮助下能够完成实验内容。
  3. 实验结束后总结实验内容、书写实验报告。
  4. 遵守实验室规章制度、不缺席。
  5. 实验学时内必须做数据库的有关内容,不允许上网聊天或玩游戏。

<实验报告的书写要求>

  1. 明确实验的目的及要求;
  2. 记录实验的输入数据和输出结果;
  3. 说明实验中出现的问题和解决过程;
  4. 写出实验的体会和实验过程中没能解决的问题;

                                                        实验 3   SQL 数据更新、视图

一.实验目的

掌握使用 insert 语句为表添加记录;使用 update 语句修改表记录;使用 delete 语句对表记录进行删除操作;使用 truncate table 截断记录;掌握视图的定义及工作原理;通过前面创建的表及数据,练习视图的建立与撤销;视图的更新操作等。

二.实验要求

  1. 掌握 insert 语句使用方法
  2. 掌握 update 语句使用方法
  3. 掌握 delete 语句使用方法
  4. 掌握 truncate table 语句使用方法
  5. 掌握视图的创建方法 三.设计的内容或知识点

数据更新语句 insert、update、delete、truncate table 视图

四、实验环境

一种情况:普通 PC 机,装有 Oracle 的客户端,通过客户端配置和移植工具中的 net manager 配置远程数据库服务器,实现连接。

另一种情况:下载简单的客户端配置程序,配置 tnsnames 文件,通过 toad 或 pl/sql developer 开发工具连接远程数据库服务器,实现连接。

本实验环境现在选用第一种情况进行实验。

五、实验步骤

1insert 语句使用方法

­­将一个新学生元组(学号:200815128;姓名:陈冬;性别:男;所在系:计算机学院;年龄:18 岁)插入到 Student 表中

insert

into student (sno,sname,ssex,sdept,sage)

values ('200815128','陈冬','男','计算机学院',18);

­­对每一个系,求学生的平均年龄,并把结果存入数据库

create table dept_age

(sdept  CHAR(15), avg_age SMALLINT);

­­计算学生的平均年龄,插入上述表中

insert into dept_age select sdept,avg(sage) from student group by sdept;

  1. update 语句使用方法

­­将学生 200815128的年龄改为 22 岁

update student set sage=22

where sno='200815128';

­­将计算机学院全体学生的成绩置零

update sc set grade=0 where sno in( select sno from student

where sdept='计算机学院'

或者如下: update sc set grade=0

where 'cs'=(

select sdept from student where sno=sc.sno

  1. delete 语句使用方法

­­删除学生 200815128 的学生信息

delete from student

where sno='200815128';

­­删除cs全体学生的选课记录

delete from sc where sno in( select sno from student

where sdept=cs

或者如下:

delete

from sc

where '计算机学院'=( select sdept from student where sno=sc.sno

  1. 掌握 truncate table 语句使用方法

TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。 TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。

TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。

对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带

WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。

­­删除学生信息表中的所有记录

truncate table student;

5、掌握视图的创建方法

­­建立cs学生的视图

create or replace view cs_student as

select sno,sname,ssex,sage,sdept from student

where sdept= 'cs';

­­建立cs学生的视图,并要求进行修改和插入操作时仍需保证该视图只有计算机学院的学生

create or replace view cs_student as

select sno,sname,ssex,sage,sdept from student

where sdept= '计算机学院'

with check option;

­­建立计算机学院选修了 1 号课程且成绩在 90 分以上的学生的视图

create or replace view cs_student_view as

select sno,sname,ssex,sage,sdept from cs_student,sc where cs_student.sno=sc.sno and cno= '1 ' and grade>90;

 

­­删除视图 cs_student_view

drop view cs_student_view;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值