思考习题一、选择题1.事务的性质中,关于原子性(atomicity)的描述正确的是()。
A 指数据库的内容不出现矛盾的状态B 若事务正常结束,即使发生故障,更新结果也不会从数据库中消失C 事务中的所有操作要么都执行,要么都不执行D 若多个事务同时进行,与顺序实现的处理结果是一致的2.使用DECLARE申明一局部变量@m,则下列能对@m进行赋值的语句是()。
A @m=100B SET @m=100C SELECT @m=100D DECLARE @m=1003.下列运算符优先级别最高的是()。
A ALLB NOTC AND D OR4.下列函数中用于将字符转换为ASCII码的函数是()。
A CHAR()B ASCII()C NCHAR()D UNICODE()5.可用于返回今天属于哪个月份的T-SQL语句是()。
A SELECT DA TEDIFF(mm,GetDate())B SELECT DA TEPART(month,GetDate())C SELECT DA TEDIFF(n,GetDate())D SELECT DA TENAME(dw,GetDate())6.下列常量中不属于字符串常量的是()。
A ’小明’B ’what’’s this’C ”小强”D ”what’s your name”7.有下述T-SQL语句DECLARE @sub varchar(10)SET @sub=’aaa’SELECT @sub=SUBSTRING(‘HELLO SQL Server’,3,3)PRINT @sub则程序执行后的现实结果为()。
A 程序报错B ’aaa’C ’LLO’D ’LO ’8.下列关于触发器的描述,正确的是()。
A 一个触发器只能定义在一个表中B 一个触发器能定义在多个表中C 一个表上只能有一种类型的触发器D 一个表上可以有多种不同类型的触发器9.下列关于存储过程的描述不正确的是()。
A 存储过程能增强代码的重用性B 存储过程可以提高运行速度C 存储过程可以提高系统安全D 存储过程不能被直接调用10.下列字符串函数中可用于返回子字符串的是()。
A LEFT()B REPLACE()C RIGHT()D SUBSTRING()二、填空题1.T-SQL中的整数类型包括()、()、()、()。
2.T-SQL流程控制语句中CASE语句分为()和()两种。
3.T-SQL中的变量分为()和()两种。
4.使用全局变量()可返回当前服务器的数目。
5.()和()运算符可用于对datetime及smalldatetime类型的值执行算术运算。
6.函数()用于以标准格式返回当前系统的日期和时间。
7.根据常量的类型不同,可分为字符串常量、二进制常量、()、()、()、()。
8.SQL Server中的运算符可以分为算术运算符、()、()、()、()、()一元运算符。
9.SQL Server提供了大量的系统函数,常用的有聚合函数、()、()、()等。
10.结束事务包括()和()。
三、简答题1.简述T-SQL中局部变量和全局变量各自的使用原则。
2.简述运算符的类型和优先顺序。
3.简述常用的流程控制语句的类型和功能。
4.简述在数据库编程中使用存储过程有哪些好处。
5.简述事务中包含的4中重要属性分别是什么。
一、选择题1.事务的性质中,关于原子性(atomicity)的描述正确的是(C )。
A 指数据库的内容不出现矛盾的状态B 若事务正常结束,即使发生故障,更新结果也不会从数据库中消失C 事务中的所有操作要么都执行,要么都不执行D 若多个事务同时进行,与顺序实现的处理结果是一致的2.使用DECLARE申明一局部变量@m,则下列能对@m进行赋值的语句是(BC )。
A @m=100B SET @m=100C SELECT @m=100D DECLARE @m=1003.下列运算符优先级别最高的是(B )。
A ALLB NOTC AND D OR4.下列函数中用于将字符转换为ASCII码的函数是(B )。
A CHAR()B ASCII()C NCHAR()D UNICODE()5.可用于返回今天属于哪个月份的T-SQL语句是(B )。
A SELECT DATEDIFF(mm,GetDate())B SELECT DATEPART(month,GetDate())C SELECT DATEDIFF(n,GetDate())D SELECT DATENAME(dw,GetDate())6.下列常量中不属于字符串常量的是(CD )。
A ’小明’B ’what’’s this’C ”小强”D ”what’s your name”7.有下述T-SQL语句DECLARE @sub varchar(10)SET @sub=’aaa’SELECT @sub=SUBSTRING(‘HELLO SQL Server’,3,3)PRINT @sub则程序执行后的现实结果为( D )。
A 程序报错B ’aaa’C ’LLO’D ’LO ’8.下列关于触发器的描述,正确的是(AD )。
A 一个触发器只能定义在一个表中B 一个触发器能定义在多个表中C 一个表上只能有一种类型的触发器D 一个表上可以有多种不同类型的触发器9.下列关于存储过程的描述不正确的是(D )。
A 存储过程能增强代码的重用性B 存储过程可以提高运行速度C 存储过程可以提高系统安全D 存储过程不能被直接调用10.下列字符串函数中可用于返回子字符串的是(ACD )。
A LEFT()B REPLACE()C RIGHT()D SUBSTRING()二、填空题1.T-SQL中的整数类型包括(int )、(bigint )、(smallint )、(tinyint )。
2.T-SQL流程控制语句中CASE语句分为(CASE )和(搜索式CASE )两种。
3.T-SQL中的变量分为(全局变量)和(局部变量)两种。
4.使用全局变量(@@connections )可返回当前服务器的数目。
5.(+ )和(- )运算符可用于对datetime及smalldatetime类型的值执行算术运算。
6.函数(getdate() )用于以标准格式返回当前系统的日期和时间。
7.根据常量的类型不同,可分为字符串常量、二进制常量、(字符串常量)、(整型常量)、(实型常量)、(日期时间常量)。
8.SQL Server中的运算符可以分为算术运算符、(赋值运算符)、(位运算符)、(比较运算符)、(逻辑运算符)、(字符串串联运算符)一元运算符。
9.SQL Server提供了大量的系统函数,常用的有聚合函数、(时间日期函数)、(字符串函数)、(数学函数)等。
10.结束事务包括(事务的名称)和(事务的状态)。
三、简答题1.简述T-SQL中局部变量和全局变量各自的使用原则。
答:局部变量使用前必须先声明,然后才能使用;全局变量一般由系统定义和维护,用户可以直接使用,一般不自定义全局变量,但用户是可以定义全局变量的。
2.简述运算符的类型和优先顺序。
答:SQL Server 2008 使用下列几类运算符:算术运算符、赋值运算符、位运算符、比较运算符、逻辑运算符、字符串串联运算符、一元运算符。
运算符有下面的优先等级(从高到低):+(正)、-(负)、~(按位NOT)*(乘)、/(除)、%(模)+(加)、(+ 串联)、-(减)=, >, <, >=, <=, <>, !=, !>, !< 比较运算符^(位异或)、&(位与)、|(位或)NOTANDALL、ANY、BETWEEN、IN、LIKE、OR、SOME=(赋值)3.简述常用的流程控制语句的类型和功能。
答:常用的流程控制语句有:BEGIN...END,用来定义语句块,让语句块作为一个整体执行;IF…ELSE。
用来根据条件执行相应的语句或语句序列;WHILE。
用来重复执行语句或语句序列。
4.简述在数据库编程中使用存储过程有哪些好处。
答:模块化程序设计。
只需要创建过程一次并将其存储在数据库中,以后即可在程序中调用该过程任意次。
提高执行速度。
如果某操作需要大量T-SQL代码或需要重复执行,存储过程将比T-SQL批代码的执行要快。
因为存储过程在第一次运行后,就驻存在高速缓存存储器中。
减少网络流量。
一个需要数百行T-SQL代码的操作由一条执行存储过程代码的单独语句就可以实现,而不需要在网络中发送数百行代码。
提高安全性。
对于没有直接授予某些语句操作权限的用户,也可以授予他们执行包含这些语句的存储过程的权限。
5.简述事务中包含的4中重要属性分别是什么。
答:事务的4个重要的属性是:Atomicity(原子性)、Consistency(一致性)、Isolation (隔离性)、Durability(持久性)。
(1)原子性Atomicity事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。
这种特性称为原子性。
(2)一致性Consistency事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态。
这种特性称为事务的一致性。
假如数据库的状态满足所有的完整性约束,就说该数据库是一致的。
(3)隔离性Isolation隔离性指并发的事务是相互隔离的。
即一个事务内部的操作及正在操作的数据必须封锁起来,不被其它企图进行修改的事务看到。
(4)持久性Durability持久性意味着当系统或介质发生故障时,确保已提交事务的更新不能丢失。
即一旦一个事务提交,DBMS保证它对数据库中数据的改变应该是永久性的,耐得住任何数据库系统故障。
持久性通过数据库备份和恢复来保证。