mysql 存储过程项目小结
1. false :0 true 1 切记
官方文档:http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html
-
mysql> SELECT IF(0, 'true', 'false'); +------------------------+ | IF(0, 'true', 'false') | +------------------------+ | false | +------------------------+ mysql> SELECT IF(1, 'true', 'false'); +------------------------+ | IF(1, 'true', 'false') | +------------------------+ | true | +------------------------+ mysql> SELECT IF(2, 'true', 'false'); +------------------------+ | IF(2, 'true', 'false') | +------------------------+ | true | +------------------------+
However, the values
TRUE
andFALSE
are merely aliases for1
and0
, respectively, as shown here:mysql> SELECT IF(0 = FALSE, 'true', 'false'); +--------------------------------+ | IF(0 = FALSE, 'true', 'false') | +--------------------------------+ | true | +--------------------------------+ mysql> SELECT IF(1 = TRUE, 'true', 'false'); +-------------------------------+ | IF(1 = TRUE, 'true', 'false') | +-------------------------------+ | true | +-------------------------------+ mysql> SELECT IF(2 = TRUE, 'true', 'false'); +-------------------------------+ | IF(2 = TRUE, 'true', 'false') | +-------------------------------+ | false | +-------------------------------+ mysql> SELECT IF(2 = FALSE, 'true', 'false'); +--------------------------------+ | IF(2 = FALSE, 'true', 'false') | +--------------------------------+ | false | +--------------------------------+
The last two statements display the results shown because
2
is equal to neither1
nor0
.
2 存储过程中执行动态sql
官方文档:
http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html
The first example shows how to create a prepared statement by using a string literal to supply the text of the statement:
mysql> PREPARE stmt1 FROM 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse'; mysql> SET @a = 3; mysql> SET @b = 4; mysql> EXECUTE stmt1 USING @a, @b; +------------+ | hypotenuse | +------------+ | 5 | +------------+ mysql> DEALLOCATE PREPARE stmt1;
The second example is similar, but supplies the text of the statement as a user variable:
mysql> SET @s = 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse'; mysql> PREPARE stmt2 FROM @s; mysql> SET @a = 6; mysql> SET @b = 8; mysql> EXECUTE stmt2 USING @a, @b; +------------+ | hypotenuse | +------------+ | 10 | +------------+ mysql> DEALLOCATE PREPARE stmt2;
Here is an additional example which demonstrates how to choose the table on which to perform a query at runtime, by storing the name of the table as a user variable:
mysql> USE test; mysql> CREATE TABLE t1 (a INT NOT NULL); mysql> INSERT INTO t1 VALUES (4), (8), (11), (32), (80);mysql> SET @table = 't1'; mysql> SET @s = CONCAT('SELECT * FROM ', @table);mysql> PREPARE stmt3 FROM @s; mysql> EXECUTE stmt3; +----+ | a | +----+ | 4 | | 8 | | 11 | | 32 | | 80 | +----+ mysql> DEALLOCATE PREPARE stmt3;
总结:
执行动态sql,分三步走:
1. PREPARE;
Syntax:
PREPAREstmt_name
FROMpreparable_stmt
2. EXECUTE;
Syntax:
EXECUTEstmt_name
[USING @var_name
[, @var_name
] ...]
3. DEALLOCATE PREPARE;
Syntax:
{DEALLOCATE | DROP} PREPARE stmt_name
3. 存储过程中的事务
语法:
START TRANSACTION [WITH CONSISTENT SNAPSHOT] BEGIN [WORK] COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE] ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE] SET autocommit = {0 | 1}
转载于:https://www.cnblogs.com/davidwang456/p/4147132.html
mysql 存储过程项目小结相关推荐
- mysql 存储过程 on_MySQL存储过程的权限问题小结
MySQL的存储过程,没错,看起来好生僻的使用场景.问题源于一个开发同学提交了权限申请的工单,需要开通一些权限. 本来是一个很正常的操作,但在我来看是比较着急且紧迫的,说来惭愧,忙着方向规划和开发的事 ...
- hibernate mysql 存储过程_hibernate调用mysql存储过程
hibernate调用mysql存储过程 在最近的项目中,碰到一小段数据库数据分析的程序,需要结合多张表联合查询或涉及到子查询,项目主要采用的java ee开发,使用了hibernate框架,由于这些 ...
- mysql数据库存储数据的过程_[数据库]MySql存储过程总结
[数据库]MySql存储过程总结 0 2014-06-12 01:00:50 之前总是在MSSQL上写存储过程,没有在MYSQL上写过,也基本没有用过,今天需要用到MYSQL,研究了下,把项目的需要的 ...
- go mysql存储过程_Golang 调用MySQL存储过程
Golang 调用MySQL存储过程 最近写项目发现,很多逻辑业务的实现,写到数据库的存储过程中,然后调用,真的非常方便.后端代码量大大减少,最重要的是性能高,速度快! 引用说明:项目使用数据库ORM ...
- mysql存储过程into_MySQL存储过程中使用SELECT …INTO语句为变量赋值
使用SELECT -INTO语句为变量赋值 在MySQL存储过程中,可以使用SELECT -INTO语句对变量进行赋值,该语句在数据库中进行查询,并将得到的结果赋值给变量.SELECT -INTO语句 ...
- 在mybatis用mysql的代码块_关于Mybatis 中使用Mysql存储过程的方法
1.存储过程的简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用 ...
- mysql数据库项目化教程郑小蓉_MySQL数据库项目化教程(高等职业教育“十三五”规划教材(软件技术专业))...
<MySQL数据库项目化教程/高等职业教育十三五规划教材(软件技术专业)>是一本介绍MySQL数据库基础知识的入门教材,采用项目驱动方式循序渐进地介绍MySQL各个模块的知识.主要内容包括 ...
- mysql存储过程语法 if_mysql存储过程语法 if
MySql存储过程 MySQL 存储过程是从 MySQL 5.0 开始增加的新功能.存储过程的优点有一箩筐.不过最主要的还是执行效率和SQL 代码封装.特别是 SQL 代码封装功能,如果没有存储过程, ...
- AdoHelper使用MySQL存储过程示例
AdoHelper是MS DAAB中的一个抽象数据访问类,由它派生出的SqlHelper使用很广泛,PDF.NET数据开发框架内部按照AdoHelper的接口做了一个自己的实现,下面简单说明一下怎么用 ...
最新文章
- c语言的图像拼接,OpenCV实现多图像拼接成一张大图分享!
- python多线程加锁异步处理装饰器
- 17.C#类型判断和重载决策(九章9.4)
- 64位ubuntu 12.04编译linux内核提示mkimage command not found
- Keywords Search HDU - 2222(AC自动机模板)
- IE下的一个安全BUG —— 可实时跟踪系统鼠标位置
- 随便创建Servlet文件都出现,请求资源不可用的情况
- 符号级别(一)--基础概念
- 数学篇--初中数学知识
- 4×4键盘板:ATMEGA328接口
- MWEC:一种基于多语义词向量的中文新词发现方法
- 工作这么多年,所经历5个骗子上司
- 文件处理命令-目录处理命令
- 过来人的经验:自学编程的6个建议
- CEPI扩大与三叶草生物合作,资助“S-三聚体”新冠疫苗候选物全球II/III期临床研究以获上市许可
- 各种“保险”英语怎么说?
- 计算机视觉—期刊|会议名称以及出版社对应大全
- Office_Professional_Plus_2010 with sp1 简体中文VOL版下载地址
- 无需繁琐同步 MOTO 360使用USB调试一键安装软件教程
- windows系统安装docker版本davinci达芬奇踩坑指南
热门文章
- esp8266单片机透传_ESP8266通过MQTT接入Home Assistant
- druid mysql配置详解_druid配置详解
- mfc 怎么让键盘上下左右控制图片移动_[源码和文档分享]基于MFC的陨石撞飞机游戏设计与实现...
- ffmpeg for android windows,windows10下编译ffmpeg for android
- python 把一个列表分成等长的多个列表
- 安徽省计算机二级大题教程,安徽省计算机二级例题
- php两次访问时间,php – 检查当前时间是否介于两次之间,可能会有几天的时间
- c++ vector clear()清除容器中所有数据
- python word2vector (三)
- 一文深入理解协同过滤