数据库实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库实验报告

班级:计科161

姓名:蒋东旗

指导老师:杜献峰

实验一基本表的定义、删除与修改

定义基本表

1建立学生表Stu,每个属性名的意义为Sno-学号、Sname-姓名、Ssex-性别、Sage-年龄、Sdept-所在系。这里要求Sno和Sname不能为空值,且取值唯一。Sno为主码。

create table stu

(

sno char(20) primary key,

sname char(20) unique,

ssex char(2),

sage smallint,

sdept char(20)

);

2 建立课程表Cose,其属性名意义分别为Cno-课程号, Cname-课程名, Cpno-先修课程号, Credit-学分。Cno为主码。

create table cose

(

cno char(4) primary key,

cname char(40) not null,

cpno char(4),

ccredit smallint,

foreign key(cpno)references cose(cno)

);

3 建立成绩表StuSC。其中的属性名意义分别为Sno-学号,Cno-课程号和Grade-考试成绩。Sno和Cno为主码,Sno和Cno分别为外码。

create table stusc

(

sno char(9),

cno char(4),

grade smallint,

primary key(cno,sno),

foreign key(sno)references stu(sno),

foreign key(cno)references cose(cno));

修改基本表(Alter)

1向基本表Stu中增加“入学时间”属性列,其属性名为RegisterDate,数据类型为DATE型。

Alter table

Add (RegisterDate date);

2 删除Student表的属性列RegisterDate。

Alter table stu

Drop column RegisterDate cascade constraints;

说明:为了保证后面例子能够顺利运行,请大家一定将属性列RegisterDate从Stu表中删除。

3将Sage(年龄)的数据类型改为SMALLINT型。

Alter table stu

Modify sage smallint;

4 将Stu表的属性列RegisterDate名修改为RegDate,其它不变。

Alter table

Rename column RegisterDate to RegDate;

5增加Sname(姓名)必须取唯一值的约束。

alter table

add constraint cons_sname unique(sname);

6 删除Sname(姓名)必须取唯一值的约束。

Alter table

Drop constraint cons_sname;

7 表中添加PRIMARY KEY 约束

Alter table

Add constraint PK_SC

PRIMARY KEY (sno,cno);

8 StuSC表中添加FORENGN KEY 约束

alter table turing. stusc

add constraint fk_sc

foreign key (sno) references (sno)

foreign key (cno) references (cno);

9定义SC表中grade默认值为0;

alter table turing. Stusc

modify (grade default 0)

10定义SC表中grade最小值为0,最大值为100;

alter table turing. stusc

add constraint chk_grade1

check ((0<=grade) and (grade <=100));

删除基本表

1删除Stu表(注:能直接删除student表吗为什么)。

不能,因为stusc表中的sno依赖stu表中的sno 2删除cose表(注:能直接删除course表吗为什么)。

不能,因为stusc表中的cno依赖cose表中的cno

3 删除StuSC表。

实验二 SQL语言应用

A、单表查询

无条件查询

1查询全体学生的详细记录。

select *

from student

2查询全体学生的姓名(Sname)、学号(Sno)、所在系(Sdept)。

select sname,sno,sdept

from student;

3查询全体学生的姓名(Sname)、出生年份及学号(Sno)。

select sname,sno,(2018-sage) as birthday

from student;

4查询全体学生的姓名、出生年份和学号,要求用小写字母表示学号中的字母。select sname,(2018-sage) as birthday,lower(sno)

from student;

5查询选修了课程的学生学号。

select distinct sno

from sc;

条件查询

6 查询数学系全体学生的学号(Sno)和姓名 (Sname)。

select sno,sname

from student

where sdept='数理学院';

相关文档
最新文档