数据库实验三报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
任课教师:刘建平
《数据库原理及应用》
(2012-2013学年第1学期)
实
验
报
告
学号:
姓名:
班级:
实验三数据库的更新实验
一.实验目的
本实验的目的是要求学生熟练掌握使用SQL 和通过SQL Server企业管理器向数据库输入数据、修改数据和删除数据的操作。
二.相关知识
SQL Server提供了很多方法更新表中数据。以插入记录为例,可以使用INSERT语句、V ALUES子句将特定值集合插入一行;可以使用数据库接口API(ADO、OLE DB、ODBC 和DB-Library)中的函数进行数据插入等。本实验主要掌握INSERT、UPDA TE和DELETE 语句的基本用法。
1.插入操作,其语句的一般格式为
INSERT
INTO table_or_view [(colum_list)]
V ALUES (date_values);
此语句是使date_values作为一行数据记录插入已命名的表或视图table_or_view中。
Column_list是由逗号分隔的table_or_view的列名列表,用来指定为其提供数据的列。如果没有指定column_list,表或视图中的所有列都将接收数据。
如果column_list没有为表或视图中的所有列命名,将在列表中没有命名的任何列中插入一个NULL值(或者在默认情况下为这些列定义的默认值)。在列的列表中没有指定的所有列都必须允许NULL值或者指定的默认值。否则SQL Server将返回一个错误。
2.修改操作语句的一般格式为
UPDATE 表名
SET <列名>=<表达式>[,<列名>=<表达式>]……
[where <条件>];
其功能是修改指定表中满足WHERE子句条件的元组。其中SET子句用于指定修改方法,即用<表达式>的值取代相应的属性列值。如果省略WHERE子句,则表示要修改表中的所有元组。
3.删除语句的一般格式为
DELETE
FROM <表名>
[WHERE <条件>];
其功能是从指定表中删除满足WHERE子句条件的所有元组。如果省略WHERE子句,则表示要删除表中的所有元组,但表的定义仍在字典中。
三.实验内容
1.通过企业管理器,在学生管理数据库的学生、课程和选课3个表中各输入10条记录。
要求记录不仅满足数据约束要求,还要有表间关联的记录。
2.具体完成以下例题。将它们转换为SQL语句表示,在学生管理库中实现其数据更新操
作。
例 1 将一新学生记录(学号:95050;姓名:陈冬;性别:男;年龄:18;所在系:计算机科学系)插入学生表中。
insert
into student(sno,sname,ssex,sage,sdept)
values ('95050','陈冬','男',18,'IS');
例2 插入一条选课记录(‘95020’,’C1’)。
insert
into sc
values ('95020','1',NULL);
例3 对每一个系,求学生的平均年龄,并把结果存入数据库。对于这道题,首先要在数据库中建立一个有两个属性列的新表,其中一列存放系名,另一列存放相应系的学生平均年龄。
CREATE TABLE Deptage(所在系CHAR(20),平均年龄SMALLINT);
然后对数据库的学生表按所在系分组求平均年龄,再把所在系和平均年龄存入新表中。create table dept_age
(sdept char(15),avg_age smallint);
insert
into dept_age(sdept,avg_age)
select sdept,avg(sage)
from student
group by sdept
例4 将学生95001的年龄改为22岁。
update student
set sage=22
where sno='95001'
例5 将所有学生的年龄增加一岁。
update student
set sage=sage+1
例6 将计算机科学系全体学生的成绩置零。update sc
set grade=0
where 'CS'=(select sdept
from student
where student.sno=sc.sno);
例7 删除学号为95006的学生记录
delete
from student
where sno='95006';
例8 删除所有的学生选课记录
delete
from sc
例9 删除计算机科学系所有学生的选课记录
delete
from sc
where 'CS'=(select sdept
from student
where student.sno=sc.sno);
四.实验步骤
将查询需求用SQL语言表示;在SQL Server查询分析器的输入区中输入SQL查询语句;设置查询分析器的结果区为Standard Execute(标准执行)或Execute to Grid(网格执行)方式;发布执行命令,并在结果区中查看查询结果;如果结果不正确,要进行修改,直到正确为止。