请问什么是SQL的DECLARE语句?

书上在有这样一句话不是很明白“存储设备上的数据库是用SQL存取的,数据库和主语言程序间信息的传递是通过共享变量实现的。这些共享变量要用SQL的DECLARE语句说明... ...”
请问什么是SQL的DECLARE语句?

使用一个DECLARE语句在一个批处理或超过100个进程的主体中声明变量,并使用SET或SELECT语句分配变量。游标变量度可以用这个语句声明,也可以与其他版本的游标相关语句一起使用。所有权重变量在声明后初始化为NULL。

定义语句的方法:

1、先定义一个数组,该数组是一些数字,复制可以对应到id列中的数据表中。

2.关键是将数组的内容转换为SQL语句中的字符串。

3.然后将转换后的字符串连接到SQL查询语句中的in语句。

4、不要直接使用代码来执行数据库,首先要使用dump语句来SQL输出。

5.运行该页面,您将看到最终的SQL语句,如下图所示。

6.然后可以在数据库客户端工具中执行SQL语句。

7.执行之后,可以声明数组的使用。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-07-19
MySQL 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; //
第2个回答  推荐于2018-02-27
变量是在批处理或过程的主体中用 DECLARE 语句声明的,并用 SET 或 SELECT 语句赋值。游标变量可使用此语句声明,并可用于其他与游标相关的语句。所有变量在声明后均初始化为 NULL。

在sql里按F1自己看吧本回答被提问者和网友采纳
第3个回答  2009-06-19
在sql语句中添加变量。
DECLARE @local_variable (Transact-SQL)

变量是在批处理或过程的主体中用 DECLARE 语句声明的,并用 SET 或 SELECT 语句赋值。游标变量可使用此语句声明,并可用于其他与游标相关的语句。除非在声明中提供值,否则声明之后所有变量将初始化为 NULL。

声明时需要指定变量的类型,可以使用set和select对变量进行赋值,在sql语句中就可以使用@local_variable来调用变量

例如:declare @id int

set @id=2

select id
第4个回答  2009-06-19
申明变量用的,在存储过程中可以常看到
相似回答