数据库系统概论(第四版)-第三章全部实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一
【附】1、定义一个学生-课程模式S-T create schema”s-t”authorization WANG
(若上句没有模式名”s-t”,则默认为WANG) 2、删除模式ZHANG
drop schema ZHANG cascade
(cascade级联:对象全删;restrict限制)
1.建立学生-课程数据库s_t;
create database s_t
2.在数据库s_t下新建三张表:Student、Course、SC。
(1)学生表:Student(Sno,Sname,Sex,Sage,Sdept)。Student由学号(Sno)、姓名(Sname)、性别(Sex)、年龄(Sage)、所在系(Sdept)五个属性组成,其中Sno为主键。
create table Student
(Sno char(9)primary key not null,
Sname char(20)unique not null,
Ssex char(2)not null,
Sage smallint not null,
Sdept char(20)not null)
Insert into Student(Sno,Sname,Ssex,Sage,Sdept) values('200215121','李勇','男',20,'CS')
insert into Student(Sno,Sname,Ssex,Sage,Sdept) values('200215122','刘晨','女',19,'CS')
insert into Student(Sno,Sname,Ssex,Sage,Sdept) values('200215123','王敏','女',18,'MA')
insert into Student(Sno,Sname,Ssex,Sage,Sdept) values('200215125','张立','男',19,'IS')
(2)课程表:Course(Cno,Cname,Cpno,Ccredit) Course课程号(Cno)、课程名(Cname)、先行课的课程号(Cpno)、学分(Ccredit)四个属性组成,其中Cno为主键。其中Cpno参考了本表的Cno字段的值,Cno为主键
create table course
(cno char(40)primary key not null,
cname char(4)not null,
ccredit smallint not null
foreign key(Cpon)references course(Cno)) insert into Course values('1','数据库','5',4) insert into Course values('2','数学','',2)
insert into Course values('3','信息系统','1',4) insert into Course values('4','操作系统','6',3) insert into Course values('5','数据结构','7',4)insert into Course values('6','数据处理','',2) insert into Course values('7','PASCAL语言','6',4)学生选课表:SC(Sno,Cno,Grade)
SC由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,其Sno、Cno的组合为主键。create table SC
(Sno char(9)not null,
cno char(4)not null,
Grade smallint not null)
insert into SC values('200215121','1',92)
insert into SC values('200215121','2',85)
insert into SC values('200215121','3',88)
insert into SC values('200215122','2',90)
insert into SC values('200215121','3',80)
)
3基本表的修改:
a)向Student表增加“入学时间”列,期数据类型为日期型
b)将年龄的数据类型由字符型改为整型
c)增加课程名称必须取唯一值的约束条件alter table studebt add s_entrance datetime alter table student alter column sage int
alter table course add unique(cname)
实验二
1.查询全体学生的学号和姓名
select sno,sname
from student
2.查询全体学生的详细记录
select*
from student
3.查询全体学生的姓名、出生年份和所在的院系,要求用小写字母表示所有系名。select sname,'year of birth:',2011-sage,lower( sdept)
from student
4.查询选修了课程的学生学号,去掉结果中的重复行。
select distinct sno
from sc
5.查询所有年龄在20~23岁之间的学生姓名、系别和年龄。
select sname,sdept,sage
from student
where sage not between20and23