MySQL必知必会(个人向笔记)

第1-20章

https://blog.csdn.net/EPFL_Panda/article/details/100579485

第21章 创建和操纵表

第22章 视图

1、定义:视图是虚构的表,把查询语句包装成一个视图,实际并不包含数据

2、使用场景:

  • 重用SQL语句并且不需要知道细节
  • 选择性的使用表的几列而不是全部
  • 保护数据,权限限制
  • 更改数据的表示格式

3、重要的使用限制

  • 视图中的ORDER BY会被使用时的覆盖
  • 试图不能有索引、触发器和默认值
  • 视图可以和表链接

4、视图的使用

  • 隐藏复杂SQL语句
CREATE VIEW productcustomer as
SELECT cust_name,cust_contact,prod_id
FROM customers,orders,orderitems
WHERE customers.cust_id = orders.cust_id
AND orderitems.prod_id = orders.prod_id
  • 重新格式化检索出的数据
CREATE VIEW vendorlocations AS
SELECT Concat(RTrim(vend_name)' (',RTrim(vend_country), ")') As vend_title
FROM vendors
ORDER BY vend_name
  • 用视图过滤掉不需要的数据
CREATE VIEw customeremaillist AS
SELECT cust_id, cust_name,cust_email
FROM customers
wHERE cust_email IS NOT NULL
  • 使用视图计算字段
CREATE VIEW orderitemsexpanded AS
SELECT order_num,prod_id,quantity,item_price,
       quantity*item_price As expanded_price
FROM orderitems

5、视图更新的限制
视图一般可以使用UPDATE和INSERT语句进行更新,更新会体现在基表中。但若有以下情况则会无法更新:

  • 分组(包含GROUP BY和HAVING语句)
  • 链接
  • 子查询
  • 聚集函数
  • DISTINCT
  • 导出(计算列)

第23章 存储过程

1、定义:多条SQL语句组成的一整个过程。(类似函数)

2、使用存储过程

CALL productpricing(@pricelow,@pricehigh,@priceaverage)

CALL + 【 存储过程名 】(参数)

3、创建存储过程

CREATE PROCEDURE productpricingo()
BEGIN
  SELECT Avg(prod_price) As priceaverageFROM products ;
END;

CREATE PROCEDURE + 【存储过程名】(参数列表)
BEGIN
要执行的SQL语句
END

4、删除存储过程

DROP PROCEDURE productpricing;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值