SQL考试练习题及全部答案

Posted 兔老大RabbitMQ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL考试练习题及全部答案相关的知识,希望对你有一定的参考价值。

一.根据员工工资计算其个人所得税,3000元为起征点,超出3000元的部分按照10%的比例征收个人所得税,例如:

员工工资表

员工编号

工资

个人所得税

1

3100

2

3500

3

3800

.

.

.

.

.

.

.

.

.

则1号员工个人所得税为10元,2号员工个人所得税为50元,3号员工个人所得税为80元…,请使用游标编写一段Transact-SQL程序段,计算每个员工的个人所得税并更新员工工资表中的个人所得税。

DECLARE @eno int, @salary float, @tax float,

DECLARE etax_cursor CURSOR FOR

SELECT 员工编号,工资,个人所得税

FROM 员工工资表                                    ---2

Open   etax_cursor                                  

FETCH NEXT FROM etax_cursor

INTO @eno, @salary, @tax                            ---1

WHILE  @@fetch_status = 0 

BEGIN

   select @tax= (@salary-3000)*0.1  

   update 员工工资表

   set 个人所得税=@tax                               ---1

 

   FETCH NEXT FROM etax_cursor

   INTO @eno,@salary, @tax

END

Close etax_cursor

DEALLOCATE etax_cursor                              ---1

二、按要求实现下列操作(每题2分,共20分)

现有关系数据库如下,完成下面题目:

    学生(学号,姓名,性别,专业、奖学金)

    课程(课程号,名称,学分)

    学习(学号,课程号,分数)

1.从学生表中查询“数学”专业的学生的学号,姓名,性别。

SELECT 学号,姓名,性别

   FROM  学生

   WHERE  专业=‘数学’

2.查询平均成绩大于等于90分的成绩信息,输出列名为学号,平均成绩,并按照平均成绩的升序排序。

SELECT 学号,AVG(分数) AS 平均成绩

   FROM  学习

   GROUP BY 学号 

   Having   AVG(分数)>=90

ORDER BY AVG(分数)[微软用户1] 

3.查询没有选修课程的学生的名单。

 select *

from 学生

where 学号 not in (select distinct 学号  from 学习 )

select A.*

from 学生 A left outer join 学习 B

on A.sno = B.sno

where B.cno is null

4.检索没有获得奖学金、同时至少有一门课程成绩在90分以上的学生信息,包括学号、姓名和专业。

 SELECT学号,姓名,专业

   FROM 学生

   WHERE奖学金 is  null  AND 学号 in (select学号 from学习 where分数>90)

5.检索没有任何一门课程成绩在85分以下的所有学生的信息,包括学号、姓名和专业。

SELECT 学号,姓名,专业

   FROM 学生

   WHERE not exists

   (SELECT *

   FROM 学习

   WHERE学习.学号=学生.学号and 分数<85)

6. 将各门课程的选修人数及平均成绩定义为视图V_AVG,包括课程名称,选修人数和平均成绩。

create view V_AVG(名称, 选修人数, 平均成绩)

as

select 名称,count(学号),avg(分数)

from 学习,课程

where 学习.课程号=课程.课程号

group by  学习.课程号,名称

7.请将学号为'006',课程号为'C3',分数为92的记录插入学习表。

insert into 学习

values('006', 'C3',92)

8.请删除数学专业学生的成绩记录。

delete

from 学习

where 学号 in (select 学号 from 学生 where 专业= ‘数学’)

9.请将高等数学这门课程的成绩加5分。

  update 学习

  set 分数 = 分数 +5

where 课程号 =

(  select   课程号  from  课程  where  名称=’高等数学’)

10请将学生表的查询权限授予张英,并允许张英传播此权限。

Grant  select  on  学生

To  张英

With  grant  option

 

以上是关于SQL考试练习题及全部答案的主要内容,如果未能解决你的问题,请参考以下文章

SQL考试练习题及全部答案4

SQL考试练习题及全部答案4

SQL考试练习题及全部答案

SQL考试练习题及全部答案

SQL考试练习题及全部答案2

SQL考试练习题及全部答案2