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

2021-08-29  本文已影响0人  莫问前程F6

数据库视图

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

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

4.视图的限制

触发器

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

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中的方法,开发者可以直接调用。有以下优点

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
上一篇下一篇

猜你喜欢

热点阅读