太原理工大学数据库实验报告概要

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

本科实验报告

课程名称:数据库系统概论

实验项目:交互式SQL、数据完整性、用户鉴别与数据控制

实验地点:致远楼B503

专业班级:软件1229班学号:2012005829

学生姓名:田亚鹏

指导教师:李雪梅

2014年3 月18 日

一、实验目的和要求

熟悉通过SQL 对数据库进行操作。

二、实验内容和原理

1.在RDBMS 中建立一个学生-课程数据库,进行实验所要求的各种操作,所有的SQL 操作均在此建立的新库里进行。

2.根据以下要求认真进行实验,记录所有的实验用例及执行结果。

数据定义:基本表的创建、修改及删除;索引的创建和删除。

数据操作:完成各类查询操作(单表查询,连接查询,嵌套查询,集合查询);完成各类更新操作(插入数据,修改数据,删除数据)。

视图的操作:视图的定义(创建和删除),查询,更新(注意更新的条件)。

三、主要仪器设备

操作系统:Windows 7。

数据库管理系统:SQL Server2008。

四、操作方法与实验步骤实验数据记录实验结果

(一)数据定义:

一.基本表的操作

1.建立基本表

1)创建学生表Student,由以下属性组成:学号Sno(char 型,长度为9,

主码),姓名Sname(char 型,长度为20,唯一),性别Ssex(char 型,

长度为2),年龄(smallint),所在系(char 型,长度为20)。

create table Student

(Sno char(9) primary key,

Sname char(20) unique,

Ssex char(2),

Sage smallint,

Sdept char(20));

2)创建课程表Course,由以下属性组成:课程号Cno(char 型,主码,

长度为4),课程名Cname(char 型,长度为40),先行课Cpno(char

型,长度为4,外码),学分Ccredit(smallint)。

create table Course

(Cno char(4) primary key,

Cname char(40),

Cpno char(4),

Ccredit smallint);

若设置Cpno 外码,插入数据时会提示违反外码约束。

3)创建学生选课表SC,由以下属性组成:学号Sno(char 型,长度为9),课程号Cno(char 型,长度为4),成绩Grade(smallint),其中Sno 和

Cno 构成主码。

create table sc (Sno char(9), Cno char(4), Grade smallint,

primary key(Sno,Cno),

foreign key (Sno) references student(Sno), foreign key (Cno) references course(Cno));

2.修改基本表:

1)向 Student 表增加“入学时间列”,其数据类型为日期型。 alter table Student add S_entrance date;

2)将年龄的数据类型由字符型(假设原来的数据类型是字符型)改为整数。 alter table Student alter column Sage int;

3)增加课程名称必须取唯一值的约束条件。 alter table Course add unique(Cname);

注意:修改表结构后,再次查看表,注意观察变化。

3.删除基本表:

1)在所有的操作结束后删除 Student 表。 drop table Student;

2)在所有的操作结束后删除 Course 表。 drop table Course;

3)在所有的操作结束后删除 SC 表。 drop table SC;

思考:删除表时,不同的删除顺序会有不同结果,为什么??注意错误 提示。

二.索引操作 1.建立索引

1)为学生—课程数据库中的 Student ,Course ,SC 3 个表建立索引。其 中 Student 表按学号升序建唯一索引, Course 表按课程号升序建唯一 索引,SC 表按学号升序和课程号降序建唯一索引。 create unique index Stusno on Student(Sno); create unique index Coucno on Course(Cno);

create unique index SCno on SC(Sno ASC,Cno DESC);

2.删除索引

1)删除 Student 表的 Stusname 索引。 drop index student.Stusname;

(二)数据操作

一.更新操作

1,插入数据

1)在Student 表中插入下列数据:

200215121,李勇,男,20,CS

200215122,刘晨,女,19,CS

200215123,王敏。女,18,MA

200215125,张立,男,19,IS

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 表中插入以下数据:

1,数据库,5,4

2,数学,null,2

6,数据处理,null,2

4,操作系统,6,3

7,PASCAL 语言,6,4

5,数据结构,7,4

1,数据库,5,4

3,信息系统,1,4

insert into course(Cno,Cname,Cpno,Ccredit)values('1','数据库','5',4);

insert into course(Cno,Cname,Ccredit)values('2','数学',2);

insert into course(Cno,Cname,Ccredit)values('6','数据处理',2);

insert into course(Cno,Cname,Cpno,Ccredit)values('4','操作系统','6',3); insert into course(Cno,Cname,Cpno,Ccredit)values('7','PASCAL 语言','6',4); insert into course(Cno,Cname,Cpno,Ccredit)values('5','数据结构','7',4); insert into course(Cno,Cname,Cpno,Ccredit)values('1','数据库','5',4);

insert into course(Cno,Cname,Cpno,Ccredit)values('3','信息系统','1',4);

相关文档
最新文档