美文网首页
SQL视图、触发器、存储过程

SQL视图、触发器、存储过程

作者: 莫问前程F6 | 来源:发表于2021-08-29 09:00 被阅读0次

数据库视图

数据库中一张虚拟的表,允许不同用户或者应用程序以不同方式查看同一张表中的数据。

  1. 创建视图
create view view_tb as select id,name from user;
  1. 使用视图
select * from view_tb;
  1. 删除视图
drop view view_tb;

4.视图的限制

  • 创建视图后,如上的user表发生变化时,view_tb 会相应发生联动。
  • 定义视图时不能使用order by子句
  • 通过聚合得到的视图无法更新

触发器

触发器定义了一系列操作,可以再对指定表进行插入,更新,删除的时候,自动执行这些操作,完成对目标表的管理

1.创建触发器(插入: tab1插入一条新数据后,tab2会同步更新)

create trigger t_afterinsert_on_tab1 
    after insert on tab1 
    for each row 
    begin
        insert into tab2(tab2_id) values(new.tab1_id);
    end

2.创建触发器(删除:tab1删除一条数据后,tab2会同步更新)

create trigger t_afterdelete_on_tab1 
    after insert on tab1 
    for each row 
    begin
        delete from tab2 where tab2_id = old.tab1_id;
    end

3.删除触发器

drop trigger t_afterinsert_on_tab1
drop trigger t_afterdelete_on_tab1

存储过程(Procedure)

存储过程是一组为了完成特定功能的SQL语句的集合,存储在数据库中的,用户通过指定存储过程的名字和参数进行调用
存储过程相当于定义在MySql中的方法,开发者可以直接调用。有以下优点

  • 只需要创建一次,就可以任意调用
  • 执行速度更快
  • 更好的安全机制
    参数:输入输出类型、参数名称、参数数据类型
    入参:java方法中的参数
    出参:java方法中的返回值

1.创建存储过程(入参)

create procedure add_name(in target int)
begin
    declare name varchar(11);
    if  target = 1 then
        set name = 'Mysql';
        else
        set name = 'java';
    else if;
    insert into test(name) values(name);
end;

2.调用存储过程

call add_name(2);

5.删除存储过程

drop procedure add_name;

3.创建存储过程(出参)

create procedure count_of_student(out count_num int)
begin
    select count(*) into count_num from student;
end;

4.调用存储过程(出参)

call count_of_student(@count_num);
select @count_num

相关文章

  • mysql视图,触发器,存储过程优缺点及应用分析

    mysql视图,触发器,存储过程优缺点及应用分析 视图 mysql使用较少,是sql server和orcale使...

  • SQL视图、触发器、存储过程

    数据库视图 数据库中一张虚拟的表,允许不同用户或者应用程序以不同方式查看同一张表中的数据。 创建视图 使用视图 删...

  • .NET开发相关技术

    Sql Server基础知识 查询 存储过程 触发器 视图 事务 锁(多用户并发操作) 性能优化 索引 c#基础加...

  • MySQL 视图和存储程序

    MySQL 视图和存储程序 存储程序:存储函数、存储过程、触发器和事件的总称。 存储例程:存储函数+存储过程。 触...

  • SQL Server 触发器

    SQL Server 触发器 触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事...

  • 领域驱动设计

    存储过程 vs 表视图 vs 领域驱动 存储过程面向集合sql/存储过程编辑表指数级复杂度 表视图面向过程代码编辑...

  • MySQL优化

    mysql-基础-视图,存储过程,触发器 面试题 面试你所要知道的:MySQL存储过程 https://blog....

  • Oracle之触发器

    触发器是一个特殊的存储过程;存储过程和存储函数是一个完成特定功能的PL/SQL程序;触发器的应用场景:1,复杂的安...

  • 视图、存储过程、触发器

    视图:视图是一个虚拟表(临时的),并不是真实存在的,不可以通过视图对真实表进行修改 创建一个视图 存储过程deli...

  • DatabaseCompare连接问题

    DatabaseCompare 比较数据库表结构、视图、存储过程、触发器的差异 的工具 (DatabaseComp...

网友评论

      本文标题:SQL视图、触发器、存储过程

      本文链接:https://www.haomeiwen.com/subject/mpdwiltx.html