视图的操作
视图,本质上是一种虚拟表,其内容与真实的表相似,包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值形式存在。行和列数据来自自定义视图的查询所引用基本表,并且在具体引用视图时动态生成。
视图的功能实际上是封装查询语句
视图的特点如下:
- 视图的列可以来自不同的表,是表的抽象和在逻辑意义上建立的新关系;
- 视图是由基本表(实表)产生的表(虚表);
- 视图的建立和删除不影响基本表;
- 对视图内容的更新(添加、删除和修改)直接影响基本表;
- 当视图来自多个基本表时,不允许添加和删除数据;
创建视图
语法形式如下:
create view view_name AS 查询语句
和创建表一样,视图名不能和表名、也不能和其他的视图名重名。
使用视图
SELECT * FROM view_name
查看视图
SHOW TABLES查看视图
USE db_name【数据库名】;
SHOW TABLES;
SHOW TABLE STATUS 语句查看视图详细信息
SHOW TABLE STATUS 【FROM db_name】【LIKE 'pattern'】
SHOW CREATE VIEW 语句查看视图定义信息
SHOW CREATE VIEW view_name
DESCRIBE | DESC 语句产看视图设计信息
DESCRIBE | DESC view_name
删除视图
DROP VIEW view_name 【,view_name...】
通过DROP VIEW语句可以一次删除一个或多个视图
修改视图
CREATE OR REPLACE VIEW 语句修改视图
create OR REPLACE view view_name as 查询语句
通过上述语句创建视图后,如果需要更改视图时,则不需要先删除再创建,MySQL会自动进行删除和重建功能。
ALTER 语句修改视图
ALTER VIEW view_name as 查询语句
利用视图操作基本表
检索(查询)数据
SELECT * FROM view_name
对视图数据进行的更新(增加、删除和更新)操作,实际上是对其基本表数据进行更新操作。在具体更新视图数据时,需要注意以下两点:
- 对视图数据进行添加、删除和更新操作直接影响基本表;
- 视图来自多个基本表时,不允许添加和删除数据;
增加数据
INSERT INTO view_name (属性名1,属性名2,...) VALUES(属性1对应的值,属性2对应的值,...);
删除数据
DELETE FROM view_name WHERE条件语句
更新数据
UPDATE view_name set 要更新的属性名=更新后的属性值 WHERE语句
触发器的操作
创建触发器
创建有一条执行语句的触发器
create trigger trigger_name
BEFORE|AFTER trigger_EVENT
ON table_name FOR EACH ROW trigger_STMT
在上述语句中,trigger_name 参数表示所要创建的触发器名字,在具体创建触发器时,触发器标识符不能与已经存在的触发器名称重复。BEFORE和AFTER参数指定了触发器执行的时间,其中前者是指在触发器事件之前执行触发器语句,后者是指在触发器事件之后执行触发器语句;trigger_EVENT参数表示触发事件,即触发器执行条件,包含DELETE、INSERT和UPDATE语句;table_name参数表示触发事件操作表的名字;FOR EACH ROW参数表示任何一条记录上的操作满足触发事件都会触发该触发器;trigger_STMT参数表示激活触发器后被执行的语句;
创建包含多条执行语句的触发器
create trigger trigger_name
BEFORE|AFTER trigger_EVENT
ON table_name FOR EACH ROW
BEGIN
trigger_STMT
END
在上述语句中,比“只有一条执行语句的触发器”语法多出来了关键字BEGIN和END,在这两个关键字之间为所要执行的多个执行语句的内容,执行语句之间用分号隔开。
查看触发器
通过SHOW TRIGGERS语句查看触发器
删除触发器
通过DROP TRIGGER语句删除触发器
DROP TRIGGER trigger_name
原创文章,作者:ZERO,如若转载,请注明出处:https://www.edu24.cn/course/mysql-view-trigger.html