资源描述
第4章
一、
1. SQL语言完成数据定义、数据操纵、数据控制的核心功能用了哪些动词?
数据定义:CREATE,ALTER,DROP等
数据操纵:SELECT,INSERT,UPDATE,DELETE等
数据控制:GRANTD,DENY,REOOKE等
2. 在SQL Sever 2000中关键字的含义是什么?
就是符号大写
3. 简要说明标识符的含义?
标识符用于标识SQL Server中的服务器,数据库,数据库对象,变量等。
4. 标识符首字符必须为( )、( ) 、( )、( )这四种字符之一。
a~z,A~Z,#,-或@
5. 判断23,198 是否为tinyint类型数据?
是
6. 判断-56,425 是否为tinyint类型数据?
否
7. 判断-136,597 是否为smallint类型数据?
是
8. 判断48961 是否为smallint类型数据?
否
9. 国际标准Unicode采用( )字节编码统一表示世界上的主要文字。
2
10. 浮点数据类型采用( )法存储十进制小数,包括()和()数据类型。
科学计数法,real,float
11. 在数据类型decimal(7,3)中7的含义是什么?,3的含义是什么?
表示精度为7,小数点左右两边十进制数字最大位数是7;
小数点右边十进数最大位数为3
使用数据类型decimal(7,3)保存数据456.7891,能够保存它的( )位小数?
declare @a decimal(5,3)
set @a=456.7891
print @a --结果如何?
在查询分析器运行以下程序,结果为( )。
declare @a decimal(7,3)
set @a=456.7891
print @a
3 456.789 右框运行错误
12. 用char(100)类型存放字符串abcde,使用了( )个字节。
6
13. 用Varchar(100)类型存放字符串abcde,使用了( )个字节。
6
14. 用nchar(10)类型能存放字符串hello world前( )个字符。
在查询分析器运行以下程序:
declare @str1 nchar(10)
set @str1='hello world'
print @str1
注:单引号不属于字符串的一部分,只是表示字符串的开始和结束。
10 hello worl
15. 用char(10)类型能存放字符串 河北经贸大学 前( )个字符。
在查询分析器运行以下程序:
declare @str2 char(10)
set @str2='河北经贸大学'
print @str2
注:单引号不属于字符串的一部分,只是表示字符串的开始和结束。
5 河北经贸大
16. 在字符数据类型nchar、nvarchar、ntext中,每个字符占()个字节。
2n n 1
17. 日期和时间数据类型用于存储日期和时间的结合体,包括( )和( )两种类型。
Datetime smalldatemate
18. 比较datetime类型和smalldatetime类型数据的精确程度,在查询分析器运行以下程序,显示结果为()和()。
declare @a datetime, @b smalldatetime
set @a='2011-5-29 12:30:48'
set @b='2011-5-29 12:30:48'
select @a, @b
2011-05-29 12:30:48.000 2011-05-29 12:31:00
19. bit数据类型的取值只有( )和()。
0 1
20. 下列程序中的常量分别为()、()、()和(),运行以下程序,结果为()。
declare @x int, @y int
set @x=5
if @x>0
set @y=1
else
set @y=-1
Print @y
y x @ 0 1
21. 用( )括起来的一串字符称为字符串常量。
单引号
22. 运行以下程序,结果为()。
DECLARE @var1 int
set @var1 = 50
set @var1 = @var1 + 25
print @var1
75
23. 运行以下程序,结果为()。
declare @a bit
set @a=25
Print @a
1
24. 运行以下程序,结果为()。
DECLARE @Age Int
Select @Age
NULL
25. 使用全局变量时,必须以标记符( )开头。
@@
26. 在查询分析器中,使用Print命令显示@@VERSION以及@@LANGUAGE的值分别是()和()。
当前安装的日期,版本,处理器类型 当前使用的语言名
27. 取模运算%用于返回一个整数除以另一个整数的(), 98%21的值为(),
3%21的值为(),-3%21的值为(),3.6%21的值为( )
余数 14 3 -3 3.6
28. 数学表达式47×4+(59-14)÷8在SQL Sever 2000中的书写格式为( ),并在查询分析器中计算它的值为()。
47*4+(59-14)/8 193.625
29. 数学表达式在SQL Sever 2000中的书写格式为( ),假设x的值为12,b的值为2,在查询分析器中计算它的值为()。
(x^4+5)/(b*16) 648.15625
30. 数学表达式在SQL Sever 2000中的书写格式为( ),假设a、b、c的值分别为3,9和5,在查询分析器中计算它的值为()。
(b-(b^2-4*a*c)^(1/2))/(2*a) 0.572
31. 运行以下程序,结果为( )。
DECLARE @var datetime
SET @var = '1/27/2011'
Print @var +10
02 6 2011 12:00AM
32. 运行以下程序,结果为( )。( 了解:日期+数字,数字中的整数为天,小数为时,如:0.5 为半天,即 12小时,则,0.1 约为 2.4 小时 )
DECLARE @var datetime
SET @var = '1/27/2011'
Print @var -0.5
01 26 2011 12:00PM
33. 字符串串联(连接)运算符为(),用于将两个或多个字符串连接起来。
+
34. 'SQL Sever 2000' + '数据库'的值为()。
SQL Sever 2000 数据库
35. '123' + '321'的值为(),'123' + 321的值为()。
123321 123
36. 运行以下程序,结果为()。
declare @str1 Varchar(20), @str2 varchar(20)
set @str1 = '石家庄'
set @str2 = @str1 + '是河北省会'
print @str2
另:如将上例改为
declare @str1 char(20), @str2 varchar(20)
set @str1 = '石家庄'
set @str2 = @str1 + '是河北省会'
print @str2 则结果为( )
石家庄是河北省会 石家庄
37. 在T-SQL语言中,赋值运算符只有一个为(),赋值运算符必须与()语句或()语句配合使用。
= delect int
38. 比较运算符用于比较两个表达式的大小,比较的结果为布尔值,即()、()。
Ture false
39. 假设x和y的值分别为4和9,x2+6 < 80×y的值为()。
运行以下程序:
declare @x int,@y int
set @x=4
set @y=9
if Power(@x,2)+6 < 80*@y
print '正确'
else
print '错误'
说明:power 为求幂次方 函数,在运算中,先算 乘方、再算乘法、再算加法、最后算 关系 <,所以,上述表达式结果为 逻辑值
正确
40. 'DEX' < 'DEF'的值为(),'586'<'59' 的值为(),'586'<'5' 的值为()。
Ture false false
41. 运行以下程序,结果为( )。(日期比较,按照 日期先后比较,比如:2013年 肯定 大于 2012年)
DECLARE @start1 datetime, @start2 datetime
SET @start1 = '2/19/2011'
SET @start2 = '1/11/2010'
if @start1>@start2
print '正确'
else
print '错误'
正确
42. 运行以下程序,结果为( )。(@start1和@start2 缺省日期,日期取 基础日期 1900-1-1,所以,@start1和@start2 的日期相同,按时间大小比较)
DECLARE @start1 datetime, @start2 datetime
SET @start1 = '12:21:19'
SET @start2 = '21:11:37'
if @start1 > @start2
print '正确'
else
print '错误'
错误
43. 表达式'E' IN ('A', 'B', 'C', 'L', 'N')结果为( );表达式'E' NOT IN ('A', 'B', 'C', 'L', 'N')为( )。
注意:可在 查询分析器 中用如下语句验证:
if 'E' IN ('A', 'B', 'C', 'L', 'N')
print 1
else
print 0
问题:下述结果是
if 3 IN ('a',1, 3, 5, 'L', 'N')
print 1
else
print 0
说明:in 前后表达式比较灵活,甚至可以不相同。但在实际应用中最好一致,是数值则都是数值;是字符串则都是字符串,否则可能出错。
0 1
44. 表达式17 BETWEEN 10 AND 30结果为( );17 NOT BETWEEN 10 AND 30结果为( )
Ture false
45. 布尔表达式(4>9) AND (7 < 11) 的值为( );NOT (5 > 12)的值为( )。
False ture
46. 设局部变量@a、@b、@c、@d的值分别为4,3,-2和5,则布尔表达式@a + @c > 2*@d AND @b >= 5的值为( )。
Ture
二、在查询分析器中,计算以下表达式的值,假设局部变量@x的值为3,局部变量@y的值为’abcdef’,局部变量@z的值为 -7
(1) 2*@x+@z+5 (2) 15*@z+(70-6)/@x (3) 14 % @x
(3) @y+'XYZ' (4) '12'+@z (5) 4 & 5
(6) 2 | 5 (7) 4 ^ 5
注意: 在sql中实现上述要求的方法,即,如何将用自然语言翻译成 sql 环境识别的 语句 的方法。打开 查询分析器 ,输入如下命令
Declare @x int, @y Varchar(20), @z int 假设局部变量@x, @y, @z
Set @x= 3
Set @y= 'abcdef' @x的值为3,@y的值为’abcdef’, @z的值为 -7
Set @z= -7
Print 2*@x+@z+5
其它类似
4 -84 2 abcdefXYZ 5 4 7 1
三、在在查询分析器中,计算以下函数值,假设局部变量@x的值为3,局部变量@y的值为’abcdef’,局部变量@z的值为 -7(验证函数的方法,参照 二 )
(1) ABS(@z) (2) SQRT(@x) (3)SQUARE(9)
(4) POWER(4,@x) (5)SIN(45*3.1416/180) (6) LOG(2*@x)
(7) EXP(@x) (8) ROUND(978.4564, 2) (9) CEILING(47.25)
(10) CEILING(-47.25) (11) FLOOR(47.25) (12) FLOOR(-47.25)
(13) SIGN(@z) (14) UPPER(@y) (15) LOWER('XYZ')
(16) LTRIM(' I am a syudent') (17) REPLICATE('ab',2*@x)
(18) STUFF('mnopqrstuvw',2,4,UPPER(@y)) (19) REVERSE('xyz')
(20) REVERSE(@y) (21) ASCII('a') (22) ASCII(@y)
(23) CHAR(100) (24) CHAR(30*@x) (25) STR(6.1435276,10,4)
(25) STR(6.1435276,10) (26) len(@y+space(4)) (27) len(space(4)+@y)
(28) RIGHT('SQL Sever',@x) (29) LEFT('河北经贸大学',@x-1)
(29) SUBSTRING('SQL Sever 2000',5,@x) (30) CHARINDEX('de',@y)
(31) CHARINDEX('de',@y,5) (32) REPLACE(@y,'cd','QQQQ')
(33) GETDATE( ) (34) DATEADD(DAY,20,'2011-3-15')
(35) DATEADD(DAY,20,'2011-3-15') (36) DATEADD(DAY,3*@x,'2011-3-15')
(37)DATEADD(year,@x+2,'2000-3-15')
(38)DATEDIFF(MONTH,'2010-2-5','2011-3-6')
(39)DATEDIFF(MONTH,'2010-2-5',Getdate())
(40) DATENAME(day,'2008-9-25')
(40) YEAR('04/19/1995') (41) Cast('20110928' as datetime)
(42) CONVERT(Char,Getdate(), 105) (43) '12'+str(@x)
7 1.73205 81 64 0.707108 1.79176 20.0855 978.4600 48 -47
-47 47 -48 -1 ABCDEF xyz I am a syudent mABCDEFrstuvw
abababababab 97 fedcba 97 zyx d z 6.1435 6 6 10 ver 河北
Sev 4 0 abQQQQef 2013-04-24 15:03:14.123 2011-04-04 00:00:00.000
2011-03-24 00:00:00.000 2005-03-15 00:00:00.000 13 38 25 1995
2011-09-28 00:00:00.000 24-04-2013 12, 3
在对数据库中的数据进行查询时,常用比较运算符和逻辑运算符来构造查询条件。
例如: 表示条件“x在区间[a,b]内”,在数学上写成a≤x≤b,但在SQL Server中应写成布尔表达式:
a <= x AND x <= b
例如: 表示条件“a和b之一为0,但不能同时为零”的布尔表达式可以写成:
( a = 0 AND b <> 0) OR (a <> 0 AND b = 0 )
将下列数学表达式改写为等价的T-SQL语言表达式
(1) (2) (3)a3+4ab/(a-b) (4) |a2+b2-ab|
(5) Sin45 (6) 0≤a≤50 (7)|x+y|+z5 (8) (1+xy)6 (9) (10) (11) (12) sin60+
根据条件写出相应的T-SQL表达式
1. x、y之一小于z.
2. x和y都大于z.
3. 表示“x是小于50的非负数”
4. 已知直角坐标系中任意一点的坐标(x, y), 表示其位于第1或第3象限内。
5. 将变量x的值按四舍五入保留小数点后两位。例如:x的值为123.2389,则表达式的值应为123.24。
6. 表示x是5或7的倍数
7.取字符型变量S中从第5个字符起6个字符。
8. 表示关系式10≤x≤20。
9. 产生100~150(包括100和150)范围内的一个正整数
10. 产生“A” ~“Z”范围内的一个大写字符。
提示:A的ASCII码为65,Z的ASCII码为90
9
展开阅读全文