数据库实验3答案Word文件下载.docx
《数据库实验3答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库实验3答案Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。
3.2
数据操作
完成各类更新操作包括:
1.
插入数据
2.
修改数据
3.删除数据
3.3
数据查询操作
完成各类查询操作
单表查询
分组统计
3.连接查询
4.嵌套查询
5.集合查询
3.4
创建视图
视图查询
参考示例:
建立一个学生选课数据库,练习对表、视图和索引等数据库对象的各种操作。
一、数据定义
创建学生选课数据库ST,包括三个基本表,其中Student表保存学生基本信息,Course表保存课程信息,SC表保存学生选课信息,其结构如下表:
表1.Student表结构
列名称
用途
类型
长度
约束
备注
Sno
学号
字符
8
主键
Sname
姓名
Ssex
性别
2
Sage
年龄
整型
Sdept
所在系
20
Sclass
班级
4
表2.Course表结构
Cno
课程号
Cname
课程名
40
Cpno
先修课程号
Ccredit
学分
表3.SC表结构
外键
Grade
成绩
1.创建、修改及删除基本表
(1)创建Student表
CREATETABLEStudent
(SnoCHAR(8)PRIMARYKEY,
SnameCHAR(8),
SsexCHAR
(2)NOTNULL,
SageINT,
SdeptCHAR(20)
);
(2)创建Course表
CREATETABLECourse
(CnoCHAR(4)PRIMARYKEY,
CnameCHAR(40)NOTNULL,
CpnoCHAR(4),
CcreditSMALLINT,
(3)创建SC表
CREATETABLESC
(SnoCHAR(8)FOREIGNKEY(Sno)REFERENCESStudent(Sno),
CnoCHAR(4),
GradeSMALLINT,
(4)创建员工表Employee
CREATETABLEEmployee
(
编号CHAR(8)PRIMARYKEY,
姓名VARCHAR(8)notnull
部门CHR(40),
工资numeric(8,2),
生日datetime,
职称char(20),
);
指出该语句中的错误并改正后执行。
(5)检查表是否创建成功
SELECT*FROMStudent
SELECT*FROMCourse
SELECT*FROMSC
SELECT*FROMEmployee
(6)修改表结构及约束
●增加班级列
ALTERTABLEStudentADDSclasschar(4)
●修改年龄列
ALTERTABLEStudentALTERCOLUMNSagesmallint
●增加约束
ALTERTABLECourseADDUNIQUE(Cname)
(7)删除表
DROPTABLEEmployee
2.创建索引
(1)为Course表按课程名称创建索引
CREATEINDEXiCnameOnCourse(Cname)
(2)为Student表按学生姓名创建唯一索引
CREATEUNIQUEINDEXiSnameONStudent(Sname)
(3)为SC表按学号和课程号创建聚集索引
CREATECLUSTEREDINDEXiSnoCnoOnSC(Sno,Cnodesc)
(4)为Course表按课程号创建唯一索引
请自己完成该操作
3.创建视图
建立信息系学生的视图:
CREATEVIEWIS_Student
AS
SELECTSno,Sname,SageFROMStudent
WHERESdept='
IS'
;
将如下表格中的数据分别插入到数据库相应的表中:
表4.学生基本信息表
20100001
李勇
男
CS
1001
20100002
刘晨
女
19
20100021
王敏
18
MA
1002
20100031
张立
IS
1003
20100003
刘洋
20100010
赵斌
1005
20100022
张明明
表5.课程信息表
先修课程号
1
数据库系统原理
56
高等数学
3
管理信息系统
操作系统原理
6
5
数据结构
7
数据处理
C语言
表6.学生选课信息表
92
85
88
90
80
(1)插入到Student表
INSERTINTOStudentVALUES('
20100001'
'
李勇'
男'
20,'
CS'
1001'
)
20100002'
刘晨'
女'
19,'
INSERTINTOStudent(Sno,Sname,Ssex,Sage,Sdept,Sclass)VALUES('
20100021'
王敏'
18,'
MA'
1002'
INSERTINTOStudent(Sno,Sname,Ssex,Sage,Sdept,sclass)VALUES('
20100031'
张立'
1003'
INSERTINTOStudent(Sno,Sname,Ssex,sclass)VALUES('
20100003'
刘洋'
检查下列语句中的错误,并改正:
20100010'
赵斌,'
19'
1005'
20100022'
张明明'
(2)插入到Course表
INSERTINTOCourse(Cno,Cname,Cpno,Ccredit)VALUES('
1'
数据库系统原理'
'
5'
4)
2'
高等数学'
null,2)
3'
管理信息系统'
请写出插入其余行的插入语句,并插入数据。
(3)插入到SC表
INSERTINTOSCVALUES('
92)
80)
INSERTINTOSC(Sno,Cno)VALUES('
INSERTINTOSC(Sno,Cno,Grade)VALUES('
null)
请写出插入其余行的插入语句,并运行。
(4)多行插入到表中
创建存一个表,保存学生的学号、姓名和年龄:
CREATETABLEcs_Student
学号char(8),
姓名char(8),
年龄smallint
插入数据行:
INSERTINTOcs_Student
SELECTSno,Sname,Sage
FROMstudentWhereSdept='
(5)检查插入到表中的数据
(1)将学生20100001的年龄改为22岁。
UPDATEstudentSETSage=22WHERESno='
(2)将所有学生的年龄增加一岁。
UPDATEStudentSETSage=Sage+1
(3)填写赵斌同学的管理信息系统课程的成绩
UPDATESCSETGrade=85
WHERESno='
ANDCno='
(4)将计算机科学系全体学生的成绩加5分
UPDATEscSETGrade=Grade+5
WHERE'
=(selectSdeptfromstudentwherestudent.Sno=sc.Sno);
(5)请自己完成如下操作
●将刘晨同学的2号课程成绩修改为80
●将“20100021”同学的学号修改为“20100025”
(6)检查数据是否修改
(1)删除学号为201000022的学生记录
DELETEFROMStudentWHERESno='
(2)删除学号20100001学生的1号课程选课记录
将选课信息复制到一个临时表tmpSC中:
SELECT*INTOtmpSCFROMSC
在tmpSC中执行删除操作:
DELETEFROMtmpSCWHERESn