【数据库原理】实验报告-实验7 SQL数据更新和视图

实验
目的

要求

1、掌握SQL数据更新(插入、修改、删除)语句
2、掌握创建、删除和查询视图的方法,验证可更新视图和不可更新视图。
3、运用SQL数据更新语句解决电子商务系统数据库中的数据更新问题
4、运用SQL视图创建语句创建视图,并基于视图进行查询,体会视图查询的优点

实验
环境

SQL Server 2014

实验内容或
实验题目

(1)向商品类别表category中插入一条记录(801,‘座椅套’,‘各种品牌的汽车座套’)
(2)向商品表product中插入一条记录:商品编号80101,商品名称“四季通用汽车座套”,库存数量100,单价308,成本价288,商品类别编号801,上架时间“2018-01-01”)
将商品表product中的商品按类别进行分类,并统计每类商品的总库存数量,并把结果存入数据库表product_catg中。
(3)查询订单日期为“2021-11-11”的每种商品的销售总数量,并将查询结果录入到表sale中
(4)将供应商名称为“顺京通讯有限公司”的联系电话修改为“010-4358779”
(5)将商品类别名称为“激光打印机”的所有商品的单价降低10%
(6)商品80101已经下架,从商品表中删除其详细记录信息
(7)将会员周晔的所有订单中付款日期paydate为空的订单信息全部删除
(8) 建立会员订购商品视图view_buy,要求视图属性包括商品编号prono、商品名称proname、单价price、订单编号orderno、购买数量qty、优惠discount、实付总金额totalmoney,并且基于该视图修改属性totalmoney的值为:单价*购买数量-优惠
(9)基于商品表和供应商表创建一个名为view_renbaocomputer的视图,要求能够通过该视图查看供应商名称为“仁宝电脑有限公司”的所有商品信息:包括商品编号pronno、商品名称proname、库存stock、单价price、成本价、供应商名称supname、联系电话telephone信息
(10)基于商品表product创建一个视图view_product,要求视图总包括prono、proname、stock、price、cost、catno信息。然后通过该视图完成以下操作:
通过视图view_product添加一条记录:(60102,‘海信37英寸激光电视机’,15,1600,1300,601)
通过视图view_product修改商品编号为60201的价格为2499
通过视图view_product删除商品编号为60201的商品










步骤如下:
(1)向商品类别表category中插入一条记录(801,‘座椅套’,‘各种品牌的汽车座套’)
INSERT INTO category (catno, catname, describe)
VALUES(801, '座椅套', '各种品牌的汽车座套');

 


(2)向商品表product中插入一条记录:商品编号80101,商品名称“四季通用汽车座套”,库存数量100,单价308,成本价288,商品类别编号801,上架时间“2018-01-01”)
将商品表product中的商品按类别进行分类,并统计每类商品的总库存数量,并把结果存入数据库表product_catg中。
1.插入记录到product表中
INSERT INTO product (prono, proname, stock, price, cost, catno, ontime)
VALUES(80101, '四季通用汽车座套', 100, 308, 288, 801, '2018-01-01');

 


2.创建product_catg数据表,其中包含字段total_stock
CREATE TABLE product_catg (
catnoINT,
total_stockINT
);
3.向数据表中插入数据
INSERT INTO product_catg (catno, total_stock)
SELECT catno, SUM(stock) AS total_stock
FROM product
GROUP BY catno;



 


(3)查询订单日期为“2021-11-11”的每种商品的销售总数量,并将查询结果录入到表sale中
1.和问题二类似,本题换一个语句来解决
SELECT prono,SUM(qty) AS total_qty
INTO sal
FROM orders
where orderdate= '2021-11-11'
GROUP BY prono;

 


(4)将供应商名称为“顺京通讯有限公司”的联系电话修改为“010-4358779”
UPDATE supplier
SET telephone= '010-4358779'
WHERE supname= '顺京通讯有限公司';

 


(5)将商品类别名称为“激光打印机”的所有商品的单价降低10%
此题注意降低百分之十即为打0.9折
条件是类别名称为激光打印机,故需要使用嵌套查询
UPDATE product
SET price= price* 0.9
WHERE catnoIN (
SELECT catno
FROM category
WHERE catname= '激光打印机'
);

 


(6)商品80101已经下架,从商品表中删除其详细记录信息
DELETE FROM product
WHERE prono= 80101;

 


(7)将会员周晔的所有订单中付款日期paydate为空的订单信息全部删除
此题和5题一样为嵌套查询
DELETE FROM orders
WHERE paydate= NULL and memnoIN
(SELECT memnoFROM memberwhere memname='周晔')

 


(8) 建立会员订购商品视图view_buy,要求视图属性包括商品编号prono、商品名称proname、单价price、订单编号orderno、购买数量qty、优惠discount、实付总金额totalmoney,并且基于该视图修改属性totalmoney的值为:单价*购买数量-优惠
CREATE VIEW view_buyAS
SELECT p.prono, p.proname, p.price, o.orderno, o.qty, o.discount, (p.price* o.qty- o.discount) AS totalmoney
FROM product p, orders o
Where p.prono= o.prono;

 


(9)基于商品表和供应商表创建一个名为view_renbaocomputer的视图,要求能够通过该视图查看供应商名称为“仁宝电脑有限公司”的所有商品信息:包括商品编号pronno、商品名称proname、库存stock、单价price、成本价、供应商名称supname、联系电话telephone信息
CREATE VIEW view_renbaocomputerAS
SELECT p.prono,p.proname,p.stock,p.price,p.cost,s.supname,s.telephone
FROM product p,supplier s
WHERE p.supno= s.supnoand s.supname= '仁宝电脑有限公司'

 


(10)基于商品表product创建一个视图view_product,要求视图总包括prono、proname、stock、price、cost、catno信息。然后通过该视图完成以下操作:
通过视图view_product添加一条记录:(60102,‘海信37英寸激光电视机’,15,1600,1300,601)
通过视图view_product修改商品编号为60201的价格为2499
通过视图view_product删除商品编号为60201的商品
1. 创建视图
CREATE VIEW view_productAS
SELECT prono, proname, stock, price, cost, catno
FROM product;

 


2. 向视图插入数据
INSERT INTO view_product(prono, proname, stock, price, cost, catno)
VALUES(60102, '海信37英寸激光电视机', 15, 1600, 1300, 601);

 


3. 通过视图修改数据
UPDATE view_product
SET price= 2499
WHERE prono= 60201;

 


4. 通过视图删除数据
DELETE FROM view_product
WHERE prono= 60201;

 































 

  • 27
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

司徒阿宝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值