设在SQL Server 2008某数据库中有汽车表和销售表,表的定义如下: CREATE TABLE 汽车表( 汽车型号 char(10)PRIMARY KEY, 汽车名称 char(20), 颜色 varchar(10), 价格

admin2019-07-07  29

问题 设在SQL Server 2008某数据库中有汽车表和销售表,表的定义如下:
CREATE TABLE    汽车表(
汽车型号    char(10)PRIMARY KEY,
汽车名称    char(20),
颜色    varchar(10),
价格    int)
CREATE TABLE    销售表(
汽车型号    char(10),
销售时间    datetime,
销售数量    int,
PRIMARY KEY(汽车型号,销售时间),
FOREIGN KEY(汽车型号)REFERENCES 汽车表(汽车型号))
现要创建一个具有如下功能的存储过程:查询指定型号的汽车的销售总数量,并且销售总数量用输出参数返回。请补全下列代码。
CREATE【1】P1
@model varchar(10),@total int【2】
AS
【3】@total=(
SELECT【4】
FROM 销售表 s JOIN 汽车表 c ON【5】
WHERE 汽车型号 = 【6】)

选项

答案【1】PROCEDURE或PROC 【2】Output 【3】SET 【4】SUM(销售数量) 【5】s.汽车型号 =c.汽车型号或c.汽车型号 =s.汽车型号 【6】@model

解析 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,存储在数据库中经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
建立存储过程的语句:
CREATE { PROCEDURE | PROC}[schema_name] 存储过程名
[{@[存储过程参数][参数类型] data_type}
[ =默认值][OUT|OUTPUT]
][,…n][WITH RECOMPILE]
AS
BEGIN
SQL语句
END
【1】CREATE是用来建立存储过程的,根据建立存储过程的语法可知此处应该填写:PROCEDURE(或者PROC)。故【1】处应该填写PROCEDURE或PROC。
【2】题目要求“查询指定型号的汽车的销售总数量,并且销售总数量用输出参数返回。”Output类型的参数需要在存储过程的参数列表中添加。Output类型的参数传入存储过程后还会返回其运行后的值。故【2】处应该填写Output。
【3】在创建存储过程中,给变量赋值时应使用SET关键字。故【3】处应该填写SET。
【4】题目要求查询指定型号的汽车的销售总数量,因此应该对销售数量求和。SQL语句中求和函数使用的是SUM()函数。故【4】处应该填写SUM(销售数量)。
【5】使用JOIN……ON语句将销售表和汽车表进行连接,关键字ON后面需要指出连接条件,连接条件为s.汽车型号 =c.汽车型号(或c.汽车型号 =s.汽车型号)。故【5】处应该填写:s.汽车型号 =c.汽车型号或c.汽车型号 =s.汽车型号。
【6】WHERE子句用于提取那些满足指定标准的记录。本题限定汽车型号为参数@model。故【6】处应该填写:@model。
转载请注明原文地址:https://jikaoti.com/ti/Bi37FFFM
0

最新回复(0)