Sql模拟答案

发布 2022-09-02 20:06:28 阅读 6045

一、(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 逻辑独立...