《数据库系统概论》
实验报告
专业:软件工程(2)班 姓名:鄂小妹 学号:070107021106
题目:实验二(1)交互式SQL 语言
实验内容及完成情况:(写出每一种类型的SQL测试用例)
(一)数据定义 一、基本表操作 1.建立基本表 1)创建学生表Student,由以下属性组成: 学号SNO(INT 型,主码),姓名SNAME(CHAR 型,长度为8,非空唯一),性别SEX(CHAR型,长度为2),所在系DEPTNO (INT型)。 CREATE TABLE Student(
SNO INT PRIMARY KEY,
SNAME CHAR(8) NOT NULL UNIQUE, SEX CHAR(2), DEPTNO INT);
2)创建课程表Course,由以下属性组成:课程号CNO(INT型),课程名CNAME(CHAR 型,长度为20,非空),授课教师编号TNO(INT型),学分CREDIT(INT型)。其中(CNO, TNO)为主码。
CREATE TABLE Course( CNO INT,
CNAME CHAR(20) NOT NULL, TNO INT, CREDIT INT,
PRIMARY KEY (CNO,TNO));
3)创建学生选课表SC,由以下属性组成:学号SNO,课程CNO,成绩GRADE。所有属性
均为INT型,其中(SNO,CNO)为主码。 CREATE TABLE SC( SNO INT, CNO INT, GRADE INT,
PRIMARY KEY(SNO,CNO));
4)创建教师表Teacher,由以下属性组成:教师编号TNO(INT型,主码),教师姓名 TNAME(CHAR型,长度为8,非空),所在系DEPTNO(INT型)。 CREATE TABLE Teacher(
TNO INT PRIMARY KEY, TNAME CHAR(8) NOT NULL, DEPTNO INT);
5)创建系表Dept,由以下属性:系号DEPTNO(INT型,主码),系名DNAME(CHAR型,
长度为20,非空)。 CREATE TABLE Dept(
DEPTNO INT PRIMARY KEY, DNAME CHAR(20) NOT NULL);
2.修改基本表
1)在Student表中加入属性AGE(INT型)。 ALTER TABLE Student ADD AGE INT;
2)将Student表中的属性SAGE类型改为SMALLINT型。 ALTER TABLE Student ALTER COLUMN SAGE SMALLINT;
3.删除基本表
1)在所有操作结束后删除STUDENT表。
DROP TABLE Student;
2)在所有操作结束后删除COURSE表。
DROP TABLE Course;
3)在所有操作结束后删除SC表。
DROP TABLE SC;
4)在所有操作结束后删除TEACHER表。
DROP TABLE Teacher;
5)在所有操作结束后删除DEPT表。
DROP TABLE Dept;
二、索引操作 1.建立索引
1)在Student表上建立关于SNO的唯一索引。
CREATE UNIQUE INDEX stusno ON Student(SNO); 2)在Course表上建立关于CNO升序的唯一索引。 CREATE UNIQUE INDEX coucno ON Course(CNO); 2.删除索引
1)删除Student表上的索引stusno。 DROP INDEX stusno;
2)删除Course表上的索引coucno。 DROP INDEX coucno; 三、视图操作 1.建立视图
在插入数据的Student基本表上为计算机科学与技术系的学生记录建立一个视图 CS_STUDENT。
CREATE VIEW CS_STUDENT AS
SELECT * FROM Student
WHERE DEPTNO= (SELECT DEPTNO FROM Dept
WHERE DNAME='计算机科学与技术') WITH CHECK OPTION; 2.删除视图
在操作结束后删除视图CS_STUDENT。 DROP VIEW CS_STUDENT;
(二)数据操作 一、更新操作 1.插入数据
1)向STUDENT表插入下列数据:
1001,张天,男,10,20 1002,李兰,女,10,21 1003,陈铭,男,10,21 1004,刘茜,女,20,21 1005,马朝阳,男,20,22
INSERT INTO Student VALUES(1001,'张天','男',10,20); INSERT INTO Student VALUES(1002,'李兰','女',10,21); INSERT INTO Student VALUES(1003,'陈铭','男',10,21); INSERT INTO Student VALUES(1004,'刘茜','女',20,21); INSERT INTO Student VALUES(1005,'马朝阳','男',20,22);
2)向COURSE表插入下列数据:
1,数据结构,101,4 2,数据库,102,4 3,离散数学,103,4
4,C语言程序设计,101,2
INSERT INTO Course VALUES(1,'数据结构',101,4); INSERT INTO Course VALUES(2,'数据库',102,4); INSERT INTO Course VALUES(3,'离散数学',103,4);
INSERT INTO Course VALUES(4,'C语言程序设计',101,2);
3)向SC表插入下列数据: 1001,1,80 1001,2,85 1001,3,78 1002,1,78 1002,2,82 1002,3,86 1003,1,92
1003,3,90 1004,1,87 1004,4,90 1005,1,85 1005,4,92
INSERT INTO SC VALUES(1001,1,80); INSERT INTO SC VALUES(1001,2,85); INSERT INTO SC VALUES(1001,3,78); INSERT INTO SC VALUES(1002,1,78); INSERT INTO SC VALUES(1002,2,82); INSERT INTO SC VALUES(1002,3,86); INSERT INTO SC VALUES(1003,1,92); INSERT INTO SC VALUES(1003,3,90); INSERT INTO SC VALUES(1004,1,87); INSERT INTO SC VALUES(1004,4,90); INSERT INTO SC VALUES(1005,1,85); INSERT INTO SC VALUES(1005,4,92);
4)向TEACHER表插入下列数据: 101,张星,10 102,李珊,10 103,赵天应,10 104,刘田, 20
INSERT INTO Teacher VALUES(101,'张星',10); INSERT INTO Teacher VALUES(102,'李珊',10); INSERT INTO Teacher VALUES(103,'赵天应',10); INSERT INTO Teacher VALUES(104,'刘田', 20);
5)向DEPT表插入下列数据: 10,计算机科学与技术 20,信息
INSERT INTO Dept VALUES(10,'计算机科学与技术'); INSERT INTO Dept VALUES(20,'信息'); 2.修改数据
将张星老师数据结构课的学生成绩全部加2分 UPDATE SC
SET GRADE = GRADE + 2 WHERE CNO IN (SELECT CNO
FROM Course,Teacher
WHERE Course.TNO = Teacher.TNO AND Teacher.TNAME='张星'); 3.删除数据
删除马朝阳同学的所有选课记录