数据库习题(填空题三)

数据库习题

  • 关系数据库中空值( NULL)相当于 ( d )
    A. 零( 0)
    B. 空白
    C. 零长度的字符串
    D. 没有输入
  • 取出关系中的某些列,并消去重复的元组的关系运算称为 ( b )
    A. 取列运算
    B. 投影运算
    C. 连接运算
    D. 选择运算
  • 数据库系统中常用的三种数据模型有层次模型、网状模型、关系模型。
  • 将 视 图 v_Course 重 命 名 为 v_newCourse 的 SQL 语 句是: exec sp_rename v_Course, v_newCourse

在这里插入图片描述
在这里插入图片描述

  • 建立销售数据库 Sales 的以上三个表。
    create table customer
    ( cusno char(10) primary key,
    cusname char(20),
    address char(20) ,
    tel char(20)
    )
    create table product
    ( prono char(10) primary key,
    proname char(20),
    price char(20) ,
    stocks int
    )
    create table proout
    ( saledate datetime ,
    cusno char(10),
    prono char(10) ,
    quantity int,
    foreign key (cusno) references customer (cusno),
    foreign key (prono) references product (prono),
    )

  • 在 Customer 上基于 CusName列创建非惟一索引; 在 Product 上基于 ProName 列创建惟一索引; 在 ProOut 上基于 SaleDate 列创建聚集的、 惟一索引。
    CREATE INDEX IX_Customer ON Customer (CusName)
    CREATE UNIQUE INDEX IX_Product ON Product (ProName)
    CREATE UNIQUE CLUSTERED INDEX IX_ProOut ON ProOut(SaleDate)

  • 在 ProOut 表上设置外键, 保证录入时的产品代码都在产品表中存在的。
    ALTER TABLE ProOut
    ADD CONSTRAINT FK_ ProOut_ProNo FOREIGN KEY (ProNo)
    REFERENCES Product(ProNo)

  • 创建一自定义函数 sumMoney,要求能够利用该函数计算出销售金额,并进行测试,利用该函数计算出每种产品 (ProNo) 的销售金额。
    create function sumMoney (@x Decimal,@y Decimal)
    returns Decimal
    as
    begin
    return(@x*@y)
    end
    go
    –测试
    select PO.ProNo,ProName,dbo.sumMoney (price, sum(Quantity)) as ’ 销
    售金额 ’
    from Product as P, ProOut as PO
    where P.ProNo=PO.ProNo
    group by PO.ProNo,ProName,price

  • 在查询的基础上创建一张新表 Cus,要求显示客户“ C004”在 2008 年购买的产品号、数量。
    select CusNo, sum( Quantity )
    from ProOut
    where CusNo = ’C004’ an d SaleDate > ‘2007-12-31’

  • 创建视图 viewPro ,要求显示每种产品的销售量和销售金额(6分)
    create view viewPro
    as
    select PO.ProNo,sum( Quantity ) as '销售量 ',sum(Quantity *price) as '销
    售金额 ’
    from Product as P, ProOut as PO
    where P.ProNo=PO.ProNo
    group by PO.ProNo,price

  • 创建存储过程 p_Pro, 要求能够根据指定的客户编号,统计该客户购
    买每种产品的产品号、数量。 (8分)

    CREATE PROCEDURE p_Pro
    @ Cus No VARCHAR(8)
    AS
    Select Cus No ,ProNo,sum( Quantity )
    from ProOut
    where Cus No = @ Cus No
    group by Cus No, ProNo

  • 创建一个触发器 t_Stocks ,要求当插入、更新、删除销售表 (ProOut)
    的销售记录时,根据销售数量 (Quantity) 的变化,能更新产品表 (Product)
    中相应的库存数量 (Stocks) (8分)

    create trigger t_Stocks on Product
    for insert,delete,update
    as
    update Product set Stocks = Stocks - Quantity where ProNo=(select
    ProNo from INSERTED)
    update Product set Stocks = Stocks + Quantity where
    ProNo=(select ProNo from DELETED)

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值