mysql 5.5 declare_MySQL5新语句declare的用法
新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的用法相关推荐
- mysql declare 用法,MySQL5新语句declare的用法
新SQL语句,在复合语句中声明变量的指令是DECLARE.(1) Example with two DECLARE statements 两个DECLARE语句的例子 CREATE PROCEDURE ...
- 软件创新实验室:MySQL数据库与简单SQL语句使用
文章目录 前言 简介 特点 SQL DDL:操作数据库.表 DML:增删改表中数据 DQL:查询表中的记录 后记 拓展 范式 第一范式 1NF 第二范式 2NF 第三范式 3NF B+树 节点结构 插 ...
- PHP学习笔记 第八讲 Mysql.简介和创建新的数据库
八.Mysql.简介和创建新的数据库 1.mysql简介与概要 mysql是一个小型关系型数据管理系统,开发者为瑞典mysqlab公司现在已经被sun公司收购 1.可以处理拥有上千万条记录的大型数据 ...
- mysql种default约束的语句_sql语句大全之SQL DEFAULT 约束
SQL DEFAULT约束 DEFAULT 约束用于向列中插入默认值. 如果没有规定其他的值,那么会将默认值添加到所有的新纪录. SQL DEFAULT Constraint on CREATE TA ...
- mysql优化的几种方法_详解mysql数据库不同类型sql语句优化方法
概述 分享一下之前笔记记录的一些不同类型sql语句优化方法,针对mysql. 主要分成优化INSERT语句.优化ORDER BY语句.优化GROUP BY 语句.优化嵌套查询.优化OR语句这几个方面, ...
- mysql直连1.执行语句_MySQL随笔01_一条SQL语句是如何执行的
一.MySQL基础架构示意图 二.MySQL分层 总体来讲,MySQL可以分为二层:Server层 和 存储引擎 两部分,如下图所示. 不同的存储引擎共用一个Server层. 三.各部分组件概述 连接 ...
- mysql load会锁表吗_Mysql必读MySQL中由load data语句引起死锁的解决案例
<MysqL必读MysqL中由load data语句引起死锁的解决案例>要点: 本文介绍了MysqL必读MysqL中由load data语句引起死锁的解决案例,希望对您有用.如果有疑问,可 ...
- 宋利兵 mysql_《MySQL 5.7 Replication新特性》分享之互动问题解答
分享主题 <MySQL 5.7 Replication新特性> 嘉宾介绍 宋利兵,MySQL研发工程师.2009年加入MySQL全球研发团队,从事MySQL复制相关功能的开发. 主题介绍 ...
- MySql (二)入门语句和基本操作
mysql的入门语句: 查看服务器下的库 show databases; 创建库(数据库被创建后它的名字是不可以更改的) create database 数据库名; 2.1.插看当前所在的库 sele ...
最新文章
- pytorch dropout用法
- MPAndroidChart 教程:开始 Getting Started
- 水阀门开关方向图解_低压阀门开闭器
- sentinel的@SentinelResource注解使用
- PyODPS开发中的最佳实践
- Nginx学习之一:从权威途径(wiki)了解Nginx
- 系统状态检测 及进程控制
- 使用 MonoGame* 开发游戏
- 【LeetCode】026. Remove Duplicates from Sorted Array
- ORACLE EXP/IMP的使用详解 (解决9i(window)导入到10G的乱码问题)
- CComPtr和 CComQIPtr用法
- JxBrowser开启调试模式,JxBrowser debug
- 企业工商信息数据API接口
- onkeyup+onafterpaste 只能输入数字和小数点--转载
- Eclipse打印Java的char默认值,出现方框原因
- 拼多多校招编程题--大整数相乘(Java实现)
- 若依配置教程(九)若依前后端分离版部署到服务器Nginx(Windows版)
- 关于点击事件网页自动跳转,并且F12的调试窗口消失,找不到调用方法的解决办法
- 矿大计算机考研上岸分数,这些考研院校,今年上岸更容易!初试占比高达70%!...
- centos7修改主机名的方法
热门文章
- R语言临床预测模型的评价指标与验证指标实战:自定义的净重新分类指数NRI(Net Reclassification Index, NRI)函数
- R语言cox回归模型案例(绘制列线图、校正曲线):放疗是否会延长胰脏癌手术患者的生存时间
- python代码找到链表的倒数第K个节点并打印
- 捋一下测序后生信分析内容及其常用软件
- SNV分析软件/工具
- docker 查看容器磁盘大小_软件安全 : Docker逃逸详解
- linux环境变量管理器,运维 - linux(ubuntu) 环境变量管理 (持续更新)
- linux mysql远程连接其他服务器_Linux服务器中MySQL远程连接的开启方法
- c++代码转为go_Go与C/C++ 互相调用
- C语言程序设计第十章字符串,C语言程序设计(字符串)