一、存储过程
1、语法
create procedure name([IN |OUT |INOUT ] 参数名 数据类形)
begin
......
end;
IN:输入参数:表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回
OUT:输出参数:该值可在存储过程内部被改变,并可返回
INOUT:输入输出参数:调用时指定,并且可被改变和返回
2、优缺点:
缺点:
(1) 较应用程序代码,存储过程的代码效率稍微要差些
(2)给数据库增加额外压力,其扩展性比应用程序差
(3)安全性:可能会有安全隐患,比如说加密信息,如果将加密算法放在应用程序,那么攻击需要将数据库和应用程序都击破才能获得数据,如果全部都放在数据库,则只要攻破数据库,那么数据将会泄露
优点:
(1)节省带宽和网络延迟
(2)存储过程能实现较快的执行速度
(3)存储过程增强了SQL语言的功能和灵活性
3、存储过程的变量
(1)定义局部变量
DECLARE variable_name [,variable_name...] datatype [DEFAULT value];
(2)赋值
SET 变量名 = 表达式值 [,variable_name = expression ...]
(3)用户变量
用户变量名一般以@开头
例子:
mysql > CREATE PROCEDURE GreetWorld( ) SELECT CONCAT(@greeting,' World');
mysql > SET @greeting='Hello';
mysql > CALL GreetWorld( );
4、控制语句
(1)if then else endif
->if parameter=0 then
-> update t set s1=s1+1;
-> else
-> update t set s1=s1+2;
-> end if;
(2)case var
when then
when then
else
end case
例子:
-> case var
-> when 0 then
-> insert into t values(17);
-> when 1 then
-> insert into t values(18);
-> else
-> insert into t values(19);
-> end case;
-> end;
(3)while ···· end while:
4、一些基本命令
SHOW CREATE PROCEDURE 数据库.存储过程名;
二、触发器
1、语法
create trigger triggerName
after/before insert/update/delete on 表名
for each row #这句话在mysql是固定的
begin
sql语句;
end;
2、优缺点
(1)问题难以排查
(2)可能导致死锁和锁等待
(3)更新不一定是原子性的
三、游标
1、游标只能在存储过程中使用
2、语法
- create procedure test2()
- declare o int 0;
- begin
- declare cursorTest cursor
- for
- select *
- from allIntersection;
- open cursorTest;
- fetch cursorTest into o;
- close cursorTest;
- end;
相关推荐
Mysql高级使用.ppt
以下内容将详细介绍MySQL高级使用中涉及到的常用工具、日志管理、数据备份与迁移、以及主从复制相关的知识点。 ### MySQL常用工具 #### mysql命令行客户端 mysql是MySQL数据库的命令行工具,用于从命令行界面与...
01.MySQL高级课程内容介绍.mp4 02.MySQL高级Linux上安装MySQL.avi 03.MySQL高级启动及登录MySQL.avi 04.MySQL高级索引概述.avi 05.MySQL高级索引优势和劣势.avi 06.MySQL高级索引数据结构.avi 07.MySQL高级索引数据...
48.MySQL高级_为排序使用索引OrderBy优化.avi 47.MySQL高级_in和exists.avi 46.MySQL高级_小表驱动大表.avi 45.MySQL高级_索引优化答疑补充和总结口诀.avi 44.MySQL高级_索引面试题分析.avi 43.MySQL高级...
MySQL 高级 - 课程内容介绍.mp4 │ │ 02. MySQL 高级 - Linux上安装MySQL.avi │ │ 03. MySQL 高级 - 启动及登录MySQL.avi │ │ 04. MySQL 高级 - 索引 - 概述.avi │ │ 05. MySQL 高级 - 索引 - 优势和劣势....
尚硅谷_MySQL高级_explain使用简介 · 22.尚硅谷_MySQL高级_explain之id介绍 · 23.尚硅谷_MySQL高级_explain之select_type和table介绍 · 24.尚硅谷_MySQL高级_explain之type介绍 · 25.尚硅谷_MySQL高级_...
"Mysql高级文档超详细" 本文档详细讲解了Mysql的高级知识点,涵盖了Mysql的安装、配置、管理等方面的内容。下面是对标题、描述、标签和部分内容的详细解释: 1. Mysql安装 Mysql的安装可以通过rpm包来实现。在...
尚硅谷MySQL高级的视频学习笔记,由本人整理
MySQL的高级特性使得它在处理大数据、高并发场景以及复杂查询方面表现出色。本资料主要涵盖MySQL的高级特性,包括性能优化、存储引擎、事务处理、索引策略、备份与恢复、复制与集群等方面。 1. **性能优化**: - *...
MYSQL教程 MYSQL教程MYSQL教程 MYSQL教程尚硅谷MySQL全套教程包含MySql核心技术篇和MySQL高级篇。数据库视频教程,全套视频教程。
以下是基于提供的"mysql高级参考课件(供实操参考).zip"压缩包文件中的可能涵盖的一些关键知识点: 1. **SQL语言的高级应用**: - 子查询:学习如何在SELECT语句中嵌套查询,用于获取满足特定条件的数据。 - ...
教程名称:布尔教育Mysql高级视频教程(更新中)课程目录:【】Mysql高级.001.理解触发器【】Mysql高级.002.动手写第1个触发器【】Mysql高级.003.触发器中引用行变量【】Mysql高级.004.再谈行变量【】Mysql高级.005....
使用这样的脑图,可以更直观地梳理MySQL高级知识的脉络,提高学习效率。 总的来说,这个"Mysql高级"思维导图资源对想要深入理解MySQL的开发者或DBA来说是一份宝贵的资料,它涵盖了MySQL高级特性的方方面面,有助于...
MySQL 高级 - Linux上安装MySQL P2 day01-03. MySQL 高级 - 启动及登录MySQL P3 day01-04. MySQL 高级 - 索引 - 概述 P4 day01-05. MySQL 高级 - 索引 - 优势和劣势 P5 day01-06. MySQL 高级 - 索引 - 数据结构 P6 ...
MySQL高级知识包含多个方面,本文主要介绍了存储函数、触发器、索引、存储引擎以及SQL优化的相关知识点。 首先,存储函数和触发器是MySQL中实现高级功能的关键组件。存储函数允许用户在数据库中存储并重用代码,...
【尚硅谷周阳Mysql高级思维导图脑图学习笔记】是针对MySQL数据库系统的一份高级学习资料,包含了丰富的知识体系,旨在帮助学习者深入理解并掌握MySQL的高级特性和优化技巧。这份资源以.mmap格式提供,这是一种专业的...
mysql高级笔记 P1 day01-02. MySQL 高级 - Linux上安装MySQL P2 day01-03. MySQL 高级 - 启动及登录MySQL P3 day01-04. MySQL 高级 - 索引 - 概述 P4 day01-05. MySQL 高级 - 索引 - 优势和劣势 P5 day01-06. MySQL ...
主键自动建立唯一索引 频繁作为查询条件的字段应该建立索引 查询中与其他表关联的字段,外键关系建立索引 频繁更新的字段不适合创建索引 -- 因为每次更新不单单是更新了记录还会更新索引 Where条件里用不到的字段不...
Mysql高级学习(用法图解)Mysql高级学习(用法图解)Mysql高级学习(用法图解)(字数?)
《周阳老师 MySQL高级 脑图》是尚硅谷教育机构推出的一套关于MySQL数据库高级技术的思维导图和PDF教程。这套资料旨在帮助学习者系统地理解和掌握MySQL的高级特性,提升数据库管理与优化的能力。 1. **MySQL概述** ...