当前位置: 首页 > news >正文

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

 

相关文章:

  • 【C++】内联函数、auto、范围for循环,nullptr
  • Mybatis(第一篇)
  • nodejs+vue+elementui旅游资源网站python-java景点门票预订网站php
  • ArrayList 源码浅析
  • 毕业设计 基于单片机的智能音响设计与实现 -物联网 嵌入式 stm32
  • 【区块链】从社区平台MOJOR看,为何Web3需要原生?
  • 2022年 研究生数学建模题目
  • C# 算数运算符
  • TC8:TCP_HEADER_01-11
  • Mysql出现问题:慢查询日志失效解决方案
  • Unity接入TopOn聚合广告平台SDK【聚合了穿山甲,优量汇(腾讯广告),快手,Mintegral,sigmob等各大广告平台SDK】
  • 【leetcode】和最小的 k 个数对
  • Java 程序控制结构(4)
  • C++动态空间申请
  • WEB安全之javascript基础(一):js的引入方法注释变量数据类型
  • CentOS7 安装JDK
  • Java|序列化异常StreamCorruptedException的解决方法
  • python学习笔记-类对象的信息
  • 成为一名优秀的Developer的书单
  • 从0实现一个tiny react(三)生命周期
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 排序(1):冒泡排序
  • 如何合理的规划jvm性能调优
  • 通过npm或yarn自动生成vue组件
  • 云大使推广中的常见热门问题
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (一) springboot详细介绍
  • (原)本想说脏话,奈何已放下
  • (转)Linux下编译安装log4cxx
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • .NET中 MVC 工厂模式浅析
  • .Net中间语言BeforeFieldInit
  • ::前边啥也没有
  • [ SNOI 2013 ] Quare
  • [ 转载 ] SharePoint 资料
  • [ASP.NET 控件实作 Day7] 设定工具箱的控件图标
  • [BZOJ4016][FJOI2014]最短路径树问题
  • [C++] new和delete
  • [COGS 622] [NOIP2011] 玛雅游戏 模拟
  • [Linux] PHP程序员玩转Linux系列-telnet轻松使用邮箱
  • [PostgreSQL的 SPI_接口函数]
  • [python-opencv] PNG 裁切物体
  • [SPOJ]COT2
  • [SUCTF 2019]CheckIn1
  • [UI5 常用控件] 07.SplitApp,SplitContainer
  • [UOJ430]line
  • [USACO5.5]Hidden Password