数据库期末考试试题
日本人的饮食习惯-珍珠鸟资料
有“学生选课系统”数据库,学生选课的关系模式为:
学生(学号(char(10)
),姓名(char(20)),性别(char(2)),年龄(int
),所在系
(char(20)))
课程(课程号(char(10)),课程名(char(20)),先行课(char(10)))
选课(学号(char(10)),课程号(char(10)),成绩(int))
根据给系统,用SQL语句完成下面各题。
1、创建“学生选课系统”数据库。要求数据文件
保存在“d:aa”,初始大小为8MB,
最大为100MB,增长方式为20%。日志文件保存在“e
:cc”,其余各项使用缺省
值。
2、创建“学生”表,为年龄字段设
置缺省值为20,定义性别字段的取值只能为“男”
或“女”,定义学号字段为“主码”
3、查询物理系学生的学号和年龄
4、求选修了2号课程学生学号和成绩,并要求对查询结果按成绩的升序排列,
如果成绩相同则
按学好降序排列
5、查询学生的学号,姓名,选修的课程名及成绩
6、将一个新学生记录(学号:„96002‟,姓名:„张三‟,所
在系:„英语系‟)插入
到学生表中
7、将学生表中去全部学生的年龄加上3岁
8、在学生表中删除„化学系‟的学生记录
9、建立“英语系学生”的视图,视图中包括学号,性别,年龄三个字段
10、在课程表上按“课程号”建立唯一索引
11、创建一个触发器,用于当删除学生表中指定学号对应的数据记录
时,选课表
中与该学号对应的的记录同时被删除。
答案:
--1
create
database 学生选课系统
on primary
(name =
学生选课系统_data,
filename='d:aa学生选课系统.mdf',
size=8,
maxsize=100,
filegrowth=20%)
log on
(name =学生选课系统_log,
filename =
'e:ee学生选课系统.ldf')
--2
create table 学生
(学号 char(10) primary key,
姓名 char(20),
性别 char(2) check (性别 in('男','女')),
年龄
int default 20,
所在系 char(20))
--3
select 学号,年龄
from 学生
where 所在系='物理系'
--4
select 学号,成绩
where
课程号='2'
order by 成绩 asc,学号 desc
--5
select 学生.学号 学号,姓名,选修的课程名,成绩
from 学生,课程,选课
where 学生.学号=选课.学号 and 课程.课程号=选课.课程号
--6
insert into 学生(学号,姓名,所在系)
values('96002','张三','英语系')
--7
update 学生 set 年龄=年龄+3
--8
delete
from 学生
where 所在系='化学系'
--9
create view 英语系学生
as
select 学号,性别,年龄
from 学生
where 所在系='英语系'
--10
create unique index IX_课程号 on 课程(课程号)
--11
create trigger trig1 on 学生
for
delete
as
declare @SID char(10)
select
@SID=学号 from deleted
begin
delete from 选课
where 学号=@SID
end
有“学生选课系统”数据库,学生选课的关系模式为:
学生(学号(char
(10)),姓名(char(20)),性别(char(2)),年龄(int
),所在系
(char(20)))
课程(课程号(char(10)),课程名(char(20)),先行课(char(10)))
选课(学号(char(10)),课程号(char(10)),成绩(int))
根据给系统,用SQL语句完成下面各题。
1、创建“学生选课系统”数据库。要求数据文件
保存在“d:aa”,初始大小为8MB,
最大为100MB,增长方式为20%。日志文件保存在“e
:cc”,其余各项使用缺省
值。
2、创建“学生”表,为年龄字段设
置缺省值为20,定义性别字段的取值只能为“男”
或“女”,定义学号字段为“主码”
3、查询物理系学生的学号和年龄
4、求选修了2号课程学生学号和成绩,并要求对查询结果按成绩的升序排列,
如果成绩相同则
按学好降序排列
5、查询学生的学号,姓名,选修的课程名及成绩
6、将一个新学生记录(学号:„96002‟,姓名:„张三‟,所
在系:„英语系‟)插入
到学生表中
7、将学生表中去全部学生的年龄加上3岁
8、在学生表中删除„化学系‟的学生记录
9、建立“英语系学生”的视图,视图中包括学号,性别,年龄三个字段
10、在课程表上按“课程号”建立唯一索引
11、创建一个触发器,用于当删除学生表中指定学号对应的数据记录
时,选课表
中与该学号对应的的记录同时被删除。
答案:
--1
create
database 学生选课系统
on primary
(name =
学生选课系统_data,
filename='d:aa学生选课系统.mdf',
size=8,
maxsize=100,
filegrowth=20%)
log on
(name =学生选课系统_log,
filename =
'e:ee学生选课系统.ldf')
--2
create table 学生
(学号 char(10) primary key,
姓名 char(20),
性别 char(2) check (性别 in('男','女')),
年龄
int default 20,
所在系 char(20))
--3
select 学号,年龄
from 学生
where 所在系='物理系'
--4
select 学号,成绩
where
课程号='2'
order by 成绩 asc,学号 desc
--5
select 学生.学号 学号,姓名,选修的课程名,成绩
from 学生,课程,选课
where 学生.学号=选课.学号 and 课程.课程号=选课.课程号
--6
insert into 学生(学号,姓名,所在系)
values('96002','张三','英语系')
--7
update 学生 set 年龄=年龄+3
--8
delete
from 学生
where 所在系='化学系'
--9
create view 英语系学生
as
select 学号,性别,年龄
from 学生
where 所在系='英语系'
--10
create unique index IX_课程号 on 课程(课程号)
--11
create trigger trig1 on 学生
for
delete
as
declare @SID char(10)
select
@SID=学号 from deleted
begin
delete from 选课
where 学号=@SID
end