河北鸡毛大学
数据库原理实验四
实验名称 | 实验 4 数据更新和完整性 | ||
实验目的 | 1.熟练掌握在 SQL Server 的企业管理器和查询分析器中进行数据更新的方法。 2.熟练掌握数据库的插入、修改和删除数据的操作方法,加深对标准 SQL 更新语句的理解。 3. 了解 SQL Server 用约束来维护数据完整性的机制。 4.掌握在企业管理器和查询分析器中如何创建、使用及删除约束的方法。 | ||
实验仪器 | PC | ||
实验内容 | 第一部分 数据更新 1.在教学管理 JXGL 数据库中进行如下操作: (1) 将一个新学生记录(学号:95020;姓名:陈冬;性别:男;所在系:IS;年龄:18)插入 STUDENT 表中。 INSERT INTO STUDENT VALUES('95020','陈冬','M',19,'IS'); 2)数据的插入操作:插入一条选课记录,学号为 95020 的学生选修了 1 号课程。 9INSERT INTO SC(Sno,Cno) VALUES('95020','1'); 3)对每门课程,求学生的平均分数,并把结果存入数据库。 CREATE TABLE AGRADE (Cno CHAR(2),AGrade INT); INSERT INTO AGRADE SELECT Cno,AVG(Grade) FROM SC GROUP BY Cno; 4)将学生 95020 转到数学系。 UPDATE STUDENT SET Sdept='MA' WHERE Sno='95020' 5)所有学生成绩乘系数 0.8。 UPDATE SC SET Grade=Grade*0.8 6)删除 95020 学生的记录。 DELETE FROM SC WHERE Sno='95020' DELETE FROM STUDENT WHERE Sno='95020' 7)删除数学系所有学生的选课记录。 2.在供应系统 GYXT 数据库中进行如下操作: (1) 往 S,P,J,SPJ 表中插入部分数据(参照教材 P64 页,此题实验一已完成) (2) 将供应商序号为 S5 的名称改为宏民厂。 UPDATE S SET Sname='宏民厂' WHERE Sno='S5' (3)S 表中删除供应商序号为 S5 的记录,考虑对 SPJ 表的相应操作。 DELETE FROM S WHERE SNO='S5' DELETE FROM SPJ WHERE SNO= 'S5' (4)在 S 表中插入一条供应商信息:(S6,华天,深圳)。 INSERT INTO S VALUES('S6','华天','深圳') (5)把全部红色零件的颜色改为粉红色。 UPDATE P SET COLOR='粉红' WHERE COLOR='红' (6)将 S1 供应给 J1 的零件 P1 改为由 S2 供给。 UPDATE SPJ SET SNO='S2' WHERE SNO='S1'AND JNO='J1'AND PNO='P1' (7) 删去全部蓝色零件及相应的 SPJ 记录。 DELETE FROM SPJ WHERE PNO IN( SELECT PNO FROM P WHERE COLOR='蓝') 第二部分 完整性 1.在教学管理 JXGL 数据库中进行如下操作: (1) 建立一个 CITY 表(CityNo,CityName),将 CityNo 指定为主键。 CREATE TABLE CITY ( CityNo CHAR(2) CONSTRAINT c1 PRIMARY KEY, CityName VARCHAR(30) NOT NULL); (2) 为 JXGL 数据库中的 CITY 表,为其“CityName”创建惟一约束。 ALTER TABLE CITY ADD CONSTRAINT c2 UNIQUE(CityName); (3) 为 JXGL 数据库中的 SC 表,为其“GRADE”创建检查约束。 ALTER TABLE SC ADD CONSTRAINT c3 CHECK(GRADE>=0 AND GRADE<=100); (4) 为 JXGL 数据库中的 STUDENT 表,为其“Ssex”创建默认约束’M’。 ALTER TABLE STUDENT ADD CONSTRAINT c4 DEFAULT 'M' FOR Ssex; (5) 为 JXGL 数据库中的 SC 表,为其“Sno”创建外键约束。 ALTER TABLE SC ADD CONSTRAINT c5 FOREIGN KEY(Sno) REFERENCES STUDENT(Sno); (6) 查看约束的定义 见图 (7) 删除约束 ALTER TABLE <表名> DROP CONSTRAINT <约束名>; 例如,删除上例在 JXGL 数据库中为 SC 表的“Sno”列创建的外键约束。 ALTER TABLE SC DROP CONSTRAINT c5; 2.创建人事关系 RSGX 数据库,并定义职工和部门两个关系模式: 职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码; 部门(部门号,名称,经理名,电话),其中部门号为主码; 要求在模式中完成以下完整性约束条件的定义: CREATE DATABASE RSGX; CREATE TABLE 职工 (职工号 CHAR(10) NOT NULL, 姓名 CHAR(10), 年龄 SMALLINT, 职务 CHAR(10), 工资 INT, 部门号 CHAR(10)); CREATE TABLE 部门 (部门号 CHAR(10) NOT NULL, 名称 CHAR(10), 经理名 CHAR(10), 电话 CHAR(15));
ALTER TABLE 职工 ADD CONSTRAINT c1 PRIMARY KEY(职工号); ALTER TABLE 部门 ADD CONSTRAINT c2 PRIMARY KEY(部门号); (2) 定义参照完整性; ALTER TABLE 职工 ADD CONSTRAINT c3 FOREIGN KEY(职工号) REFERENCES 部门(部门号); (3) 定义职工年龄不得超过 60 岁。 ALTER TABLE 职工 ADD CONSTRAINT c4 CHECK(年龄<=60); | ||
实验结论 | ALTER TABLE<表名> [ADD CONSTRAINT <完整性约束名> PRIMARY KEY<列名>] [ADD CONSTRAINT <完整性约束名> FOREIGN KEY<列名> REFERENCES <表名><列名>] [ADD CONSTRAINT <完整性约束名> CHECK(条件)] [DROP CONSTRAINT<完整性约束名>[RESTINCT|CASCADE ]] | ||
成绩评定 | 教师签字 | 年 月 日 |