SQL学习笔记_Aliyun3

SQL学习笔记_Aliyun3

本笔记为阿里云天池龙珠计划SQL训练营的学习内容,链接为:https://tianchi.aliyun.com/specials/promotion/aicampsql

视图

视图是一张虚拟的表,而是一个窗口,数据来源建立在真实的表的基础上,而他的作用主要有:

  1. 通过定义视图可以将频繁使用的SELECT语句保存以提高效率。
  2. 通过定义视图可以使用户看到的数据更加清晰。
  3. 通过定义视图可以不对外公开数据表全部字段,增强数据的保密性。
  4. 通过定义视图可以降低数据的冗余。
创建视图
CREATE VIEW <视图名称>(<列名1>,<列名2>,...) AS <SELECT语句>

Tips:定义视图时不能使用ORDER BY子句因为视图和表一样,数据行都是没有顺序的

Example

  • 单表视图
CREATE VIEW productsum (product_type, cnt_product)
AS
SELECT product_type, COUNT(*)
FROM product
GROUP BY product_type ;
  • 多表视图
CREATE VIEW view_shop_product(product_type, sale_price, shop_name)
AS
SELECT product_type, sale_price, shop_name
  FROM product,
       shop_product
 WHERE product.product_id = shop_product.product_id;  #链接product和shop_product表
修改视图
ALTER VIEW <视图名> AS <SELECT语句>
ALTER VIEW productSum
AS
SELECT product_type, sale_price
FROM Product
WHERE regist_date > '2009-09-11';
更新视图

对于更新视图有很严格的限制:

  • SELECT 子句中未使用DISTINCT
  • FROM 子句中只有一张表
  • 未使用GROUP BY 子句
  • 未使用HAVING子句
  • 未使用聚合函数 SUM()、MIN()、MAX()、COUNT() 等。
-- 该视图就可以更新,因为在SELECT子句中既没有聚合也没有结合
CREATE VIEW ProductJim (product_id, product_name, product_type,sale_price, purchase_price, regist_date)
AS
SELECT *
FROM Product
WHERE product_type = '办公用品';
-- 更新视图,向视图中添加一行
INSERT INTO ProductJim VALUES ('0009', '印章', '办公用品', 95, 10, '2009-11-30');
删除视图
DROP VIEW 视图名称(<视图列名1>, <视图列名2>, ……)
DROP VIEW ProductSum;

子查询

即嵌套查

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值