13

What's the difference between DECLARE and SET using SQL (or more specifically MySQL)?

Both can set variables it seems. I have read the MySQL docs and I did not understand the difference between the two.

jww
  • 90,984
  • 81
  • 374
  • 818
C H
  • 135
  • 1
  • 1
  • 6

2 Answers2

14

DECLARE does not initialize the variable. When you declare it you declare the variable name, the type, and a default value, which could be an expression.

SET is for initializing the variable you declared previously, and you cannot SET the variable until you DECLARE it.

Leigh
  • 28,605
  • 10
  • 52
  • 98
Hituptony
  • 2,662
  • 3
  • 21
  • 43
  • Thank you! So you have to use both when creating a variable with a value unless you use "DEFAULT". Understood. – C H Nov 19 '13 at 14:22
7

DECLARE defines the variable type and SET initializes the variable.

DECLARE @Var1 INT;
DECLARE @Var2 INT;
SET @Var1 = 1;
SET @Var2 = 2;
Leigh
  • 28,605
  • 10
  • 52
  • 98
Anand Mishra
  • 382
  • 2
  • 12