返回顶部
首页 > 资讯 > 数据库 >计算机三级数据库大题及答案
  • 562
分享到

计算机三级数据库大题及答案

数据库sqlmysql 2023-09-26 09:09:18 562人浏览 独家记忆
摘要

(1) 设在SQL Server 2008某数据库中有商品表和销售表,表的定义如下: CREATE TABLE 商品表(   商品号 char(10) PRIMARY KEY,   商品名

(1) 设在SQL Server 2008某数据库中有商品表和销售表,表的定义如下:
CREATE TABLE 商品表(
  商品号 char(10) PRIMARY KEY,
  商品名 char(20) NOT NULL,
  销售总量 int DEFAULT 0)
CREATE TABLE 销售表(
  商品号 char(10),
  销售时间 datetime,
  销售数量 int NOT NULL,
  PRIMARY KEY(商品号,销售时间),
  FOREIGN KEY(商品号) REFERENCES 商品表(商品号))
现要创建一个具有如下功能的触发器:每当在销售表中插入一条销售记录时,修改商品表中对应商品的销售总量,假设一次只插入一条销售记录。请补全下列代码。

CREATE TRIGGER tri_insert on [1] FOR [2]AS[3] 商品表 [4] 销售总量= [5] +(SELECT 销售数量 FROM [6])WHERE 商品号 IN (SELECT 商品号 FROM Inserted)

参考答案:

  [1]:销售表  [2]:INSERT  [3]:UPDATE  [4]:SET  [5]:销售总量或商品表.销售总量  [6]:Inserted

(2)设在sql Server 2008某数据库中有商品表和销售表,表的定义如下:
CREATE TABLE 商品表(
  商品号 char(10) PRIMARY KEY,
  商品名 char(20) NOT NULL,
  单价 int DEFAULT 0)
CREATE TABLE 销售表(
  商品号 char(10),
  销售时间 datetime,
  销售数量 int NOT NULL,
  PRIMARY KEY(商品号,销售时间),
  FOREIGN KEY(商品号) REFERENCES 商品表(商品号))
现要创建一个具有如下功能的用户自定义标量函数:根据指定的商品号,返回该商品的销售总金额。请补全下列代码(请不要为表起别名)。

CREATE FUNCTioN dbo.f_TotalQty(@GoodID [1]) [2]intAS [3]RETURN(SELECT [4](单价 * 销售数量) FROM 商品表          JOIN [5]          ON [6]          WHERE 商品号 = [7]) [8]

答案:

  [1]:Char  [2]:RETURNS  [3]:BEGIN  [4]:SUM  [5]:销售表  [6]:商品表.商品号 = 销售表.商品号 或 销售表.商品号 = 商品表.商品号  [7]:@GoodID  [8]:END

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

CREATE TABLE 销售表(
  汽车型号 char(10),
  销售时间 datetime,
  销售数量 int,
  PRIMARY KEY(汽车型号,销售时间),
  FOREIGN KEY(汽车型号) REFERENCES 汽车表(汽车型号))

现要创建一个具有如下功能的存储过程:查询指定日期范围内汽车的销售情况,列出汽车型号和销售总数量,包括没有被销售过的汽车。请补全下列代码。

CREATE [1] p1  @start_date date, @end_date dateAS  SELECT [2].汽车型号, [3]   FROM 汽车表 [4] 销售表 ON 汽车表.汽车型号 = 销售表.汽车型号   WHERE 销售时间 BETWEEN [5] AND [6]   GROUP BY 汽车表.汽车型号

参考答案:

  [1]:PROC或PROCEDURE  [2]:汽车表  [3]:SUM(销售数量)  [4]:LEFT JOIN或LEFT OUTER JOIN  [5]:@start_date  [6]:@end_date

(4)设在SQL Server 2008某数据库中有汽车表和销售表,表的定义如下:

CREATE TABLE 汽车表(
  汽车型号 char(10) PRIMARY KEY,
  汽车名称 char(20),
  颜色 char(10),
  销售总数量 int default 0)

CREATE TABLE 销售表(
  汽车型号 char(10),
   销售时间 datetime,
  销售数量 int,
  PRIMARY KEY(汽车型号,销售时间),
  FOREIGN KEY(汽车型号) REFERENCES 汽车表(汽车型号))

现要创建一个具有如下功能的后触发型触发器:每当在销售表中插入数据时,自动更新汽车表中相应型号的汽车的销售总数量(假定一次只插入一行数据)。请补全下列代码。

CREATE TRIGGER tri_sales ON [1] AFTER [2]AS  DECLARE @Sales_Amount int  SET @Sales_Amount= (     SELECT 销售数量 FROM [3])  UPDATE 汽车表 SET 销售总数量 = 销售总数量 + [4]     WHERE 汽车型号 IN ([5])

答案:

  [1]:销售表  [2]:INSERT  [3]:INSERTED  [4]:@Sales_Amount  [5]:SELECT 汽车型号 FROM INSERTED

(5)设在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]:PROC或PROCEDURE  [2]:Output  [3]:SET  [4]:SUM(销售数量)  [5]:s.汽车型号 = c.汽车型号 或 c.汽车型号 = s.汽车型号  [6]:@model

(6)设在SQL Server某数据库中有房屋出租表,表的定义如下:
CREATE TABLE 出租表(
  房屋号 char(10),
  出租日期 datetime,
  租期 int not null,–月数
  到期日期 datetime,
  PRIMARY KEY(房屋号,出租日期));
现要创建一个具有如下功能的触发器:每当在出租表中插入一行数据(房屋号,出租日期,租期)时,自动计算出本行数据的“到期日期”。请补全下列代码。

CREATE TRIGGER tri ON [1] FOR insertAS[2] 出租表 SET 到期日期 = dateadd([3],租期,出租日期)WHERE 房屋号 = (SELECT 房屋号 FROM [4])  and [5]

参考答案:

[1]出租表[2]UPDATE[3]month[4]inserted[5]出租日期 = (SELECT 出租日期 FROM inserted)或者(SELECT 出租日期 FROM inserted) = 出租日期

(7)设在SQL Server某数据库中有房屋及租赁表,表的定义如下:
CREATE TABLE 房屋表(
  房屋号 char(10) PRIMARY KEY,
  房屋地址 char(20) not null:
  面积 int,
  月租金 int)

CREATE TABLE 租赁表(
  房屋号 char(10),
  租赁日期 datetime,
  租赁月数 int not null,
  本次总租金 int,
  PRIMARY KEY(房屋号,租赁日期),
  FOREIGN KEY(房屋号) REFERENCES房屋表(房屋号))

现要创建一个具有如下功能的触发器:每当在租赁表中插入一行数据(房屋号,租赁日期,租赁月数)时,自动计算出该房屋的本次总租金。请补全下列代码。

CREATE TRIGGER tri ON [1] FOR [2]AS[3] @x int --声明保存月租金的变量SET @x = (SELECT 月租金 FROM 房屋表 WHERE 房屋号=(SELECT 房屋号 FROM [4]))UPDATE 租赁表 SET 本次总租金=租赁月数*[5] FROM 租赁表 as a JOIN [6]  as bon a.房屋号=b.房屋号 and a.租赁日期=b.租赁日期

参考答案:

[1]租赁表[2]INSERT[3]DECLARE [4]inserted[5]@x[6]inserted

(8)CREATE TABLE 房屋表(
  房屋号 char(10) PRIMARY KEY,
  房屋地址 char(20) not null,
  面积 int,
  月租金 int)

CREATE TABLE 租赁表(
  房屋号 char(10),
  租赁日期 datetime,
  租赁月数 int not null,
  PRIMARY KEY(房屋号,租赁日期),
  FOREIGN KEY(房屋号) REFERENCES 房屋表(房屋号))
现要创建一个具有如下功能的存储过程:根据输入的房屋号,计算该房屋的历史租金总和并用输出参数返回。请补全下列代码。

CREATE [1] P1@room char(10),     ----输入参数:房屋号@total int [2] ----输出参数:租金总和AS[3] @total=(    SELECT [4](月租金 * 租赁月数)    FROM 房屋表 a JOIN 租赁表 b ON a.房屋号=b.房屋号    WHERE [5])

参考答案:

[1]Proc,Procedure[2]output[3]set[4]sum[5]a.房屋号=@room,b.房屋号=@room或@room=a.房屋号,@room=b.房屋号

来源地址:https://blog.csdn.net/weixin_51169222/article/details/129387866

您可能感兴趣的文档:

--结束END--

本文标题: 计算机三级数据库大题及答案

本文链接: https://lsjlt.com/news/418289.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作