Mysql sett inn i valgt i en kommando

Mysql sett inn i valgt i en kommando
Vi er alle kjent med den grunnleggende MySQL -innsatsen i klausul som lar oss sette inn verdier i en tabell.

I denne opplæringen vil vi utsette fra det og se på innsatsen i - Velg uttalelse som vi kan bruke til å sette inn verdier i en tabell der verdiene er fra resultatet av en SELECT -setning.

Grunnleggende bruk

Hvis du kan huske det grunnleggende innlegget i leddet i MySQL, kan vi legge til data som:

Sett inn TBL_NAME VERDIER (VERDIER1… VERDIERN);

Vi kan imidlertid bruke Select -setningen i stedet for verdiklausulen.

Den generelle syntaksen er:

Sett inn TBL_NAME (COLS) Velg COLS_LIST fra TBL_NAME hvor tilstanden;

Spørringen ovenfor bruker SELECT -leddet for å velge spesifiserte verdier fra andre tabeller og sett dem inn i setetabellen.

I de fleste tilfeller bruker vi innsatsen i - velg leddet når du kopierer verdier fra en annen tabell eller bare deler av verdiene fra en tabell.

Eksempel Bruk sak

La meg illustrere hvordan vi kan bruke innsatsen i med Select-setningen ved hjelp av en virkelighetsdatabase.

MERK: For dette eksemplet vil jeg bruke Sakila -databasen for illustrasjoner. Bruk gjerne hvilken som helst annen database eller last ned en kopi av Sakila -eksempeldatabasen fra ressursen som er gitt nedenfor:

https: // dev.mysql.com/doc/indeks-annet.html

La oss starte med å lage en tabell som vil inneholde dataene som vist i spørsmålene nedenfor:

Bruk Sakila;
Slippbord hvis eksisterer currated_info;
Lag tabell currated_info (
id int primær nøkkel auto_increment,
tittelen varchar (100),
Rating varchar (50),
FILM_LENGHT INT
);

Til slutt kan vi bruke innlegg i uttalelse for tabellen ovenfor som vist i spørringen nedenfor:

Sett inn i currated_info (tittel, rating, film_length) velg tittel, rating, lengde fra film;

Når spørringen har utført vellykket, kan vi spørre den kuraterte_tabelen og se dataene som vist nedenfor:

mysql> bruk Sakila;
Databasen endret
mysql> velg * fra currated_info -grensen 5;
+----+------------------+--------+-------------+
| id | tittel | Rating | film_lengde |
+----+------------------+--------+-------------+
| 1 | Academy Dinosaur | PG | 86 |
| 2 | Ace Goldfinger | G | 48 |
| 3 | Tilpasningshull | NC-17 | 50 |
| 4 | Affære fordommer | G | 117 |
| 5 | Afrikansk egg | G | 130 |
+----+------------------+--------+-------------+
5 rader i settet (0.00 sek)

Som du kan se, kan vi bruke Select -setningen i stedet for verdiklausulen for å legge til verdier i en tabell.

MERK: Vær forsiktig når du bruker SELECT -setningen i en stor database, da den kan bremse databasen eller forårsake et krasj.

Konklusjon

I denne opplæringen lærte vi raskt hvordan vi bruker MySQL -innsatsen i leddet med SELECT -setningen for å legge til data fra resultatet av en SELECT -spørring.