- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间: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学生选修课程的总学分。
设计并在MS SQL Server 2000中创建以上表结构,并设置完整性约束。
查询所有选修课程的学生的基本信息、课程信息及相应的考试成绩。
查询所有学生的信息,若已选课就还要给出选修课程的信息及考试成绩。
查询所有课程的信息,若课程有学生选修就还要给出选修课程的学生的信息及考试成绩。
查询选修名为“数据库”的课程的考试成绩最高的学生的信息。
对Student的age创建规则,满足18≤age≤25,并给出验证实例及验证结果。
创建触发器:当学生选修一门新的课程后,Statistics表的cNumber自动加1,且creditNumber自动增加新选课程的学分。
创建视图:找出所有已修学分超过6、所修课程平均分不低于60的学生的基本信息、以及所修课程的平均分。按照平均分排序,若平均分相同按照学号排序。
对于如下一组数据操作:
select * from course;
select * from course where cname=’数据库’
select * from course where credit=3
select * from course where credit>2 and credit<5
update course set credit=3 where credit=2
对Course表的credit属性创建索引,并给出上述查询在创建了该索引后的执行计划;
去掉Course表的credit属性上创建的索引,并给出上述查询的执行计划。
对上述有无索引个查询执行的情况进行对比分析,总结出什么时候索引有效?
将表Student、Course、Enroll作内连接的结果发布为HTML网页格式。
实验步骤及分析过程
1、设计并在MS SQL Server 2000中创建以上表结构,并设置完整性约束。
(1)创建数据库SC。
SQL语句为:create database SC 创建后的数据库如图1。
图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
图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 i
文档评论(0)