实验5 数据库的更新操作
二、背景知识:
(1) 单个数据插入语句
INSERT
INTO 表名 [(属性列1,属性列2 ? )] VALUES (常量1 ,常量2 ? )
(2)成批数据插入语句
INSERT
INTO 表名 [(属性列1,属性列2 ? )] 子查询 (3)删除数据语句
DELETE FROM 表名
WHERE 删除限定条件 (4)更新数据语句
UPDATE 表名
SET 属性列1=常量1,属性列2=常量2... WHERE 更新限定条件
三、实验内容
通过企业管理器或查询分析器,对XSGL数据库,利用增删改语句,对数据库进行数据维护。
四、实验步骤
1.在企业管理器中向数据库XSGL的student表加入如表5-1所示的数据
表 5-1 student表记录
学号 20069011 20069012 方法: 在企业管理器中,展开“XSGL”数据库,单击“表”目录,在右面的详细窗格中,右击表“student”,在快捷菜单中选择“打开表”,并在其及联菜单上,单击“返回所有行”,将鼠标移动到空白记录上,逐字段输入各记录值,输入完后,关闭表窗口。
2.建立一个新表‘成教表’chengjiao,结构与student表相同。
CREATE TABLE chengjiao (
姓名 李一 李二 年龄 性别 男 女 部门编号 0001 0002 出生日期 1985/1/2 1986/1/2 SNO char (8) not null unique, SNAME char(10), SEX char(2), DNO char(8), AGE smallint, BIRTHDAY datetime )
3.将一个新学生(学号:‘20067027’,姓名:‘张三’,年龄:20,所在系编号:‘0002’ )插入到学生表中。
INSERT INTO student(SNO,SNAME,AGE,DNO) VALUES ('20067027','张三',20,'0002') 4.按如下语句插入另外两个同学的信息到成教表中
INSERT INTO chengjiao(SNO,SNAME,AGE,DNO) VALUES ('20067011','王二',23,'0003')
INSERT INTO chengjiao(SNO,SNAME,AGE,DNO) VALUES ('20067021','张三',19,'0003')
说明:插入的数据必须符合数据库的完整性约束
5.将成教表chengjiao中的所有学生一次性添加到学生表student中。
INSERT INTO student (SNO,SNAME,SEX,DNO) (SELECT SNO,SNAME,SEX,DNO FROM chengjiao ) 6.依据学生的生日,计算出该学生的年龄
UPDATE student
SET AGE=(YEAR(GETDATE())-YEAR(BIRTHDAY)) 7.将所有安排在A209的课程调整到D109
UPDATE course SET ROOM='D109' WHERE ROOM='A209'
8.将选课表中的‘线性代数’课程的成绩减去4分
UPDATE sc SET GRADE=GRADE-4 WHERE CNO IN
(SELECT CNO FROM course WHERE CNAME='线性代数')
9.从排课表中删除‘杨丽’老师的所有排课纪录
DELETE FROM course WHERE TNAME='杨丽'
9.删除学院编号为空的学生记录及选课记录
DELETE FROM sc WHERE SNO IN (SELECT SNO FROM student WHERE DNO is NULL) DELETE FROM student WHERE DNO is NULL
说明:为了满足数据的完整性约束要求,必须先在选课表中删除该生的选课纪录,再在学生表中删除该名学生
10.删除表 ’excelxuanke’
DROP table excelxuanke
思考题
(1)在选课表中插入一个新的选课记录,学号为20002059,授课班号为244501,成绩80分。
(2)从选课表中删除选修‘线性代数’的选修纪录 (3)将机电学院的女生一次性添加到成教表中 (4)将所有学生的高等数学成绩加5分 (5)将学号尾数为‘4’的同学成绩加2 (6)删除电科系所有学生的选课记录
(7)将学号为“20002059”的学生姓名改为“王菲” (8)删除成绩为空的选课记录