MySQL INTO Keyword
A palavra-chave INTO no MySQL é usada para especificar o destino dos dados que estão sendo inseridos ou selecionados. Geralmente aparece nos comandos INSERT INTO para adicionar dados a tabelas e nos comandos SELECT ... INTO para armazenar dados em variáveis.
Uso
A palavra-chave INTO é usada quando você deseja direcionar dados para uma tabela ou variável. Em um comando INSERT, ele ajuda a especificar a tabela de destino, enquanto em um comando SELECT ... INTO, ele define o destino dos dados selecionados, normalmente em variáveis.
Sintaxe
INSERT INTO
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
Aqui, INTO table_name indica a tabela em que os novos dados serão adicionados.
SELECT INTO Variáveis
SELECT column1, column2, ...
INTO @variable1, @variable2, ...
FROM existing_table
[WHERE condition];
Essa sintaxe armazena os resultados da consulta em variáveis definidas pelo usuário.
Criação de uma nova tabela a partir de uma consulta SELECT
CREATE TABLE new_table AS
SELECT column1, column2, ...
FROM existing_table
[WHERE condition];
Essa sintaxe cria uma nova tabela new_table contendo dados selecionados de existing_table.
Exemplos
1. Inserção básica
INSERT INTO products (product_name, price)
VALUES ('Laptop', 999.99);
Este exemplo insere uma nova linha na tabela products com valores especificados para product_name e price.
2. Armazenamento do resultado da consulta em variáveis
SELECT COUNT(*) INTO @total_customers
FROM customers
WHERE country = 'USA';
Neste exemplo, o resultado da consulta de contagem é armazenado em uma variável definida pelo usuário @total_customers.
3. Criação de uma nova tabela a partir de uma consulta SELECT
CREATE TABLE recent_orders AS
SELECT customer_id, order_date
FROM orders
WHERE order_date > '2023-01-01';
Essa sintaxe cria uma nova tabela recent_orders contendo dados selecionados de orders em que a data do pedido é posterior a 1º de janeiro de 2023.
Dicas e práticas recomendadas
- Garantir a existência da tabela. Ao usar
INSERT INTO, certifique-se de que a tabela de destino já exista. - Use
CREATE TABLE ... AS SELECT ...para novas tabelas. Para criar uma nova tabela a partir de uma consulta de seleção, prefira usarCREATE TABLE ... AS SELECT ...em vez deSELECT INTO. - Verifique os tipos de dados. Faça a correspondência entre os tipos de dados dos valores e as definições de coluna em
INSERT INTOpara evitar erros. - Utilize variáveis para consultas complexas. Use
SELECT ... INTOcom variáveis para armazenar resultados de consultas complexas para uso posterior. - Lidar com erros e exceções. Implemente o tratamento de erros para gerenciar exceções durante as operações de inserção ou seleção de dados.
Observação: O MySQL é diferente de outros dialetos SQL, como o SQL Server, em que o SELECT INTO é usado para criar novas tabelas. No MySQL, use CREATE TABLE ... AS SELECT ... para essa finalidade.