SQL INSERT INTO-instructie voegt gegevens toe aan de nieuw gemaakte tabellen of bestaande tabellen. We kunnen enkele records of meerdere records in een tabel toevoegen door deze zoekopdracht te gebruiken.
Er zijn twee mogelijke manieren om gegevens aan een tabel toe te voegen:
- Noem de naam van het veld en de waarden worden aan de tabel toegevoegd.
- Als we waarden toevoegen voor alle tabelvelden, hoeven we de naam van het veld niet te vermelden in de SQL INSERT INTO-instructie of query. Zorg er echter voor dat de volgorde van de waarden hetzelfde is als de volgorde van de kolommen in de tabel.
Syntaxis voor SQL INSERT INTO-instructie door de veldnamen in de instructie of query te vermelden:
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 zijn de veldnamen in de tabellen waaraan we waarden willen toevoegen.
De syntaxis voor de SQL-instructie INSERT INTO zonder de namen van de velden in de instructie of query te vermelden:
INSERT INTO Table_Name VALUES (Value1, Value2, Value3, Value4, Value5);
De bovenstaande syntaxis wordt gebruikt om waarden in alle velden van de tabellen in te voegen.
De volgende uitspraken zouden acht records in de tabel Klant creëren.
INSERT INTO Klant (Customer_Id, Customer_Name, Leeftijd, Adres, Salaris)
WAARDEN (1, 'Rakesh', 32, 'Ahmedabad', 20000);
INSERT INTO Klant (Customer_Id, Customer_Name, Leeftijd, Adres, Salaris)
WAARDEN (2, 'Kamlesh', 27, 'Delhi', 15000);
INSERT INTO Klant (Customer_Id, Customer_Name, Leeftijd, Adres, Salaris)
WAARDEN (3, 'kaustubh', 25, 'Pune', 20000);
INSERT INTO Klant (Customer_Id, Customer_Name, Leeftijd, Adres, Salaris)
WAARDEN (4, 'Chaitali', 25, 'Mumbai', 15000);
INSERT INTO Klant (Customer_Id, Customer_Name, Leeftijd, Adres, Salaris)
WAARDEN (5, 'Himesh', 29, 'Delhi', 45000);
INSERT INTO Klant (Customer_Id, Customer_Name, Leeftijd, Adres, Salaris)
WAARDEN (6, 'Komal', 22, 'MP', 45000);
INSERT INTO Klant (Customer_Id, Customer_Name, Leeftijd, Adres, Salaris)
WAARDEN (7, 'Nikhlesh', 28, 'Delhi', 40000);
INSERT INTO Klant (Customer_Id, Customer_Name, Leeftijd, Adres, Salaris)
WAARDEN (8, 'Kamolika', 24, 'Pune', 50000);
In de bovenstaande INSERT INTO-instructie hebben we de records in de tabel Klant toegevoegd door de veldnamen van de tabel te vermelden.
We kunnen de gegevens aan de tabel toevoegen zonder de veldnaam van de tabel te noemen:
De volgende voorbeeldinstructies zouden zes records in de tabel Klant creëren.
INVOER IN WAARDEN VAN DE KLANTEN (9, 'Raman', 30, 'Mumbai', 35500);
VOEG DE WAARDEN VAN DE KLANTEN IN (10, 'Manoj', 40, 'Pune', 45000);
INVOER IN WAARDEN VAN DE KLANTEN (11, 'Shweta', 26, 'MP', 42500);
VOEG DE WAARDEN VAN DE KLANTEN IN (12, 'Shivani', 25, 'Delhi', 50000);
VOEG DE WAARDEN VAN DE KLANTEN IN (13, 'Rahul', 28, 'Nashik', 34000);
VOEG DE WAARDEN VAN DE KLANTEN IN (14, 'Sahil', 22, 'Nashik', 27000);
In het bovenstaande voorbeeld van de INSERT INTO-instructie hebben we de records toegevoegd zonder de veldnaam in de query te vermelden.
Alle bovenstaande zoekopdrachten zouden de volgende gegevens in de klanttabel genereren, zoals hieronder weergegeven:
Klant_Id | Klantnaam | Leeftijd | Adres | Salaris |
1 | Rakesh | 32 | Ahmedabad | 20000 |
2 | Kamlesj | 27 | Delhi | 15000 |
3 | Kausubh | 25 | Pune | 20000 |
4 | Chaitali | 25 | Mumbai | 15000 |
5 | Himesh | 29 | Delhi | 45000 |
6 | Komal | 22 | Kamerlid | 45000 |
7 | Niklesh | 28 | Delhi | 40000 |
8 | Kamolika | 24 | Pune | 50000 |
9 | Raman | 30 | Mumbai | 35500 |
10 | Manoj | 40 | Pune | 45000 |
11 | Sjweta | 26 | Kamerlid | 42500 |
12 | Shivani | 25 | Delhi | 50000 |
13 | Rahul | 28 | Nashik | 34000 |
14 | Sahil | 22 | Nashik | 27000 |
INSERT INTO SELECT-instructie.
INSERT INTO SELECT-instructie is ook een manier om records aan de tabel toe te voegen. De instructie INSERT INTO SELECT wordt gebruikt om records uit de bestaande tabel in één tabel in te voegen. Waar alle velden en volgorde van de velden hetzelfde zijn.
We zullen een nieuwe klant maken en dezelfde velden gebruiken uit de bovenstaande klantentabel.
CREATE TABLE Customers (Customer_Id int Primary key, Customer_Name varchar(40), Age int, Address Varchar(20), Salary int);
Gebruik het DESC-commando gevolgd door de tabelnaam Klanten om de tabelstructuur weer te geven.
Velden | Type | Null | Sleutel | Standaard | Extra |
Klant_Id | Int(11) | NEE | PRI | NULL | |
Klantnaam | Varchar(40) | JA | NULL | ||
Leeftijd | Int(11) | JA | NULL | ||
Adres | Varchar(20) | JA | NULL | ||
Salaris | Int(11) | JA | NULL |
We kunnen records aan een tabel toevoegen via de SELECT-instructie boven een andere tabel.
Syntaxis van 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;
Voorbeeld van de INSERT INTO SELECT-instructie:
INSERT INTO Customers SELECT * FROM Customer;
In het bovenstaande voorbeeld INSERT INTO SELECT worden alle records uit de tabel Klant toegevoegd aan de tabel Klanten.
De volgende gegevens in de tabel Klant worden hieronder weergegeven:
Klant_Id | Klantnaam | Leeftijd | Adres | Salaris |
1 | Rakesh | 32 | Ahmedabad | 20000 |
2 | Kamlesj | 27 | Delhi | 15000 |
3 | Kausubh | 25 | Pune | 20000 |
4 | Chaitali | 25 | Mumbai | 15000 |
5 | Himesh | 29 | Delhi | 45000 |
6 | Komal | 22 | Kamerlid | 45000 |
7 | Niklesh | 28 | Delhi | 40000 |
8 | Kamolika | 24 | Pune | 50000 |
9 | Raman | 30 | Mumbai | 35500 |
10 | Manoj | 40 | Pune | 45000 |
11 | Sjweta | 26 | Kamerlid | 42500 |
12 | Shivani | 25 | Delhi | 50000 |
13 | Rahul | 28 | Nashik | 34000 |
14 | Sahil | 22 | Nashik | 27000 |