1、第4章 一、1. SQL语言完成数据定义、数据操纵、数据控制的核心功能用了哪些动词?数据定义:CREATE,ALTER,DROP等数据操纵:SELECT,INSERT,UPDATE,DELETE等数据控制:GRANTD,DENY,REOOKE等2. 在SQL Sever 2000中关键字的含义是什么?就是符号大写3. 简要说明标识符的含义?标识符用于标识SQL Server中的服务器,数据库,数据库对象,变量等。4. 标识符首字符必须为( )、( ) 、( )、( )这四种字符之一。az,AZ,#,-或5. 判断23,198 是否为tinyint类型数据?是6. 判断-56,425 是否为ti
2、nyint类型数据?否7. 判断-136,597 是否为smallint类型数据?是8. 判断48961 是否为smallint类型数据?否9. 国际标准Unicode采用( )字节编码统一表示世界上的主要文字。210. 浮点数据类型采用( )法存储十进制小数,包括()和()数据类型。科学计数法,real,float11. 在数据类型decimal(7,3)中7的含义是什么?,3的含义是什么?表示精度为7,小数点左右两边十进制数字最大位数是7;小数点右边十进数最大位数为3使用数据类型decimal(7,3)保存数据456.7891,能够保存它的( )位小数?declare a decimal(
3、5,3)set a=456.7891print a -结果如何?在查询分析器运行以下程序,结果为( )。declare a decimal(7,3)set a=456.7891print a3 456.789 右框运行错误12. 用char(100)类型存放字符串abcde,使用了( )个字节。613. 用Varchar(100)类型存放字符串abcde,使用了( )个字节。614. 用nchar(10)类型能存放字符串hello world前( )个字符。在查询分析器运行以下程序:declare str1 nchar(10)set str1=hello worldprint str1注:单引
4、号不属于字符串的一部分,只是表示字符串的开始和结束。10 hello worl15. 用char(10)类型能存放字符串 河北经贸大学 前( )个字符。在查询分析器运行以下程序:declare str2 char(10)set str2=河北经贸大学print str2注:单引号不属于字符串的一部分,只是表示字符串的开始和结束。5 河北经贸大16. 在字符数据类型nchar、nvarchar、ntext中,每个字符占()个字节。2n n 117. 日期和时间数据类型用于存储日期和时间的结合体,包括( )和( )两种类型。Datetime smalldatemate18. 比较datetime类
5、型和smalldatetime类型数据的精确程度,在查询分析器运行以下程序,显示结果为()和()。declare a datetime, b smalldatetimeset a=2011-5-29 12:30:48set b=2011-5-29 12:30:48select a, b2011-05-29 12:30:48.0002011-05-29 12:31:0019. bit数据类型的取值只有( )和()。0 120. 下列程序中的常量分别为()、()、()和(),运行以下程序,结果为()。declare x int, y intset x=5if x0 set y=1else set
6、y=-1Print yy x 0 121. 用( )括起来的一串字符称为字符串常量。单引号22. 运行以下程序,结果为()。DECLARE var1 intset var1 = 50set var1 = var1 + 25print var17523. 运行以下程序,结果为()。declare a bitset a=25Print a124. 运行以下程序,结果为()。DECLARE Age IntSelect AgeNULL25. 使用全局变量时,必须以标记符( )开头。26. 在查询分析器中,使用Print命令显示VERSION以及LANGUAGE的值分别是()和()。当前安装的日期,版本
7、,处理器类型 当前使用的语言名27. 取模运算%用于返回一个整数除以另一个整数的(), 98%21的值为(),3%21的值为(),-3%21的值为(),3.6%21的值为( )余数 14 3 -3 3.628. 数学表达式474+(59-14)8在SQL Sever 2000中的书写格式为( ),并在查询分析器中计算它的值为()。47*4+(59-14)/8 193.62529. 数学表达式在SQL Sever 2000中的书写格式为( ),假设x的值为12,b的值为2,在查询分析器中计算它的值为()。(x4+5)/(b*16) 648.1562530. 数学表达式在SQL Sever 200
8、0中的书写格式为( ),假设a、b、c的值分别为3,9和5,在查询分析器中计算它的值为()。(b-(b2-4*a*c)(1/2))/(2*a) 0.57231. 运行以下程序,结果为( )。DECLARE var datetimeSET var = 1/27/2011Print var +1002 6 2011 12:00AM32. 运行以下程序,结果为( )。( 了解:日期+数字,数字中的整数为天,小数为时,如:0.5 为半天,即 12小时,则,0.1 约为 2.4 小时 )DECLARE var datetimeSET var = 1/27/2011Print var -0.501 26
9、2011 12:00PM33. 字符串串联(连接)运算符为(),用于将两个或多个字符串连接起来。+ 34. SQL Sever 2000 + 数据库的值为()。SQL Sever 2000 数据库35. 123 + 321的值为(),123 + 321的值为()。123321 12336. 运行以下程序,结果为()。declare str1 Varchar(20), str2 varchar(20)set str1 = 石家庄set str2 = str1 + 是河北省会print str2另:如将上例改为declare str1 char(20), str2 varchar(20)set s
10、tr1 = 石家庄set str2 = str1 + 是河北省会print str2 则结果为( )石家庄是河北省会 石家庄37. 在T-SQL语言中,赋值运算符只有一个为(),赋值运算符必须与()语句或()语句配合使用。= delect int38. 比较运算符用于比较两个表达式的大小,比较的结果为布尔值,即()、()。Ture false 39. 假设x和y的值分别为4和9,x2+6 80y的值为()。运行以下程序:declare x int,y intset x=4set y=9if Power(x,2)+6 80*yprint 正确else print 错误说明:power 为求幂次方
11、 函数,在运算中,先算 乘方、再算乘法、再算加法、最后算 关系 ,所以,上述表达式结果为 逻辑值正确40. DEX DEF的值为(),58659 的值为(),586start2 print 正确else print 错误正确42. 运行以下程序,结果为( )。(start1和start2 缺省日期,日期取 基础日期 1900-1-1,所以,start1和start2 的日期相同,按时间大小比较)DECLARE start1 datetime, start2 datetimeSET start1 = 12:21:19SET start2 = 21:11:37if start1 start2 pr
12、int 正确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 1elseprint 0问题:下述结果是if 3 IN (a,1, 3, 5, L, N)print 1elseprint 0说明:in 前后表达式比较灵活,甚至可以不相同。但在实际应用中最好一致,是数值则都是数值;是字符串则都是字符串,否则可能出错。0 144. 表达式17 BETWEEN 10 AND 30结果为( );
13、17 NOT BETWEEN 10 AND 30结果为( )Ture false45. 布尔表达式(49) AND (7 12)的值为( )。False ture46. 设局部变量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中
14、实现上述要求的方法,即,如何将用自然语言翻译成 sql 环境识别的 语句 的方法。打开 查询分析器 ,输入如下命令Declare x int, y Varchar(20), z int 假设局部变量x, y, zSet x= 3Set y= abcdef x的值为3,y的值为abcdef, z的值为 -7Set z= -7Print 2*x+z+5其它类似4 -84 2 abcdefXYZ 5 4 7 1三、在在查询分析器中,计算以下函数值,假设局部变量x的值为3,局部变量y的值为abcdef,局部变量z的值为 -7(验证函数的方法,参照 二 )(1) ABS(z) (2) SQRT(x) (
15、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
16、) 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) (
17、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(20110
18、928 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 mABCDEFrstuvwabababababab 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.0002011-03
19、-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内”,在数学上写成axb,但在SQL Server中应写成布尔表达式: a = x AND x = b 例如: 表示条件“a和b之一为0,但不能同时为零”的布尔表达式可以写成: ( a = 0 AND b 0) OR (a 0 AND b = 0 )将下列数学表达式改写为等价的T-SQL语言表达式(1
20、) (2) (3)a3+4ab/(a-b) (4) |a2+b2-ab|(5) Sin45 (6) 0a50 (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. 表示关系式10x20。9. 产生100150(包括100和150)范围内的一个正整数10. 产生“A” “Z”范围内的一个大写字符。提示:A的ASCII码为65,Z的ASCII码为909