6[单选题] 数据库镜像有很多优点,但不包括( )。
A.数据库镜像提供完整或接近完整的数据冗余,增强数据保护功能
B.发生灾难时,数据库镜像可快速使数据库的备用副本提供服务
C.数据库镜像可以降低应用成本
D.提高生产数据库在升级期间的可用性
参考答案:C
参考解析:数据库镜像是一种简单的策,具有下列优点:①增强数据保护功能。数据库镜像提供完整或接近完整的数据冗余,具体取决于运行模式是高安全性模式还是高性能模式;②提高数据库的可用性。发生灾难时,在具有自动故障转移功能的高安全性模式下,自动故障转移可快速使数据库的备用副本在线(而不会丢失数据)。在其他运行模式下,数据库管理员可以选择强制服务(可能丢失数据),以替代数据库的备用副本;③提高生产数据库在升级期间的可用性。因为数据库镜像技术需要额外存放数据的空间,所以会增加应用成本。
7[填空题] 设在SQL Server 2008某数据库中有按如下格式定义的存储过程首部:
CREATE PROC Pl@X int,@Y int,@Z int output AS…
请补全下列调用该存储过程的语句。
DECLARE@S int
EXEC Pl 20,30,@S【7】
参考解析:
output
【解析】存储过程是SQL语句和可选控制流语句的预编译集合,它用一个名字存储一个处理单元。创建存储过程为:
CREATE Procedure过程名([参数1,参数2,…])
AS;
默认的参数全为输入参数,如果包含输出参数,在相应的参数后面加0utput标识。如:
CREATE Procedure过程名([参数1,参数2 0utput,…])
AS;
执行存储过程时则调用EXEC存储过程名参数名1,参数名2 0utput,执行存储过程的参数与CREATE时的参数对应。
8[填空题] 设某数据库中作者表(作者号、城市)和出版商表(出版商号,城市)。请补全如下查询语句,使该查询语句能查询出在作者表里而不在出版商表中的城市。
SELECT城市FROM作者表作者
【9】
(SELECT城市FROM出版商表)
参考解析:
WHERE作者.城市NOT IN要查询有作者但是没有出版社的结果集,可以采用子查询手段,即从作者表中查询城市,且城市不在出版社所在的城市。这时我们可以用NOT IN来实现,NOT IN的结果集是在外查询中存在,但是在内查询中不存在的记录。
9[填空题] 数据库系统出现故障是不可避免的。当数据库系统出现事务故障和系统故障时需使用数据库的【12】文件进行恢复。
参考解析:日志
【解析】数据库出现事务故障和系统故障时,需要使用数据库的日志文件进行恢复。
10[简答题] 设在SQL Server 2008某数据库中有商品表和销售表,两个表的定义如下:
CREATE TABLE商品表(
商品号char(10)PRIMARY KEY,
商品名varchar(40),
类别varchar(20),
进货单价int)
CREATE TABLE销售表(
商品号char(10),
销售时间datetime,
销售数量int,
销售单价int,
PRIMARY KEY(商品号,销售时问))
下面是一个用户定义的多语句表值函数,它接受类别作为输入参数,返回该类别下的每种商品在2012年的销售总利润,并将结果按照销售总利润的降序输出。请补全该函数定义代码。(10分)
CREATE FUNCTION f_Profit(@lb char(10))【1】@ProfitTable【2】(商品号char(10),总利润int)
AS
BEGIN
INSERT INTO@ProfitTable
【3】
【4】
END
参考解析:
【解题思路】
用户定义的多语句表值函数的命令格式为:
CREATE FUNCTION[schema_name.]function name
([{@parameter_name[AS][type_schema_name.]parameter_data_type
[=default]}
[….n]
]
)
RETURNS@return_variable TABLE
[WITH[[,]…n]]
[AS]
BEGIN
function_body
RETURN
END
[;]
::=
({
J}
[][,…n]
)
题目要求返回指定类别下的每种商品在2012年的销售总利润,并且将结果按照销售总利润的降序输出。采用复合SQL语句的格式,先查出指定类别的所有商品号:SELECT商品号FROM商品表WHERE类别=@lb,其中@lb为函数的传人参数,然后在销售表中用GROUP BY对商品号进行分组,并采用SUM计算每个分组的总和。
【参考答案】
第一空:RETURNS
第一空:table
第三空:SELECT a.商品号,SUM(销售数量*(销售单价一进货单价))AS总利润FROM销售表a JOIN商品表b ON a.商品号=b.商品号WHERE a.商品号IN(SELECT商品号FROM商品表WHERE类别=@lb)GROUP BY a.商品号0RDER BY总利润DESC
第四空:RETURN@ProfitTable
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |