Variáveis ​​MySQL

Resumo : neste tutorial, você aprenderá como usar variáveis ​​MySQL em instruções SQL.

Introdução às variáveis ​​definidas pelo usuário MySQL

Às vezes, você deseja passar um valor de uma instrução SQL para outras instruções SQL na mesma sessão.

Para fazer isso, armazene o valor em uma variável definida pelo usuário na primeira instrução e use-o nas instruções subsequentes.

Para criar uma variável definida pelo usuário, use a seguinte sintaxe:

@variable_nameLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta sintaxe, @variable_nameé uma variável definida pelo usuário. É precedido pelo @símbolo. No MySQL, as variáveis ​​definidas pelo usuário não diferenciam maiúsculas de minúsculas , o que significa que @ide @IDsão as mesmas variáveis.

Observe que as variáveis ​​definidas pelo usuário são a extensão específica do MySQL para o padrão SQL. Eles podem não estar disponíveis em outros sistemas de banco de dados.

Atribuição de variável MySQL

O MySQL oferece duas maneiras de atribuir um valor a uma variável definida pelo usuário.

1) Usando a instrução SET

Para atribuir um valor a uma variável, você pode usar a instrução SET da seguinte forma:

SET @variable_name = value;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Esta instrução atribui o valor a @variable_name.

Além de usar o operador de atribuição =, você pode usar o operador :=:

SET @variable_name := value;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

2) Usando a instrução SELECT

A seguinte instrução SELECT atribui a valueà variável definida pelo usuário @variable_name:

SELECT @variable_name := value;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Observe que neste caso, você deve usar o :=operador de atribuição porque a SELECTinstrução trata o =operador como o operador igual.

Exemplos de variáveis ​​MySQL

Usaremos a productstabela do banco de dados de exemplo para a demonstração.

1) Exemplo básico de variável definida pelo usuário

A instrução a seguir recupera o produto mais caro da productstabela e atribui o preço à variável definida pelo usuário @msrp:

SELECT 
  @msrp := MAX(msrp) 
FROM 
  products;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+------------------+
| @msrp:=MAX(msrp) |
+------------------+
|           214.30 |
+------------------+
1 row in set, 1 warning (0.03 sec)Linguagem de código:  JavaScript  ( javascript )

A instrução a seguir utiliza a @msrpvariável para consultar as informações do produto mais caro.

SELECT 
  productCode, 
  productName, 
  productLine, 
  msrp 
FROM 
  products 
WHERE 
  msrp = @msrp;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+-------------+--------------------------+--------------+--------+
| productCode | productName              | productLine  | msrp   |
+-------------+--------------------------+--------------+--------+
| S10_1949    | 1952 Alpine Renault 1300 | Classic Cars | 214.30 |
+-------------+--------------------------+--------------+--------+
1 row in set (0.00 sec)Linguagem de código:  JavaScript  ( javascript )

2) Usando uma variável definida pelo usuário em uma consulta que retorna vários valores

Uma variável definida pelo usuário pode conter um único valor. Se a instrução SELECT retornar vários valores, a variável assumirá o valor da última linha do conjunto de resultados.

SELECT 
  @buy_price := buyPrice 
FROM 
  products 
WHERE 
  buyPrice > 95 
ORDER BY 
  buyPrice;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+----------------------+
| @buy_price:=buyPrice |
+----------------------+
|                95.34 |
|                95.59 |
|                98.30 |
|                98.58 |
|               101.51 |
|               103.42 |
+----------------------+
6 rows in set, 1 warning (0.00 sec)Linguagem de código:  JavaScript  ( javascript )

Neste exemplo, @buy_pricearmazenará o último valor no conjunto de resultados:

SELECT @buy_price;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+------------+
| @buy_price |
+------------+
|     103.42 |
+------------+
1 row in set (0.00 sec)Linguagem de código:  JavaScript  ( javascript )

Resumo

  • Use as variáveis ​​definidas pelo usuário do MySQL nas instruções SQL para passar dados entre instruções dentro de uma sessão.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *