【数据库】视图,触发器,存储过程

本文介绍了数据库中的视图、触发器和存储过程。视图作为虚拟表,提供了数据的封装和安全性。触发器用于在数据变更时执行特定操作,保证数据完整性。存储过程则是预编译的SQL语句集合,提高效率和代码复用。内容涵盖创建、修改、删除视图的步骤,触发器的before/after事件,以及存储过程的参数使用和事务结合的示例。
摘要由CSDN通过智能技术生成

数据库笔记 day04

2019/8/23 周五
学习内容:视图,触发器,存储过程,变量,if else语句,范式
关键字:create view;describe;select;drop;delimiter ; create trigger;before;after;new ;old ;create procedure;in;out;call;set @;if then else;


视图

  • What:试图(view)是一个虚拟表,可以从数据库中的一个或者多个表中导出来(也可以在已经存在的视图的基础上定义)。视图本身并不包含任何数据,只是一种映射,其本质是封装了一条查询语句。
  • Why:视图可以用来封装复杂的sql语句,也可以对机密数据提供安全保护。
  • How:如何使用视图?
1. 创建视图:create view

语法:CREATE VIEW 视图名 AS 查询语句
下段代码为制作一个给销售人员看的商品视图,连接了商品类型表和商品表,包含商品名称,出售价格,商品的类型,产地信息

create view view_sellset as
select c.c_name as 商品名称, c.c_madein as 商品产地, ct.ct_name as 商品类型, c.c_outprice as 商品售价
from commodity as c inner join commoditytype as ct on c.c_type=ct.ct_id
where c.c_outprice is not null; # 过滤掉没有售价的商品

创建视图时,可以给原来数据表中的字段设置显示新的名称,用as关键字

2. 查看视图信息

(1)DESCRIBE 视图名;

查看视图的基本信息

describe view_sellset;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| 商品名称 | varchar(50) | NO   |     | NULL    |       |
| 商品产地 | varchar(50) | NO   |     | NULL    |       |
| 商品类型 | varchar(50) | NO   |     | NULL    |       |
| 商品售价 | int(11)     | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.12 sec)

(2)SHOW TABLE STATUS LIKE ‘视图名’;
查看视图基本信息,但在这个案例中尝试,显示出来的信息除了视图名之外,其他属性全是null

(3)SHOW CREATE VIEW 视图名;
查看视图的详细信息,可以显示出创建视图时写的语句

3. 查看视图里的详细数据:select

查看视图信息与查看数据表中的信息一样,使用select关键字

select * from view_sellset;

输入上面的查询命令,得到的结果为MySQL拼接好的视图(后面省略)

+-----------------------+---------+----------+---------+
| 商品名称               | 商品产地 | 商品类型 | 商品售价 |
+-----------------------+---------+----------+---------+
| 变形金刚-擎天柱        | 中国     | 玩具     |      50 |
| 变形金刚-霸天虎        | 中国     | 玩具     |      45 |
·······
4. 更新视图

视图像表一样有插入、修改、删除表中数据的操作,用法与表的操作一样,使用insert into、update和delete关键字。下面试一下修改数据

update view_sellSet set 商品售价=20 where 商品名称='变形金刚-擎天柱';

因为视图是一个虚拟表,对视图的增删改操作,实际上是对其基本表的增删改,重新查

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值