新SQL语句,在复合语句中声明变量的指令是DECLARE。 (1) Example with two DECLARE statements两个DECLARE语句的例子CREATE PROCEDURE p8 ()BEGINDECLARE a INT;DECLARE b INT;SET a = 5;SET b = 5;INSERT INTO t VALUES (a);SELECT s1 * a FROM t WHERE s1 >=

新SQL语句,在复合语句中声明变量的指令是DECLARE。(1) Example with two DECLARE statements

两个DECLARE语句的例子

CREATE PROCEDURE p8 ()

BEGIN

DECLARE a INT;

DECLARE b INT;

SET a = 5;

SET b = 5;

INSERT INTO t VALUES (a);

SELECT s1 * a FROM t WHERE s1 >= b;

END; // /* I won't CALL this */在过程中定义的变量并不是真正的定义,你只是在BEGIN/END块内定义了而已(译注:也就是形参)。注意这些变量和会话变量不一样,不能使用修饰符@你必须清楚的在BEGIN/END块中声明变量和它们的类型。变量一旦声明,你就能在任何能使用会话变量、文字、列名的地方使用。(2)Example with no DEFAULT clause and SET statement

没有默认子句和设定语句的例子

CREATE PROCEDURE p9 ()

BEGIN

DECLARE a INT /* there is no DEFAULT clause */;

DECLARE b INT /* there is no DEFAULT clause */;

SET a = 5; /* there is a SET statement */

SET b = 5; /* there is a SET statement */

INSERT INTO t VALUES (a);

SELECT s1 * a FROM t WHERE s1 >= b;

END; // /* I won't CALL this */有很多初始化变量的方法。如果没有默认的子句,那么变量的初始值为NULL。你可以在任何时候使用SET语句给变量赋值。(3)Example with DEFAULT clause

含有DEFAULT子句的例子

CREATE PROCEDURE p10 ()

BEGIN

DECLARE a, b INT DEFAULT 5;

INSERT INTO t VALUES (a);

SELECT s1 * a FROM t WHERE s1 >= b;

END; //我们在这里做了一些改变,但是结果还是一样的。在这里使用了DEFAULT子句来设定初始值,这就不需要把DECLARE和SET语句的实现分开了。 (4)Example of CALL

调用的例子

mysql> CALL p10() //

+--------+

| s1 * a |

+--------+

| 25 |

| 25 |

+--------+

2 rows in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)结果显示了过程能正常工作

(5) Scope

作用域

CREATE PROCEDURE p11 ()

BEGIN

DECLARE x1 CHAR(5) DEFAULT 'outer';

BEGIN

DECLARE x1 CHAR(5) DEFAULT 'inner';

SELECT x1;

END;

SELECT x1;

END; //现在我们来讨论一下作用域的问题。例子中有嵌套的BEGIN/END块,当然这是合法的。同时包含两个变量,名字都是x1,这样也是合法的。内部的变量在其作用域内享有更高的优先权。当执行到END语句时,内部变量消失,此时已经在其作用域外,变量不再可见了,因此在存储过程外再也不能找到这个声明了的变量,但是你可以通过OUT参数或者将其值指派 给会话变量来保存其值。 调用作用域例子的过程:

mysql> CALL p11()//

+-------+

| x1 |

+-------+

| inner |

+-------+

+-------+

| x1 |

+-------+

| outer |

+-------+我们看到的结果时第一个SELECT语句检索到最内层的变量,第二个检索到第二层的变量。

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

mysql 5.5 declare_MySQL5新语句declare的用法相关推荐

  1. mysql declare 用法,MySQL5新语句declare的用法

    新SQL语句,在复合语句中声明变量的指令是DECLARE.(1) Example with two DECLARE statements 两个DECLARE语句的例子 CREATE PROCEDURE ...

  2. 软件创新实验室:MySQL数据库与简单SQL语句使用

    文章目录 前言 简介 特点 SQL DDL:操作数据库.表 DML:增删改表中数据 DQL:查询表中的记录 后记 拓展 范式 第一范式 1NF 第二范式 2NF 第三范式 3NF B+树 节点结构 插 ...

  3. PHP学习笔记 第八讲 Mysql.简介和创建新的数据库

    八.Mysql.简介和创建新的数据库 1.mysql简介与概要 mysql是一个小型关系型数据管理系统,开发者为瑞典mysqlab公司现在已经被sun公司收购 1.可以处理拥有上千万条记录的大型数据 ...

  4. mysql种default约束的语句_sql语句大全之SQL DEFAULT 约束

    SQL DEFAULT约束 DEFAULT 约束用于向列中插入默认值. 如果没有规定其他的值,那么会将默认值添加到所有的新纪录. SQL DEFAULT Constraint on CREATE TA ...

  5. mysql优化的几种方法_详解mysql数据库不同类型sql语句优化方法

    概述 分享一下之前笔记记录的一些不同类型sql语句优化方法,针对mysql. 主要分成优化INSERT语句.优化ORDER BY语句.优化GROUP BY 语句.优化嵌套查询.优化OR语句这几个方面, ...

  6. mysql直连1.执行语句_MySQL随笔01_一条SQL语句是如何执行的

    一.MySQL基础架构示意图 二.MySQL分层 总体来讲,MySQL可以分为二层:Server层 和 存储引擎 两部分,如下图所示. 不同的存储引擎共用一个Server层. 三.各部分组件概述 连接 ...

  7. mysql load会锁表吗_Mysql必读MySQL中由load data语句引起死锁的解决案例

    <MysqL必读MysqL中由load data语句引起死锁的解决案例>要点: 本文介绍了MysqL必读MysqL中由load data语句引起死锁的解决案例,希望对您有用.如果有疑问,可 ...

  8. 宋利兵 mysql_《MySQL 5.7 Replication新特性》分享之互动问题解答

    分享主题 <MySQL 5.7 Replication新特性> 嘉宾介绍 宋利兵,MySQL研发工程师.2009年加入MySQL全球研发团队,从事MySQL复制相关功能的开发. 主题介绍 ...

  9. MySql (二)入门语句和基本操作

    mysql的入门语句: 查看服务器下的库 show databases; 创建库(数据库被创建后它的名字是不可以更改的) create database 数据库名; 2.1.插看当前所在的库 sele ...

最新文章

  1. pytorch dropout用法
  2. MPAndroidChart 教程:开始 Getting Started
  3. 水阀门开关方向图解_低压阀门开闭器
  4. sentinel的@SentinelResource注解使用
  5. PyODPS开发中的最佳实践
  6. Nginx学习之一:从权威途径(wiki)了解Nginx
  7. 系统状态检测 及进程控制
  8. 使用 MonoGame* 开发游戏
  9. 【LeetCode】026. Remove Duplicates from Sorted Array
  10. ORACLE EXP/IMP的使用详解 (解决9i(window)导入到10G的乱码问题)
  11. CComPtr和 CComQIPtr用法
  12. JxBrowser开启调试模式,JxBrowser debug
  13. 企业工商信息数据API接口
  14. onkeyup+onafterpaste 只能输入数字和小数点--转载
  15. Eclipse打印Java的char默认值,出现方框原因
  16. 拼多多校招编程题--大整数相乘(Java实现)
  17. 若依配置教程(九)若依前后端分离版部署到服务器Nginx(Windows版)
  18. 关于点击事件网页自动跳转,并且F12的调试窗口消失,找不到调用方法的解决办法
  19. 矿大计算机考研上岸分数,这些考研院校,今年上岸更容易!初试占比高达70%!...
  20. centos7修改主机名的方法

热门文章

  1. R语言临床预测模型的评价指标与验证指标实战:自定义的净重新分类指数NRI(Net Reclassification Index, NRI)函数
  2. R语言cox回归模型案例(绘制列线图、校正曲线):放疗是否会延长胰脏癌手术患者的生存时间
  3. python代码找到链表的倒数第K个节点并打印
  4. 捋一下测序后生信分析内容及其常用软件
  5. SNV分析软件/工具
  6. docker 查看容器磁盘大小_软件安全 : Docker逃逸详解
  7. linux环境变量管理器,运维 - linux(ubuntu) 环境变量管理 (持续更新)
  8. linux mysql远程连接其他服务器_Linux服务器中MySQL远程连接的开启方法
  9. c++代码转为go_Go与C/C++ 互相调用
  10. C语言程序设计第十章字符串,C语言程序设计(字符串)