时间:2021-05-05 15:35:57 | 栏目:Mysql | 点击:次
视图
什么是视图?视图的作用是什么?
视图(view)是一种虚拟存在的表,是一个逻辑表,它本身是不包含数据的。作为一个select语句保存在数据字典中的。
通过视图,可以展现基表(用来创建视图的表叫做基表base table)的部分数据,说白了视图的数据就是来自于基表。
视图的优点:
总而言之,使用视图的大部分情况是为了保障数据安全性,提高查询效率。
视图的缺点:
视图的创建以及修改
--创建的基本语法是: create view <视图名称> as select 语句; create view <视图名称> (字段) as select 语句; create or replace view <视图名称>; --修改的语法是: alter view <视图名称> as select 语句; --视图删除语法: drop view <视图名称> ;
触发器
什么是触发器?
触发器就是监视某种情况,并触发某种操作。
创建、删除触发器的语法:
--创建触发器的语法: create trigger 触发器名称 after/before insert/update/delete on 表名 for each row begin sql语句; end --after/before:可以设置为事件发生前或后 --insert/update/delete:它们可以在执行insert、update或delete的过程中触发 --for each row:每隔一行执行一次动作 --删除触发器的语法: drop trigger 触发器名称;
演示
--创建一个员工迟到表: create table work_time_delay( empno int not null comment '雇员编号', ename varchar(50) comment '雇员姓名', status int comment '状态' ); --delimiter // 自定义语句的结束符号 delimiter // create trigger trig_work after insert on work_time_delay for each row begin update employee set sal=sal-100 where empno=new.empno; end // --new:指的是事件发生before或者after保存的新数据
存储过程
什么是存储过程?
存储过程就是把复杂的一系列操作,封装成一个过程。类似于 shell,python 脚本等。
存储过程的优点:
存储过程的缺点:
创建存储过程语法
--创建存储过程语法: create procedure 名称 (参数....) begin 过程体; 过程体; end --参数: -- in|out|inout 参数名称 类型(长度) -- in:表示调用者向过程传入值(传入值可以是字面量或变量) -- out:表示过程向调用者传出值(可以返回多个值)(传出值只能是变量) -- inout:既表示调用者向过程传入值,又表示过程向调用者传出值(值只能是变量) --声明变量:declare 变量名 类型(长度) default 默认值; --给变量赋值:set @变量名=值; --调用存储命令:call 名称(@变量名); --删除存储过程命令:drop procedure 名称; --查看创建的存储过程命令:show create procedure 名称\G;
演示
--创建一个简单的存储过程: delimiter // create procedure name(in n int) begin select * from employee limit n; end // --调用存储过程 set @n=5; // call name(@n); create procedure name() begin declare n int default 6; select * from employee limit n; end // --调用存储过程 call name(); //