《数据库系统概论》实验报告(2)

2019-05-24 19:53

DELETE FROM SC WHERE SNO IN (SELECT SNO FROM Student

WHERE SNAME = '马朝阳'); 二、查询操作 1.单表查询

1)查询所有学生的信息。 SELECT *

FROM Student;

结果:1001 张天 男 10 20

1002 李兰 女 10 21 1003 陈铭 男 10 21 1004 刘茜 女 20 21 1005 马朝阳 男 20 22

2)查询所有女生的姓名。 SELECT SNAME FROM Student WHERE SEX = '女'; 结果:李兰

刘茜

3)查询成绩在80到89之间的所有学生选课记录,查询结果按成绩的降序排列。 SELECT * FROM SC

WHERE GRADE >= 80 AND GRADE <= 89

ORDER BY GRADE DESC; 结果:1004 1 87

1002 3 86 1001 2 85 1005 1 85 1002 2 82 1001 1 80

4)查询各个系的学生人数。 SELECT DEPTNO,count(SNO) FROM Student

GROUP BY DEPTNO; 结果:10 3

20 2 2.连接查询

查询信息系年龄在21岁以下(含21岁)的女生姓名及其年龄。

SELECT SNAME,AGE FROM Student,Dept

WHERE Student.DEPTNO = Dept.DEPTNO AND Dept.DNAME = '信息' AND AGE <= 21 AND SEX = '女'; 结果:刘茜 21 3.嵌套查询

1)查询修课总学分在10学分以下的学生姓名。 SELECT SNAME FROM Student WHERE SNO IN (SELECT SNO FROM SC,Course

WHERE SC.CNO = Course.CNO GROUP BY SNO

HAVING SUM(CREDIT)<10); 结果:陈铭 刘茜 马朝阳

2)查询各门课程取得最高成绩的学生姓名及其成绩。 SELECT CNO,SNAME,GRADE FROM Student,SC SCX

WHERE Student.SNO = SCX.SNO AND SCX.GRADE IN (SELECT MAX(GRADE) FROM SC SCY

WHERE SCX.CNO = SCY.CNO GROUP BY CNO);

结果:2 张天 85

3 陈铭 92 1 陈铭 90 4 马朝阳 92

3)查询选修了1001学生选修的全部课程的学生学号。 SELECT SNO FROM Student

WHERE NOT EXISTS (SELECT *

FROM SC SCX

WHERE SCX.SNO = 1001 AND NOT EXISTS (SELECT * FROM SC SCY

WHERE SCY.SNO = Student.SNO AND SCY.cno = SCX.cno));

结果:1001 1002

4)查询选修了张星老师开设的全部课程的学生姓名。

SELECT SNAME FROM Student

WHERE NOT EXISTS (SELECT * FROM Course WHERE TNO IN (SELECT TNO FROM Teacher

WHERE TNAME = '张星') AND NOT EXISTS (SELECT * FROM SC

WHERE SC.SNO = Student.SNO AND SC.CNO = Course.CNO)); 结果:刘茜 马朝阳

出现的问题及解决方案:

1.在创建基本表时是否可以缺省主码?

可以。在定义基本表时可以定义主码也可以先不定义主码。 2.对基本表进行修改,执行ALTER TABLE Student MODIFY Sage SMALLINT显示执行 失败。

当基本表中没有数据时,KingbaseES允许对基本表的属性类型进行修改,如上述修改

可以写成ALTER TABLE Student ALTER COLUMN SAGE SMALLINT,执行成功。但如果基本表

中已经存有数据时,系统则会给出数据将丢失的警告,不允许进行属性类型的修改。 3.在SQL Server中没有提供删除属性列的语句,KingbaseES则支持删除属性列。 如果要在基本表Student上删除属性列SNAME,可以执行ALTER TABLE Student DROP SNAME。

题目:实验四 数据控制(完整性部分)

实验内容及完成情况: 实验环境介绍:

硬件:CPU:P3 800 硬盘:30G 内存:512M

系统:Windows 2000 Advanced Server

在本实验中,我们将对完整性进行讨论,包括3类完整性、CHECK短语、CONSTRAIN 子句、触发器。因为完整性约束绝大部分是在定义表结构时进行的,因此可能需要多次定义

表,如果表名发生重复的话,可以先将旧表删除后再建立。

1. 实体完整性

【例4】定义表的主码。

关系模型的实体完整性在CREATE TABLE中用PRIMARY KEY定义。定义主码的方法 分为定义为列级约束条件和定义为表级约束条件两种。 [例4-1]定义表Student,并将其中的Sno属性定义为主码。 CREATE TABLE STUDENT(

SNO CHAR(7) PRIMARY KEY, SNAME CHAR(8) NOT NULL, SSEX CHAR(2), SAGE SMALLINT, SDEPT CHAR(20)); 或者:

CREATE TABLE STUDENT( SNO CHAR(7), SNAME CHAR(8), SSEX CHAR(2), SAGE SMALLINT, SDEPT CHAR(20), PRIMARY KEY (SNO));

[例4-2]定义表SC,将其中的属性Sno,Cno定义为主码。

对于多个属性构成的码,只能够将其定义为表级约束条件,而无法用列级约束条件来实

现。

CREATE TABLE SC(

SNO CHAR(7) NOT NULL, CNO CHAR(4) NOT NULL, GRADE SMALLINT,

PRIMARY KEY (SNO,CNO));

2. 参照完整性。

【例5】定义表的外码。

关系模型的参照完整性是在CREATE TABLE中用FOREIGN KEY语句来定义的,并用 REFERENCES来指明外码参照的是哪些表的主码。

定义表SC,其中Sno参照表Student的主码Sno,Cno参照表Course的主码Cno。 CREATE TABLE SC(

SNO CHAR(7) NOT NULL, CNO CHAR(4) NOT NULL, GRADE SMALLINT,

PRIMARY KEY (SNO,CNO),

FOREIGN KEY (SNO) REFERENCES STUDENT(SNO), FOREIGN KEY (CNO) REFERENCES COURSE(CNO));

3. 用户定义完整性。

【例6】用户定义的属性上的约束条件。

[例6-1]列值非空。在定义SC表时,Sno、Cno和Grade属性都不允许取空值。 在不特别声明的情况下,非码属性的值是允许取空值的。 CREATE TABLE SC(

SNO CHAR(7) NOT NULL, /*列值非空的约束NOT NULL*/ CNO CHAR(4) NOT NULL,

GRADE SMALLINT NOT NULL); [例6-2]列值唯一。建立部门表DEPT,要求部门名称Dname取值唯一,部门编号Deptno属

性为主码。

CREATE TABLE DEPT(

DEPTNO NUMERIC(7) PRIMARY KEY,

DNAME VARCHAR(9) UNIQUE, /*UNIQUE约束要求Dname取值唯一*/ LOCATION VARCHAR(10));

[例6-3]CHECK短语指定列值应该满足的条件。定义表Student,属性Ssex的值只允许取“男”

或“女”;定义表SC,属性Grade的值定义在0-100之间。 CREATE TABLE STUDENT(

SNO CHAR(7) PRIMARY KEY, SNAME CHAR(8) NOT NULL,

SSEX CHAR(2) CHECK(SSEX IN(‘男’,’女’)), /*CHECK语句约束条件*/ SAGE SMALLINT, SDEPT CHAR(20)); CREATE TABLE SC(

SNO CHAR(7) NOT NULL, CNO CHAR(4) NOT NULL,

GRADE SMALLINT CHECK (GRADE>0 AND GRADE<100), /*CHECK语句约束 条件*/

PRIMARY KEY (SNO,CNO),

FOREIGN KEY (SNO) REFERENCES STUDENT(SNO),


《数据库系统概论》实验报告(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:水稻旱育秧栽培(机插秧盘、抛秧盘等)技术

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: