ORACLE与数据库原理作业 习题四(答案全)

首先声明:这个是我尽力自己做的,不能保证百分之百正确,毕竟老师没发答案给我对

一、选择题

  1. SQL Server 2008 提供的单行注释语句是使用( A )开始的一行内容。
    A. /* B. – C. { D. /
  2. 在 SQL Server 2017 中局部变量名以字符( D )开头 。
    A. * B. #C C. @@ D. @
  3. 以下关于运算符的优先级描述正确的是( C )。
    

A. 逻辑运算符的优先级最高
C. + 运算符比逻辑运算符高

B. * 运算符的优先级比括号内部的高
D. 逻辑运算符比* 运算符高

  1. 语句"SELECT DATENAME ( MONTH,getdate( )) AS 'Month Name"”的输出结果为(C )。
    

A. Month Name B. 当前日期 C. 当前月份 D. 当前时间
5. 下列( A )不是 SQL 的合法常量。
A. N’a student’ B. 0xABC C. 1998-04- 15 D. 2.0
6. 下列说法不正确的是( C)。
A、全局变量是由 SQL Server 系统提供并赋值的变量
B、全局变量的引用超出作用域会出错
C、可在程序中用全局变量测试系统的设定值
D、引用全局变量时必须以@@开头。
7. 在 SQL Server 中的 Case……End 语句属于(C)。
A、顺序结构 B、循环结构 C、分支结构 D、语句块结构
8. 下列说法错误的是( B )。
A. 语句体包含一个以上语句需要采用 BEGIN … . END
B. 多重分支只能用 CASE 语句
C. WHILE 中循环体可以一次不执行
D. 注释内容不会产生任何动作
9. 关于循环说法错误的是( B )。
A. GOTO 语句可以跳出多重循环

B. CONTINUE 语句跳过循环体没有执行的其他语句
C. BREAK 语句跳出当前最内层循环
D. RETURN 跳到最外面循环

  1. 下面程序段的执行结果为( Declare @m int,@n int Select @m=0, @n=0 While @m<30
    Begin
    Set @n=@n+3
    Set @m=@m+@n End
    Select @m, @n
    A 、30 12 B 、30 11

(A)

C 、33 9 D 、30 10

  1. 下面程序段的执行结果为( C )
    Declare @x int
    Set @x=9
    Print
    Case
    When @X>10 Then ‘Ok1’
    When @X>20 Then ‘Ok2’
    Else ‘Ok3’
    End
    A 、 Ok1 B 、Ok2 C 、Ok3
    D 、Ok1 Ok2 Ok3

二、判断题

  1. 错 在循环结构中,循环头 WHILE 的条件判定后,一定会执行循环体。
  2. 对 分支语句和循环语句各自可以嵌套, 也可以相互嵌套。
  3. 对 PRINT 语句一次可以输出若干个常量或表达式的值。
  4. 对 局部变量可以保存单个特定类型数据值的对象。
  5. 对 全局变量必须先用declare 语句定义后才可以使用。
  6. 对 datetime 常量和decimal 常量都必须用单引号括起来。
  7. 错 一个 SET 语句只能给一个局部变量赋值,而一个 select 语句可为多个局部变量赋值。
  8. 错 变量主要是保存程序输出的数据,程序结束后这些数据永久地存储在外存中。
  9. 对 局部变量是用户自定义的,全局变量的系统提供的。
  10. 错 作为全局变量,任何程序均可随时调用

三、 操作题

  1. 定义用户变量today,并使用一条 SET语句和一条 SELECT 语句把当前的日期赋值给它。
    

DECLARE @today
SET @today=GETDATE();
SELECT @today;

  1. 利用 Transact-SQL 语句声明一个长度为 16 的 nchar 型变量 bookname,并赋初值为“SQL
    

Server 数据库编程”。
DECLARE @bookname nchar(16)
SET @bookname=’SQL’
3. 使用循环计算一个数的阶乘。
DECLARE @s, @i,@m
SET @s=100
SET @i=1
SET @m=1
WHILE(@i<=100)
BEGIN
SET @m=@m*@i
END
SET @i=@i+1
END
PRINT @m
4. 编程计算两个任意日期的时间差。
DECLARE @day1,@day2,@daysum
SET @day1= GETDATE()
SET @day2= GETDATE()
SELECT datediff(DAY,day1 ,day2) as daysum
PRINT @daysum
5. 编程求 50~100 之间所有能被 3 整除的奇数之和。
DECLARE @a,@b
SET @a=50
SET @b=0
WHILE(@a<=100)
IF @a%2!=0 AND @a%3==0
BEGIN
@b=@b+@a
END
ENG
PRINT @b
6. 判定一个整数 N 是否是素数(用小于 N 的整数依次除 N)
CREACT FUNCTION S(@a int)
RETURNS TINYINT
as
BEGIN
IF @a <=1
RETURN 0
DECLRAE @max,@b
SET @max = @a -1
SET @b = 2
WHILE @b < @max
BEGIN
DECLARE @max2 ,@c
SET @max2 = @c
SET @c = @b
WHILE @c< @max2
BEGIN
IF @c * @b = @a
RETURN 0
SET @c = @c + 1
END
SET @b = @b+ 1
END
RETURN 1
END
PRINT S


如果这篇文章对你帮助很大,麻烦帮忙,点下友情链接: 鱼儿项目网(直接点这里),进去之后切换几个页面,停留几十秒。感激不尽。本站采集全网自媒体,网赚类,电商营销课程。里面有一些免费项目大家也可以看看

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m明月Java3

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值