一、(30分)操作题。
创建数据库:在该文件夹下创建一个为“jiaoxue”的数据库,主文件的初始大小为2mb,增长方式为10%增长,最大容量为10mb。日志文件初始大小为1mb,增长方式为1mb,最大容量为10mb。
jiaoxue”中包含的数据“student”表有如下结构:(sno为主键)
course”表结构:(cno为主键)
sc”表结构(sno和cno为主键)
1) 将“student”表中的记录导出到“文件中。
2) 创建一视图view_sc,要求包含学生sn、cn以及score
student”表记录如下:
course”表记录。
sc”表记录。
二、(40分)编写查询语句(要求所有命令存储于sql的文本文件中,文件名为“sql**”)
1)向“student”表中添加一条记录,sno为2007105,sn为张三,sex为男,age为20,其余字段值不填。
2)修改“course”表中记录,将“”改为“英语精读”
3)查询未选修“1001”课程号的所有学生学号。
4)查询至少选修了两门课程的学生的姓名。
5)查询同时选修了“1002”和“1003”课程的学生学号。
6)查询出每个老师的选课人数。
7)查询和“企业经营管理”学时相同的课程名称。
8)查询比该课程平均分低的学生的学号。
9)查询至少选修了“王丽娟”选修的一门课程的学生姓名。
10)删除student表中所有年龄为18岁并为女生的记录。
三、(10分)编写存储过程。
要求利用课程名称查询出选修该课程的学生姓名和成绩,并给出“计算机应用”课程的该查询信息。
四、(10分)编写触发器。
为“sc”表创建一触发器,当插入或修改一个记录时,确保此记录的成绩在0-100之间,否则不允许执行操作。
五、(10分)编写一多语句函数。
要求增加一输出列对应成绩的等级(0-59:不及格,60-70:及格,70-80:中等,80-90:良好,90-100:优秀)。
use jiaoxue
-1向“student”表中添加一条记录,sno为,sn为张三,sex为男,age为,其余字段值不填。
insert into student (sno,sn,sex,age) values ('2007105','张三','男','20')
-2修改“course”表中记录,将“英语泛读”改为“英语精读”
update course set cn='英语精读' where cno='1002'
-3查询未选修“”课程号的所有学生学号。
select distinct sno from sc where cno not in (select cno from sc where cno='1001')
-4查询至少选修了两门课程的学生的姓名。
select sn from student where sno in (select sno from sc group by sno h**ing count(cno)>=2)
-5查询同时选修了“”和“”课程的学生学号。
select sno from sc where sno in (select sno from sc where cno='1002')and cno='1003'
-6查询出每个老师的选课人数。
select tn,count(*)as '人数'from course,sc where group by tn
-7查询和“企业经营管理”学时相同的课程名称。
select cn from course where chour=(select chour from course where cn='企业经营管理'
and cn<>'企业经营管理'
-8查询比该课程平均分低的学生的学号。
select sno from sc sc1 where score<(select **g(score) from sc sc2
where
-9查询至少选修了“王丽娟”选修的一门课程的学生姓名。
select sn from student where sno in(select sno from sc where cno in
select cno from sc where sno=(select sno from student where sn='王丽娟'))
and sn<>'王丽娟'
-10删除student表中所有年龄为岁并为女生的记录。
delete from student where sex='女' and age='18'
-存储过程。
-要求利用课。
程名称查询出选修该课程的。
学生姓名和成绩,并给出“计算机应用”
课程的该查询信息。
if object_id ('pro_33','p')is not null
drop procedure pro_33
gocreate procedure pro_33
@cn char(20))
as begin
select sn,score from student,sc,course where
and and cn=@cn
end go
exec pro_33 '计算机应用'
-触发器。-为“sc”表创建一触发器,当插入或修改一个记录时,确保此记录的成绩在-100之间,否则不允许执行操作。
if object_id('tri_44','tr')is not null
drop trigger tri_44
go create trigger tri_55 on sc for update,insert
as begin
declare @score tinyint
select @score=score from inserted
if @score<=0 or @score>100
begin
print 'no'
rollback transaction
endelse
beginprint 'ok'
endend
go-多语句函数。
-要求增加一输出列对应成绩的等级(-59:不及格,-70:及格,-80:中等,-90:良好,-100:优秀)。
if object_id ('fun_5','tf')is not null
drop function fun_5
gocreate function fun_5 (@score tinyint)
returns
table table (sno char(10),cno char(10),lever char(10))
asbegin
insert into @table select sno,cno,lever=
casewhen score<60 then '不及格'
when score>=60 and score<=70 then '及格'
when score>=70 and score<=80 then '中等'
when score>=80 and score<=90 then '良好'
when score>=90 and score<=100 then '优秀'
endfrom sc
return endgo
select * from fun_5(''
sql作业答案
现有学生表 学号,姓名,性别,年龄,入学年份,籍贯,手机号码,系号,班长学号 学号是主码,系号和班长学号是外部码,手机号码必须唯一,学生的年龄不得小于10岁和大于50岁,性别必须是 男 或者 女 系表 系号,系名,系主任 其中系号是主码,系名不能有重复的。选课表 学号,课程号,成绩 学号,课程号 是...
SQL练习答案
oracle执行脚本文件的命令。start 目录 文件名。例1 参加了p2项目的员工号。select essn from works on where pno p2 23010119950101xxxx xxxxxxxxxxxxxxxxxx 例2 参加了项目名为 哈同公路 的员工名字。select ...
SQL练习答案
第一章习题答案。一 选择题。1 c 2 b 3 d 4 c 5 d6 a 7 a 8 b 9 d 10 b 11 c 12 d 13 a 14 d 15 b二填空题。1 数据库系统。2 关系。3 物理独立性。4操作系统。5 数据库管理系统 dbms 6 多对多。7 独立性。8完整性控制。9 逻辑独立...