视图、存储过程和触发器

什么是视图?

        试图是从一个或者几个基本表(或试图)导出的表,它与基本表不同,是一个虚表

视图的操作:

        查看所有的试图:

                select * from information_schma.VIEWS where table_cshema=‘库名’;

        查看视图的建立:

                show create VIEW view_name

        删除存储过程:
                drop VIEW view_name

存储过程:

        为什么使用存储过程:

                1.业务流程复杂;

                2.频繁访问数据库

                3.先编译后执行

创建存储过程:
        create procedure(

                in/out/inout 参数名 数据类型

        )

        gegin

                declare 变量 变量类型

        end

        in :表示入参

        out :表示返回值

        inout :表示即是入参又是返回值

存储过程的操作:

        调用存储过程:call 存储过程名 参数名

        查看存储过程:select * from information_sehcma.ROUTINES where rouine_sechname=‘库名’

        删除存储过程:drop procedure

存储过程的缺陷:

        维护性:存储过程的维护成本高,修改调试较为麻烦

        移植性:大多数关系型数据库的存储过程存在细微差异

        协作性:没有相关的版本控制或者IDE,团队中对于存储过程的使用大多是依赖文档

触发器:

        什么是触发器?

                触发器是数据库中针对数据库表操作触发的特殊的存储过程

        创建触发器:
                create trigger 数据库名.触发器名

                        BEFORE/AFTER   --触发顺序

                        INSERT/UPDATE/DELETE   --触发事件

                ON 数据库.库名  --事件表

                FOR EACH ROW

                BEGIN

                        触发内容  --事件出发后要写的语句

触发器的查看:
        查看所有的触发器:

                select * from information_schema.TRIGGERS

                where tigger_schema='库名'

        删除触发器:
                drop trigger 触发器名

存储过程和触发器的区别:

        语法上的区别:关键字不同,存储过程是procedure,触发器是trigger

        执行:存储过程需要调用才执行,触发器自动执行

        返回值:存储过程可以定义返回值,但是触发器没有返回值

        功能:存储过程是一组特定功能的SQL语句,触发器则是SQL语句前后执行,本身不影响原功能

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值