O uso de variáveis no MySQL permite a adição de inúmeras possibilidades de realizar operações, das mais simples às mais complexas. Acompanhe este post, para ver como manipular as variáveis no cliente MySQL — com muitos exemplos práticos.
Como usar variáveis no MySQL
Alguns pontos interessantes sobre o assunto:
- As variáveis são definidas com uma instrução
SET
- O MySQL é insensível à caixa, neste caso – ou seja,
idcliente
eIdCliEnTE
são a mesma coisa - As variáveis devem ser precedidas de um sinal ‘@’ (arroba)
- Uma vez que variáveis de sessão, ao desconectar do servidor (
QUIT
), elas se perdem automaticamente
Exemplos de uso de variáveis
Vamos usar a seguinte tabela nos exemplos que seguem. Trata-se de uma tabela curta, com apenas 3 registros.
+-----------+-----------------------------+-------------------------+ | idCliente | nomeCliente | emailCliente | +-----------+-----------------------------+-------------------------+ | 1 | Carlos Alberto da Nobrega | cacalberto@yahoo.com.br | | 2 | Carlos Augustus de Oliveira | carlaugus@yahoo.com.br | | 3 | Maria Sulamita Nogueira | msnogueira2@gmail.com | +-----------+-----------------------------+-------------------------+
Agora, vamos atribuir o valor 3 à variável @numero
. Depois, vamos pedir para exibir os dados de todos os registros cujos campos idCliente
sejam iguais a 3. Veja:
mysql> SET @numero = 3; Query OK, 0 rows affected (0.00 sec) mysql> SELECT * FROM clientes WHERE idCliente = @numero; +-----------+-------------------------+-----------------------+ | idCliente | nomeCliente | emailCliente | +-----------+-------------------------+-----------------------+ | 3 | Maria Sulamita Nogueira | msnogueira2@gmail.com | +-----------+-------------------------+-----------------------+ 1 row in set (0.00 sec)
No próximo exemplo, vamos armazenar na variável @contagem
o resultado da contagem de todos os registros da tabela clientes
(que são 3):
mysql> SET @contagem := (SELECT COUNT(*) FROM clientes); Query OK, 0 rows affected (0.00 sec) mysql> select @contagem; +-----------+ | @contagem | +-----------+ | 3 | +-----------+ 1 row in set (0.00 sec)
Como último exemplo, vamos armazenar na variável @email
o email do cliente de id
= 3. Veja como:
SELECT emailCliente INTO @email FROM clientes WHERE idCliente = 3 LIMIT 1;
Começamos por armazenar na variável @email
todos os emailCliente
, da tabela clientes
cujo idCliente
seja igual a 3
. No nosso caso, apenas um dos registros satisfaz esta condição.
Depois pedimos para exibir o conteúdo da variável @email
, com o comando SELECT
. A imagem, abaixo, mostra os resultados que eu obtive.
Se quiser ver mais exemplos de como realizar operações aritméticas dentro das tabelas, com ou sem o uso das variáveis, leia o srtigo Como usar o MySQL como calculadora!
7 replies on “Como usar variáveis no MySQL”
Muito obrigado. Ajudou demais.
😉
Olá pessoal eu tenho uma dúvida quanto a procedimento armazenado em MySQL se alguém poder me esclarecer.
É o seguinte, eu tenho um procedimento que recebe o nome de um banco de dados como argumento e gostaria de fazer um INSERT INTO no banco de dedos cujo nome foi passado como argumento.
Exemplo:
CREATE PROCEDURE insere_no_bd (nome_bd VARCHAR(16), id_registro INT)
BEGIN
INSERT INTO nome_bd.tabela (idRegistro) VALUES (id_registro) ;
Boa Noite Elias, estou com uma dúvida, teria como eu armazenar uma variavel dentro de um campo longtext?
Exemplo:
Campo = Conteudo
conteudo = ‘TEXTO PRE-FORMATADO #VARIAVEL ‘
Olá Elias, veja se pode me ajudar:
Tenho uma tabela de colaboradores identificados pelo ID; nesta tabela tenho o campo `colaboradorSexo` onde em cada linha tem marcado se é feminino ou masculino.
Preciso fazer uma consulta de formulário com select que retorne o sexo específico daquele colaborador específico, e que quando abra a caixa select não venha os 200 sexos já cadastrados.
Isto pode ser facilmente resolvido com o uso da cláusula WHERE — para filtrar resultados específicos no MySQL. 😉
Excellent site. A lot of helpful info here. I’m sending it to
several pals ans additionally sharing in delicious. And certainly, thank you in your effort!