河北经贸数据库原理实验四

河北鸡毛大学

数据库原理实验四

实验名称

实验 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) SPJSPJ 表中插入部分数据(参照教材 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));

  1. 定义每个模式的主码;

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 ]]

成绩评定

教师签字

                   年    月    日

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值