sql数据库实例(数据库入门)
数据库设计及应用实验
实验内容
创建数据库:包括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网页格式。
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
sql数据库实例(数据库入门) 来自淘豆网m.daumloan.com转载请标明出处.