触发器能建立在视图上吗,触发器可以创建在哪个选项中

首页 > 实用技巧 > 作者:YD1662024-01-08 21:53:44

对于多表联查,特别适合适用视图,简化那一长串的sql语句。

二、存储过程

存储过程就是事先经过编译并存储在数据库中的一段SQL语句的集合,通过调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的网络传输,对于提高数据处理的效率是很有帮助的。说的简单点就是SQL语句的封装和重用。

存储过程的特点有: sql语句的封装和复用,其次是可以接收参数,也可以返回数据,减少网络交互,提升效率。

存储过程的操作语法:

create procedure 存储过程名称([参数列表])

begin

。。。SQL语句

end;

调用存储过程: call 名称([参数])

命令行创建存储过程需要通过delimiter指定结束符,mysql是以分号结束的。

delimiter // # 指定什么字符结束

create procedure p()

begin

select count(*) from king_user;

end//

mysql> delimiter @@ mysql> create procedure pk() -> begin -> select count(*) from king_user; -> end@@ Query OK, 0 rows affected (0.00 sec) mysql> # 改回来 ,调用存储过程 mysql> delimiter ; mysql> call pk(); ---------- | count(*) | ---------- | 11 | ---------- 1 row in set (0.01 sec) Query OK, 0 rows affected (0.01 sec)

存储过程的查看和删除操作

SELECT * FROM information_schema.ROUTINES where ROUTINE_SCHEMA='test'

触发器能建立在视图上吗,触发器可以创建在哪个选项中(9)

show create procedure pk;

触发器能建立在视图上吗,触发器可以创建在哪个选项中(10)

drop procedure pk();

存储过程的系统变量和用户自定义变量。

系统变量是MySQL服务器提供的,不是用户定义的,属于服务器层面的,分为全局变量global和会话变量session。语法如下:

1、查看系统变量

show [session|global] variables; # 查看索引系统变量

show [session|global] variables like '...'; # 模糊匹配查找系统变量

select @@[session|global] 系统变量名; # 查看指定变量的值

2、设置系统变量

set [session|global] 系统变量名=值;

set @@[session|global] 系统变量名=值;

提示: 如果没有指定session或者global,默认是session,mysql服务重启后所有设置的全局参 数会失效,要想不失效必须在全局设置的同时把设置内容添加到/etc/my.cnf中。

用户自定义变量是用户根据需要自己定义的变量,用户变量不用提前声明,在用的时候直接使用"@变量名"使用就可以,其作用域为当前的连接。

赋值:

set @var_name = expr;

set @var_name := expr; # 推荐使用:=

select @var_name := expr;

select 字段名 into @var_name from 表名;

使用方法: select @var_name; 即可

触发器能建立在视图上吗,触发器可以创建在哪个选项中(11)

触发器能建立在视图上吗,触发器可以创建在哪个选项中(12)

上一页12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.