A instrução SQL INSERT INTO adiciona dados às tabelas recém-criadas ou tabelas existentes. Podemos adicionar registros únicos ou vários registros em uma tabela usando esta consulta.
Há duas maneiras possíveis de adicionar dados a uma tabela:
- Mencione o nome do campo e os valores são adicionados à tabela.
- Se adicionarmos valores para todos os campos da tabela, não precisamos mencionar o nome do campo na instrução ou consulta SQL INSERT INTO. Mas certifique-se de que a ordem dos valores seja a mesma das colunas na tabela.
Sintaxe para a instrução SQL INSERT INTO mencionando os nomes dos campos na instrução ou consulta:
INSERT INTO Table_Name (Column_Name1, Column_Name2, Column_Name3, Column_Name4, Column_Name5) VALUES (Value1, Value2, Value3, Value4, Value5);
Column_Name1, Column_Name2, Column_Name3, Column_Name4, Column_Name5 são os nomes dos campos nas tabelas nas quais queremos adicionar valores.
A sintaxe para a instrução SQL INSERT INTO sem mencionar os nomes dos campos na instrução ou consulta:
INSERT INTO Table_Name VALUES (Value1, Value2, Value3, Value4, Value5);
A sintaxe acima é utilizada para inserir valores em todos os campos das tabelas.
As instruções a seguir criariam oito registros na tabela Customer.
INSERT INTO Customer (Customer_Id, Customer_Name, Idade, Endereço, Salário)
VALUES (1, 'Rakesh', 32, 'Ahmedabad', 20000);
INSERT INTO Customer (Customer_Id, Customer_Name, Idade, Endereço, Salário)
VALORES (2, 'Kamlesh', 27, 'Delhi', 15.000);
INSERT INTO Customer (Customer_Id, Customer_Name, Idade, Endereço, Salário)
VALUES (3, 'kaustubh', 25, 'Pune', 20000);
INSERT INTO Customer (Customer_Id, Customer_Name, Idade, Endereço, Salário)
VALORES (4, 'Chaitali', 25, 'Mumbai', 15.000);
INSERT INTO Customer (Customer_Id, Customer_Name, Idade, Endereço, Salário)
VALORES (5, 'Himesh', 29, 'Delhi', 45000);
INSERT INTO Customer (Customer_Id, Customer_Name, Idade, Endereço, Salário)
VALORES (6, 'Komal', 22, 'MP', 45000);
INSERT INTO Customer (Customer_Id, Customer_Name, Idade, Endereço, Salário)
VALORES (7, 'Nikhlesh', 28, 'Delhi', 40.000);
INSERT INTO Customer (Customer_Id, Customer_Name, Idade, Endereço, Salário)
VALORES (8, 'Kamolika', 24, 'Pune', 50.000);
Na instrução INSERT INTO acima, adicionamos os registros na tabela Customer mencionando os nomes dos campos da tabela.
Podemos adicionar os dados à tabela sem mencionar o nome do campo da tabela:
As instruções de exemplo a seguir criariam seis registros na tabela Customer.
INSERIR VALORES DO CLIENTE (9, 'Raman', 30, 'Mumbai', 35500);
INSERIR VALORES DO CLIENTE (10, 'Manoj', 40, 'Pune', 45000);
INSERIR VALORES DO CLIENTE (11, 'Shweta', 26, 'MP', 42500);
INSERIR VALORES DO CLIENTE (12, 'Shivani', 25, 'Delhi', 50.000);
INSERIR VALORES DO CLIENTE (13, 'Rahul', 28, 'Nashik', 34000);
INSERIR VALORES DO CLIENTE (14, 'Sahil', 22, 'Nashik', 27000);
No exemplo da instrução INSERT INTO acima, adicionamos os registros sem mencionar o nome dos campos na consulta.
Todas as consultas acima gerariam os seguintes dados na tabela Cliente, conforme mostrado abaixo:
Customer_Id | Nome_cliente | Idade | Endereço | Salário |
1 | Rakesh | 32 | Ahmedabad | 20.000 |
2 | Kamlesh | 27 | Delhi | 15.000 |
3 | Kausubh | 25 | Punha | 20.000 |
4 | Chaitali | 25 | Mumbai | 15.000 |
5 | Himesh | 29 | Delhi | 45.000 |
6 | Komal | 22 | MP | 45.000 |
7 | Niklesh | 28 | Delhi | 40.000 |
8 | Camolika | 24 | Punha | 50.000 |
9 | Raman | 30 | Mumbai | 35500 |
10 | Mano | 40 | Punha | 45.000 |
11 | Shweta | 26 | MP | 42500 |
12 | Shivani | 25 | Delhi | 50.000 |
13 | Raul | 28 | Nashik | 34000 |
14 | Sahil | 22 | Nashik | 27.000 |
Instrução INSERT INTO SELECT.
A instrução INSERT INTO SELECT também é uma maneira de adicionar registros à tabela. A instrução INSERT INTO SELECT é usada para inserir registros em uma tabela da tabela existente. Onde todos os campos e a ordem dos campos são iguais.
Criaremos outro Cliente e usaremos os mesmos campos da tabela Cliente acima.
CREATE TABLE Customers (Customer_Id int Primary key, Customer_Name varchar(40), Age int, Address Varchar(20), Salary int);
Use o comando DESC seguido pelo nome da tabela Customers para mostrar a estrutura da tabela.
Campos | Tipo | Nulo | Chave | Padrão | Extras |
Customer_Id | Int(11) | NÃO | PRI | NULO | |
Nome_Cliente | Varchar(40) | SIM | NULO | ||
Idade | Int(11) | SIM | NULO | ||
Endereço | Varchar(20) | SIM | NULO | ||
Salário | Int(11) | SIM | NULO |
Podemos adicionar registros em uma tabela por meio da instrução SELECT sobre outra tabela.
Sintaxe de INSERT INTO SELECT:
INSERT INTO Table1 [(Column_Name1, Column_Name2, Column_Name3, Column_Name4, Column_Name5)] SELECT Column_Name1, Column_Name2, Column_Name3, Column_Name4, Column_Name5 FROM Table2;
Exemplo da instrução INSERT INTO SELECT:
INSERT INTO Customers SELECT * FROM Customer;
No exemplo INSERT INTO SELECT da consulta acima, todos os registros da tabela Customer são adicionados à tabela Customers.
Os seguintes dados na tabela Clientes são mostrados abaixo:
Customer_Id | Nome_cliente | Idade | Endereço | Salário |
1 | Rakesh | 32 | Ahmedabad | 20.000 |
2 | Kamlesh | 27 | Delhi | 15.000 |
3 | Kausubh | 25 | Punha | 20.000 |
4 | Chaitali | 25 | Mumbai | 15.000 |
5 | Himesh | 29 | Delhi | 45.000 |
6 | Komal | 22 | MP | 45.000 |
7 | Niklesh | 28 | Delhi | 40.000 |
8 | Camolika | 24 | Punha | 50.000 |
9 | Raman | 30 | Mumbai | 35500 |
10 | Mano | 40 | Punha | 45.000 |
11 | Shweta | 26 | MP | 42500 |
12 | Shivani | 25 | Delhi | 50.000 |
13 | Raul | 28 | Nashik | 34000 |
14 | Sahil | 22 | Nashik | 27.000 |