sql >> Database teknologi >  >> RDS >> Database

SQL INSERT for begyndere

Denne artikel indeholder grundlæggende SQL INSERT sætninger, som begyndere kan bruge til at indsætte data i deres databasetabeller.

Grundlæggende syntaks

Den grundlæggende syntaks for at indsætte data i SQL ser sådan ud:

INSERT INTO TableName (Column1, Column2, Column3, ...)
VALUES (Value1, Value2, Value3, ...);

Hvor:

  • TableName er navnet på den tabel, du vil indsætte data i
  • Column1 osv. er navnene på de kolonner, du vil indsætte data i
  • Value1 osv. er de værdier, du indsætter i disse kolonner. Rækkefølgen af ​​disse værdier skal matche rækkefølgen, som du angav kolonnerne (dvs. Value1 går ind i Column1 osv.).

Du kan udelade kolonnenavnene, hvis du indsætter værdier i alle kolonner. I så fald kan du bruge følgende syntaks:

INSERT INTO TableName
VALUES (Value1, Value2, Value3, ...);

Bemærk, at nogle DBMS'er bruger en mere kompleks syntaks end dette (dvs. de tilbyder flere muligheder), men dette er generelt den grundlæggende syntaks, der kræves for at indsætte data i en tabel.

Indsæt i alle kolonner

Her er et grundlæggende eksempel, der indsætter data i alle kolonner i tabellen:

INSERT INTO PetTypes
VALUES( 1, 'Bird' );

I dette tilfælde er der to kolonner i PetTypes tabel, og vi indsætter værdier i begge kolonner, derfor behøver vi ikke at angive kolonnenavnene.

Ovenstående udsagn er det samme som at gøre dette:

INSERT INTO PetTypes( PetTypeId, PetType )
VALUES( 1, 'Bird' );

Vi kan tjekke vores data ved at køre en SELECT erklæring.

SELECT * FROM PetTypes;

Resultat:

+-------------+-----------+
| PetTypeId   | PetType   |
|-------------+-----------|
| 1           | Bird      |
+-------------+-----------+

Indsæt i nogle kolonner

Her er et grundlæggende eksempel, der indsætter data i nogle af kolonnerne i tabellen:

INSERT INTO Users( UserId, FirstName, LastName )
VALUES( 1, 'Lansell', 'Letterman' );

Denne tabel har faktisk fire kolonner, men vi indsætter kun data i tre af disse kolonner. Det kan vi se, når vi kører en SELECT sætning mod tabellen efter indsættelse af data.

SELECT * FROM Users;

Resultat:

+----------+-------------+------------+-----------------------------+
| UserId   | FirstName   | LastName   | DateInserted                |
|----------+-------------+------------+-----------------------------|
| 1        | Lansell     | Letterman  | 2020-11-21 05:18:50.0029455 |
+----------+-------------+------------+-----------------------------+

Sådan indsætter du værdier i den forkerte rækkefølge

Kolonnelistemetoden giver dig mulighed for at indsætte data, der ikke er i samme rækkefølge:

INSERT INTO Users( LastName, FirstName, UserId )
VALUES( 'Pitt', 'Bart', 2 );

I dette eksempel har jeg omarrangeret rækkefølgen af ​​kolonnerne og deres respektive værdier. Heldigvis giver kolonnelisten DBMS vejledning om, hvor hver værdi skal indsættes.

Så nu, hvis vi vælger vores data, vil vi se, at de er blevet indsat i de korrekte kolonner.

SELECT * FROM Users;

Resultat:

+----------+-------------+------------+-----------------------------+
| UserId   | FirstName   | LastName   | DateInserted                |
|----------+-------------+------------+-----------------------------|
| 1        | Lansell     | Letterman  | 2020-11-21 05:18:50.0029455 |
| 2        | Bart        | Pitt       | 2020-11-21 05:30:07.4456867 |
+----------+-------------+------------+-----------------------------+

Indsæt resultatet af en forespørgsel

Det er også muligt at indsætte resultatsættet af en forespørgsel i en tabel. Der er et par tilgange, du kan tage med dette.

  • Brug koden INSERT INTO... SELECT udmelding. I dette tilfælde skal du først oprette tabellen, før du indsætter et forespørgselsresultatsæt i den.
  • Brug CREATE TABLE … SOM SELECT-sætning. Denne metode opretter automatisk en ny tabel baseret på resultatsættet af forespørgslen, og indsætter derefter disse resultater i tabellen. Selvom denne metode er i overensstemmelse med SQL-standarden, understøttes den ikke af alle DBMS'er.
  • Brug SELECT INTO udmelding. Dette svarer til den tidligere mulighed. Den opretter automatisk en ny tabel baseret på resultatsættet af forespørgslen, og indsætter derefter disse resultater i tabellen. Hvis den forrige metode (CREATE TABLE ... AS SELECT ) ikke understøttes af dit DBMS, prøv denne metode.

  1. MySQL TEKST vs BLOB vs CLOB

  2. Hvordan genererer man en version 4 (tilfældig) UUID på Oracle?

  3. EXTRACT() Eksempler – MySQL

  4. CHECK CONSTRAINT på flere kolonner