sql数据库实例(数据库入门)

  • 格式:doc
  • 大小:733.00 KB
  • 文档页数:19

下载文档原格式

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

数据库设计及应用实验

一、实验内容

创建数据库:包括Student, Course, Enroll, Statistics表,表的结构如下:Student (sno, sname, age, sex)

Course (cno, cname, credit)

Enroll (sno, cno, grade)

Statistics (sno, cNumber, creditSum)

说明:cNumber是sno学生选修课程的数目;creditSum是sno学生选修课程的总学分。

1、设计并在MS SQL Server 2000中创建以上表结构,并设置完整

性约束。

2、查询所有选修课程的学生的基本信息、课程信息及相应的考试

成绩。

3、查询所有学生的信息,若已选课就还要给出选修课程的信息及

考试成绩。

4、查询所有课程的信息,若课程有学生选修就还要给出选修课程

的学生的信息及考试成绩。

5、查询选修名为“数据库”的课程的考试成绩最高的学生的信息。

6、对Student的age创建规则,满足18≤age≤25,并给出验证实例

及验证结果。

7、创建触发器:当学生选修一门新的课程后,Statistics表的

cNumber自动加1,且creditNumber自动增加新选课程的学分。

8、创建视图:找出所有已修学分超过6、所修课程平均分不低于

60的学生的基本信息、以及所修课程的平均分。按照平均分排序,若平均分相同按照学号排序。

9、对于如下一组数据操作:

(1)select * from course;

(2)select * from course where cname=’数据库’

(3)select * from course where credit=3

(4)select * from course where credit>2 and credit<5

(5)update course set credit=3 where credit=2

对Course表的credit属性创建索引,并给出上述查询在创建了该索引后的执行计划;

去掉Course表的credit属性上创建的索引,并给出上述查询的执行计划。

对上述有无索引个查询执行的情况进行对比分析,总结出什么时候索引有效?

10、将表Student、Course、Enroll作内连接的结果发布为HTML

网页格式。

二、实验步骤及分析过程

1、设计并在MS SQL Server 2000中创建以上表结构,并设置完整性约束。

(1)创建数据库SC。

SQL语句为:create database SC 创建后的数据库如图1。

图1 创建数据库的结果

(2)创建表

创建学生表:

create table Student(

sno varchar(10) not null primary key,

sname varchar(50) not null,

age int,

sex varchar(2) not null

)

创建课程表:

create table Course(

cno varchar(10) not null primary key,

cname varchar(50) not null,

credit int not null

)

创建注册表:

create table Enroll(

sno varchar(10) not null

references Student(sno),

cno varchar(10) not null

references Course(cno),

grade int,

primary key (sno,cno)

)

创建选课情况表:

create table Statisticss(

sno varchar(10) not null primary key

references Student(sno),

cNumber int not null,

creditSum int not null,

)

创建后的表如图2。

图2 创建表的结果

(3)插入数据

Student表:

insert into Student values ('2008001','李贵斌',22,'男') insert into Student values ('2008002','冉从宝',21,'男') insert into Student values ('2008003','杨文学',20,'男') insert into Student values ('2008004','杨璐',22,'女') insert into Student values ('2008005','李小萌',20,'女')

Course表:

insert into Course values ('001','数据库',4)

insert into Course values ('002','java',3)

insert into Course values ('003','操作系统',5)

insert into Course values ('004','软件工程',4)

insert into Course values ('005','计算机英语',2)

Enroll表:

insert into Enroll values ('2008001','001',89)

insert into Enroll values ('2008002','003',98)

insert into Enroll values ('2008003','002',85)

insert into Enroll values ('2008001','004',88)

insert into Enroll values ('2008004','001',89)

insert into Enroll values ('2008002','001',90)

insert into Enroll values ('2008003','003',78)

insert into Enroll values ('2008002','004',79)