Dit artikel bevat basis SQL INSERT
instructies die beginners kunnen gebruiken om gegevens in hun databasetabellen in te voegen.
Basissyntaxis
De basissyntaxis voor het invoegen van gegevens in SQL gaat als volgt:
INSERT INTO TableName (Column1, Column2, Column3, ...)
VALUES (Value1, Value2, Value3, ...);
Waar:
TableName
is de naam van de tabel waarin u gegevens wilt invoegenColumn1
, enz. zijn de namen van de kolommen waarin u gegevens wilt invoegenValue1
, enz. zijn de waarden die u in die kolommen invoegt. De volgorde van deze waarden moet overeenkomen met de volgorde waarin u de kolommen heeft vermeld (d.w.z.Value1
gaat naarColumn1
, enz.).
U kunt de kolomnamen weglaten als u waarden in alle kolommen invoegt. In dat geval kunt u de volgende syntaxis gebruiken:
INSERT INTO TableName
VALUES (Value1, Value2, Value3, ...);
Merk op dat sommige DBMS'en een complexere syntaxis gebruiken dan deze (d.w.z. ze bieden meer opties), maar dit is over het algemeen de basissyntaxis die nodig is om gegevens in een tabel in te voegen.
Invoegen in alle kolommen
Hier is een eenvoudig voorbeeld waarbij gegevens in alle kolommen in de tabel worden ingevoegd:
INSERT INTO PetTypes
VALUES( 1, 'Bird' );
In dit geval zijn er twee kolommen in de PetTypes
tabel, en we voegen waarden in beide kolommen in, daarom hoeven we de kolomnamen niet op te geven.
De bovenstaande verklaring is hetzelfde als dit doen:
INSERT INTO PetTypes( PetTypeId, PetType )
VALUES( 1, 'Bird' );
We kunnen onze gegevens controleren door een SELECT
. uit te voeren verklaring.
SELECT * FROM PetTypes;
Resultaat:
+-------------+-----------+ | PetTypeId | PetType | |-------------+-----------| | 1 | Bird | +-------------+-----------+
Invoegen in enkele kolommen
Hier is een eenvoudig voorbeeld dat gegevens invoegt in slechts enkele van de kolommen in de tabel:
INSERT INTO Users( UserId, FirstName, LastName )
VALUES( 1, 'Lansell', 'Letterman' );
Deze tabel heeft eigenlijk vier kolommen, maar we voegen alleen gegevens in drie van die kolommen in. We kunnen dat zien wanneer we een SELECT
. uitvoeren statement tegen de tabel na het invoegen van de gegevens.
SELECT * FROM Users;
Resultaat:
+----------+-------------+------------+-----------------------------+ | UserId | FirstName | LastName | DateInserted | |----------+-------------+------------+-----------------------------| | 1 | Lansell | Letterman | 2020-11-21 05:18:50.0029455 | +----------+-------------+------------+-----------------------------+
Waarden in de verkeerde volgorde invoegen
Met de kolomlijstmethode kunt u gegevens invoegen die niet in dezelfde volgorde staan:
INSERT INTO Users( LastName, FirstName, UserId )
VALUES( 'Pitt', 'Bart', 2 );
In dit voorbeeld heb ik de volgorde van de kolommen en hun respectieve waarden herschikt. Gelukkig geeft de kolomlijst de DBMS richtlijnen over waar elke waarde moet worden ingevoegd.
Dus als we nu onze gegevens selecteren, zullen we zien dat deze in de juiste kolommen zijn ingevoegd.
SELECT * FROM Users;
Resultaat:
+----------+-------------+------------+-----------------------------+ | UserId | FirstName | LastName | DateInserted | |----------+-------------+------------+-----------------------------| | 1 | Lansell | Letterman | 2020-11-21 05:18:50.0029455 | | 2 | Bart | Pitt | 2020-11-21 05:30:07.4456867 | +----------+-------------+------------+-----------------------------+
Voeg het resultaat van een zoekopdracht in
Het is ook mogelijk om de resultatenset van een query in een tabel in te voegen. Er zijn een aantal benaderingen die u hiermee kunt nemen.
- Gebruik de
INSERT INTO... SELECT
uitspraak. In dit geval moet u eerst de tabel maken voordat u er een set met queryresultaten in invoegt. - Gebruik de CREATE TABLE … AS SELECT-instructie. Met deze methode wordt automatisch een nieuwe tabel gemaakt op basis van de resultatenset van de query en worden deze resultaten vervolgens in de tabel ingevoegd. Hoewel deze methode voldoet aan de SQL-standaard, wordt deze niet door alle DBMS'en ondersteund.
- Gebruik de
SELECT INTO
uitspraak. Dit is vergelijkbaar met de vorige optie. Er wordt automatisch een nieuwe tabel gemaakt op basis van de resultatenset van de query en deze resultaten worden vervolgens in de tabel ingevoegd. Als de vorige methode (CREATE TABLE ... AS SELECT
) niet wordt ondersteund door uw DBMS, probeer deze methode.