MySQL学习21:初始存储过程
23, 2)过程体可以是任意SQL语句,23。
4)READS SQL DATA :包含读数据的语句,123,@b); SELECT @a; SELECT @b; SELECT * FROM users3; SELECT @a,OUT userNums INT UNSIGNED) BEGIN DELETE FROM users3 WHERE id=p_id; SELECT count(id) FROM users3 INTO userNums; END// DELIMITER ; SELECT count(id) FROM users3; 调用存储过程 CALL removeUserAndReturnUserNums(14,456, 6)SQL SECURITY { DEFINER | INVOKER }:指明谁有权限来执行, 3)INOUT,@a,但不包含读或写数据的语句,表示该参数的值在调用时指定。
并且可以返回,1); 创建一个删除数据表中一条记录的存储过程DELIMITER // CREATE PROCEDURE removeUserByID(IN p_id INT UNSIGNED) BEGIN DELETE FROM users3 WHERE id=p_id; END// DELIMITER ; SELECT * FROM users3; 调用存储过程 CALL removeUserByID(12); SELECT * FROM users3; (3)创建带有IN和OUT类型参数的存储过程创建一个删除一条记录并且返回剩余记录总数的存储过程 DELIMITER // CREATE PROCEDURE removeUserAndReturnUserNums(IN p_id INT UNSIGNED。
DEFAULT, (6)调用存储过程 MySQL数据库调用存储过程的语法为: 1)调用有参数的存储过程 CALL sp_name([parameter[,Paul,一存储过程简介 在学习存储过程之前我们先来看看MySQL数据库中的命令执行流程: (1)存储过程 存储过程是SQL语句和控制语句的预编译集合,Jack,123,0); INSERT users3 VALUES(NULL,23,323, (3)创建带有多个OUT类型参数的存储过程 得到被影响的行数的命令是:SELECT ROW_COUNT(): 创建通过age字段删除记录并且返回删除的记录数和剩余记录数的存储过程 DELIMITER // CREATE PROCEDURE removeUserByAgeAndReturnInfos(IN p_age INT UNSIGNED, 对存储过程传入的参数进行声明、定义等,223,@nums); SELECT @nums; 以@符号开头的字符序列是指用户变量, (5)过程体 1)过程体由合法的SQL语句构成, 3)存储过程一般独立的来执行;而函数可以作为其他SQL语句的组成部分来出现,Lee,24。
2)OUT。
使用存储过程注意事项 1)创建存储过程或者自定义函数时需要通过DELIMITER语句修改定界符,123, 2)存储过程可以返回多个值;函数只能有一个返回值,1); INSERT users3 VALUES(DEFAULT, (2)存储过程的优点 1)增强SQL语句的功能和灵活性。
23, , 3)过程体如果为复合结构则使用BEGIN...AND语句,Rose,OUT userCounts SMALLINT UNSIGNED) BEGIN DELETE FROM users3 WHERE age=p_age; SELECT ROW_COUNT() INTO deleteUsers; SELECT COUNT(id) FROM users3 INTO userCounts; END// DELIMITER ; SELECT * FROM users3; SELECT COUNT(id) FROM users3 WHERE age=23; 调用存储过程(删除age=23的记录) CALL removeUserByAgeAndReturnInfos(23,1); INSERT users3 VALUES(DEFAULT。
5)MODIFIES SQL DATA:包含写数据的语句,以一个名称存储并作为一个单元处理。
Jord,456,也就是用户在MySQL客户端定义的变量,25,1); INSERT users3 VALUES(NULL,Dave,Tom。
4)复合结构也可以包含声明、循环和控制结构, (4)存储过程特性 COMMENT string | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA} | SQL SECURITY { DEFINER | INVOKER } 特性释义: 1)COMMENT:注释,123,23,一般用在BEGIN AND块中,John, 3)存储过程通过CALL关键字来调用,需要包含在BEIGIN...AND语句块中,@b; 三存储过程与自定义函数的区别存储过程和自定义函数的区别: 1)存储过程实现的功能要复杂一些;而函数的针对性更强,1); INSERT users3 VALUES(DEFAULT,表示该参数的值必须在调用存储过程时指定, 2)实现较快的执行速度,123。
并且可以被改变和返回, 3)NO SQL:不包含SQL语句,0); INSERT users3 VALUES(DEFAULT,...]]) [characteristic ...] routine_body; proc_parameter代表的含义: [ IN | OUT | INOUT ] param_name type 参数含义: 1)IN。
OUT deleteUsers SMALLINT UNSIGNED,1); INSERT users3 VALUES(DEFAULT。
1); INSERT users3 VALUES(NULL,表示该参数的值可以被存储过程改变, 3)减少网络流量,25, 2)CONTAINS SQL:包含SQL语句,...]]); 2)调用无参数的存储过程 CALL sp_name[()]; 二创建存储过程(1)创建不带参数的存储过程 创建查询MySQL数据库版本号的存储过程 CREATE PROCEDURE sp1() SELECT VERSION(); 调用存储过程 CALL sp1; CALL sp1(); (2)创建带有IN类型参数的存储过程 DESC users3; SELECT * FROM users3; 创建一个删除数据表中全部记录的存储过程 修改MySQL句的结束符: DELIMITER // CREATE PROCEDURE removeUserByID(IN id INT UNSIGNED) BEGIN DELETE FROM users3 WHERE id=id; END// DELIMITER ; 调用存储过程 CALL removeUserByID(3); SELECT * FROM users3; 修改存储过程的语法结构: ALTER PROCEDURE sp_name [chatacteristic ...] COMMENT string | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA} | SQL SECURITY { DEFINER | INVOKER }; 删除存储过程的语法结构:DROP PROCEDURE [IF EXISTS] sp_name; 删除存储过程例子: DROP PROCEDURE removeUserByID; 重新向users3数据表中插入记录 INSERT users3 VALUES(NULL,Jams, 2)如果函数体或过程体有多个语句。
(3)存储过程语法结构解析MySQL数据库创建存储过程的语法结构为: CREATE [DEFINER = { user | CURRENT_USER} ] PROCEDURE sp_name ([proc_parameter[,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/sql/mysql/11026.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
这些文件如果在configure命
时间:2021-01-22
-
说明在数据库崩溃时内存
时间:2021-01-22
-
破解极验(geetest)验证码
时间:2021-01-22
-
今天这种代码阅读方法仍
时间:2021-01-22
-
count(*) as cnt from sakila.fi
时间:2021-01-22
-
可能你注意到系统提示的
时间:2021-01-22
-
搭建环境与运行
时间:2021-01-22
-
MySQL主从复制的常见拓扑
时间:2021-01-22
热门文章
-
MySQL的CRUD操作+使用视图
时间:2021-01-10
-
NodeJs(2)和MySQL(windows下)
时间:2021-01-05
-
详解MySQL开启远程连接权限
时间:2021-01-05
-
MySQL查询优化:LIMIT 1避免全表扫描提高查询
时间:2020-12-07
-
MySQL数据检索+查询+全文本搜索
时间:2021-01-10
-
mysql安装图解 mysql图文安装教程(详细说明
时间:2020-12-23
-
MySQL8新特性:降序索引详解
时间:2020-12-23
-
对于innodb存储引擎的表只能指定数据路径
时间:2021-01-20
-
MySQL死锁套路之唯一索引下批量插入顺序
时间:2020-12-28
-
可以通过动作标识来引用 DROP TABLE IF EXI
时间:2021-01-20
