Indsæt i sql-forespørgselssyntaks. Transact-SQL - Dataindsættelse

Hvad er INSERT INTO?

Hovedformålet med databasesystemer er at gemme data i tabellerne. Dataene leveres normalt af applikationsprogrammer, der kører oven på databasen. Til det formål har SQL kommandoen INSERT, der bruges til at gemme data i en tabel. Det INSERT-kommandoen opretter en ny række i tabellen for at gemme data.

Grundlæggende syntaks

Lad os se på den grundlæggende syntaks for SQL INSERT-kommandoen vist nedenfor.

INSERT INTO `tabelnavn`(kolonne_1,kolonne_2,...) VALUES (værdi_1,værdi_2,...);

  • INDSÆT I `tabelnavn` er kommandoen, der fortæller MySQL-serveren at tilføje en ny række i en tabel med navnet `tabelnavn`.
  • (kolonne_1, kolonne_2,...) angiver de kolonner, der skal opdateres i den nye række
  • VÆRDIER (værdi_1, værdi_2,...) angiver de værdier, der skal tilføjes i den nye række

Når du angiver de dataværdier, der skal indsættes i den nye tabel, skal følgende overvejes, når du behandler forskellige datatyper.

  • Strengdatatyper- alle strengværdier skal være omgivet af enkelte anførselstegn.
  • Numeriske datatyper- alle numeriske værdier skal leveres direkte uden at omgive dem i enkelte eller dobbelte anførselstegn.
  • Datodatatyper- indsæt datoværdier i enkelte anførselstegn i formatet "ÅÅÅÅ-MM-DD".

Eksempel:

Antag, at vi har følgende liste over nye biblioteksmedlemmer, der skal tilføjes i databasen.

Fulde navne Fødselsdato køn Fysisk adresse postadresse Kontakt nummer Email adresse
Leonard Hofstadter Han Woodcrest 0845738767
Sheldon Cooper Han Woodcrest 0976736763
Rajesh Koothrappali Han Fairview 0938867763
Leslie Winkle 14/02/1984 Han 0987636553
Howard Wolowitz 24/08/1981 Han South Park P.O. Boks 4563 0987786553

Lad os "INDSÆTTE data én efter én. Vi starter med Leonard Hofstadter. Vi vil behandle kontaktnummeret som en numerisk datatype og ikke omslutte nummeret i enkelte anførselstegn.

INDSÆT I `medlemmer` (`fulde_navne`,`køn`,`fysiske_adresse`,`kontaktnummer`) VÆRDI ("Leonard Hofstadter","Mand","Woodcrest",0845738767);

Udførelse af ovenstående script taber 0'et fra Leonards kontaktnummer. Dette skyldes, at værdien vil blive behandlet som en numerisk værdi, og nullet (0) i begyndelsen slettes, da det ikke er signifikant.

For at undgå sådanne problemer skal værdien angives i enkelte anførselstegn som vist nedenfor -

INDSÆT I `medlemmer` (`fulde_navne`,`køn`,`fysiske_adresse`,`kontaktnummer`) VÆRDIER ("Sheldon Cooper","Mand","Woodcrest", "0976736763");

I ovenstående tilfælde vil nul(0) ikke blive slettet

Ændring af rækkefølgen af ​​kolonnerne har ingen effekt på INSERT-forespørgslen, så længe de korrekte værdier er blevet knyttet til de korrekte kolonner.

Forespørgslen vist nedenfor demonstrerer ovenstående punkt.

INSERT INTO `members` (`kontaktnummer`, `køn`,`fulde_navne`,`fysiske_adresse`)VÆRDI ("0938867763","Mand","Rajesh Koothrappali","Woodcrest");

Ovenstående forespørgsler sprang over kolonnen fødselsdato, som standard vil MySQL indsætte NULL-værdier i kolonner, der springes over i INSERT-forespørgslen.

Lad os nu indsætte posten for Leslie, som har fødselsdatoen oplyst. Datoværdien skal være omgivet af enkelte anførselstegn i formatet "ÅÅÅÅ-MM-DD".

INDSÆT I `medlemmer` (`fulde_navne`,`fødselsdato`,`køn`,`fysisk_adresse`,`kontaktnummer`) VÆRDI ("Leslie Winkle","1984-02-14","Mand","Woodcrest"," 0987636553");

Alle ovenstående forespørgsler specificerede kolonnerne og tilknyttede dem til værdier i insert-sætningen. Hvis vi angiver værdier for ALLE kolonnerne i tabellen, kan vi udelade kolonnerne fra indsæt-forespørgslen.

INSERT INTO `members` VALUES (9,"Howard Wolowitz","Male","1981-08-24","SouthPark","P.O. Box 4563", "0987786553", "lwolowitzemail.me");

Lad os nu bruge SELECT-sætningen til at se alle rækkerne i medlemstabellen.SELECT * FROM `members`;

medlemsnummerfulde_navnekønfødselsdatofysisk adressepostadressekontaktnummere-mail
1 Janet JonesKvinde21-07-1980 First Street Grund nr. 4Privat taske0759 253 542 Denne e-mailadresse bliver beskyttet mod spambots. Du skal have JavaScript aktiveret for at se det.
2 Janet Smith JonesKvinde23-06-1980 Melrose 123NULNULDenne e-mailadresse bliver beskyttet mod spambots. Du skal have JavaScript aktiveret for at se det.
3 Robert PhilHan12-07-1989 3rd Street 34NUL12345 Denne e-mailadresse bliver beskyttet mod spambots. Du skal have JavaScript aktiveret for at se det.
4 Gloria WilliamsKvinde14-02-1984 2nd Street 23NULNULNUL
5 Leonard HofstadterHanNULWoodcrestNUL845738767 NUL
6 Sheldon CooperHanNULWoodcrestNUL976736763 NUL
7 Rajesh KoothrappaliHanNULWoodcrestNUL938867763 NUL
8 Leslie WinkleHan14-02-1984 WoodcrestNUL987636553 NUL
9 Howard WolowitzHan24-08-1981 South ParkP.O. Boks 4563987786553 Denne e-mailadresse bliver beskyttet mod spambots. Du skal have JavaScript aktiveret for at se det.

Bemærk, at kontaktnummeret for Leonard Hofstadter har slettet nullet (0) fra kontaktnummeret. De andre kontaktnumre har ikke faldet nul (0) i begyndelsen.

Indsættelse i en tabel fra en anden tabel

INSERT-kommandoen kan også bruges til at indsætte data i en tabel fra en anden tabel. Den grundlæggende syntaks er som vist nedenfor.

INSERT INTO table_1 SELECT * FROM table_2;

Lad os nu se på et praktisk eksempel, vi vil oprette en dummy-tabel til filmkategorier til demonstrationsformål. Vi kalder de nye kategorier for tabel kategorier_arkiv. Scriptet vist nedenfor skaber tabellen.

OPRET TABEL `categories_archive` (`category_id` int(11) AUTO_INCREMENT, `category_name` varchar(150) DEFAULT NULL, `remarks` varchar(500) DEFAULT NULL, PRIMARY KEY (`category_id`))

Udfør ovenstående script for at oprette tabellen.

Lad os nu indsætte alle rækkerne fra kategoritabellen i kategoriarkivtabellen. scriptet vist nedenfor hjælper os med at opnå det.

INSERT INTO `categories_archive` VÆLG * FRA `kategorier`;

Ved at udføre ovenstående script indsættes alle rækkerne fra kategoritabellen i kategoriarkivtabellen. Bemærk, at tabelstrukturerne skal være de samme, for at scriptet kan fungere. Et mere robust script er et , der kortlægger kolonnenavnene i indsættelsestabellen med dem i tabellen , der indeholder dataene .

Forespørgslen vist nedenfor viser dens brug.

INSERT INTO `categories_archive`(category_id,category_name,bemærkninger) SELECT category_id,category_name,bemærkninger FRA `kategorier`;

Udførelse af SELECT-forespørgslen

VÆLG * FRA `kategorier_arkiv`

giver følgende resultater vist nedenfor.

kategori_idkategorinavnbemærkninger
1 KomedieFilm med humor
2 RomantiskKærlighedshistorier
3 EpiskHistorier om gamle film
4 RædselNUL
5 Science fictionNUL
6 ThrillerNUL
7 HandlingNUL
8 Romantisk komedieNUL
9 TegnefilmNUL
10 TegnefilmNUL

Resumé

  • INSERT-kommandoen bruges til at tilføje nye data til en tabel
  • Dato- og strengværdierne skal være omgivet af enkelte anførselstegn.
  • De numeriske værdier behøver ikke at være anført i anførselstegn.
  • INSERT-kommandoen kan også bruges til at indsætte data fra en tabel i en anden.

SQL INSERT INTO og INSERT SELECT sætninger bruges til at indsætte nye rækker i en tabel. Der er to måder at bruge instruktionerne på:

  1. Kun værdier: Den første metode involverer kun at angive de dataværdier, der skal indsættes uden kolonnenavnene.

Syntaks:

INSERT INTO table_name VALUES (værdi1, værdi2, værdi3,...); tabelnavn: tabelnavn. værdi1, værdi2,.. : værdier af den første kolonne, anden kolonne,... for den nye post

  1. Kolonnenavne og værdier: Den anden metode specificerer kolonnenavne og rækkeværdier, der skal indsættes:

Syntaks:

INSERT INTO tabelnavn (kolonne1, kolonne2, kolonne3,..) VÆRDIER (værdi1, værdi2, værdi3,...); tabelnavn: tabelnavn. kolonne1: navn på første kolonne, anden kolonne... værdi1, værdi2,.. : værdier af første kolonne, anden kolonne,... for ny post

Forespørgsler:

Metode 1 ( kun indsættelse af værdier):

INSERT INTO Student VALUES ("5","HARSH","WEST BENGAL","8759770477","19");

Resultat :

Efter at have brugt INSERT INTO SELECT, vil elevtabellen nu se sådan ud:

ROLL_NO NAVN ADRESSE TELEFON Alder
1 Vædder Delhi 9455123451 18
2 RAMESH GURGAON 9562431543 18
3 SUJIT ROHTAK 9156253131 20
4 SURESH Delhi 9156768971 18
3 SUJIT ROHTAK 9156253131 20
2 RAMESH GURGAON 9562431543 18
5 BARSKE VESTBENGAL 8759770477 19

Metode 2 ( kun indsættelse af værdier i specificerede kolonner):

INSERT INTO Student (ROLL_NO, NAME, Age) VALUES ("5","PRATIK","19");

Resultat :

Elevtabellen vil nu se sådan ud:

ROLL_NO NAVN ADRESSE TELEFON Alder
1 Vædder Delhi 9455123451 18
2 RAMESH GURGAON 9562431543 18
3 SUJIT ROHTAK 9156253131 20
4 SURESH Delhi 9156768971 18
3 SUJIT ROHTAK 9156253131 20
2 RAMESH GURGAON 9562431543 18
5 PRATIK nul nul 19

Bemærk, at kolonner, for hvilke der ikke er angivet nogen værdier, er sat til null.

Brug af SELECT i en INSERT INTO-sætning

Du kan bruge MySQL INSERT SELECT-sætningen til at kopiere rækker fra en tabel og indsætte dem i en anden.

Brug af denne sætning svarer til at bruge INSERT INTO. Forskellen er, at SELECT-sætningen bruges til at vælge data fra en anden tabel. Nedenfor er de forskellige måder at bruge INSERT INTO SELECT på:

  • Indsæt alle tabelkolonner: Du kan kopiere alle data i en tabel og indsætte dem i en anden tabel.

Syntaks:

INSERT INTO first_table SELECT * FROM second_table; first_table: navnet på den første tabel. second_table: navnet på den anden tabel.

Vi brugte en SELECT-sætning til at kopiere data fra én tabel og en INSERT INTO-sætning til at indsætte den i en anden.

  • Indsættelse af individuelle tabelkolonner. Du kan kun kopiere de tabelkolonner, som du vil indsætte i en anden tabel.

Syntaks:

INSERT INTO first_table(column_names1) SELECT column_names2 FROM second_table; first_table: navnet på den første tabel. second_table: navnet på den anden tabel. col_names1: komma(,) adskilte kolonnenavne for tabel 1. col_names2: komma(,) adskilte kolonnenavne for tabel 2.

Vi brugte SELECT-sætningen til kun at kopiere data fra de valgte kolonner i den anden tabel og MySQL INSERT INTO SELECT-sætningen til at indsætte den i den første tabel.

  • Kopiering af bestemte rækker fra en tabel. Du kan kopiere specifikke rækker fra en tabel for senere at indsætte dem i en anden tabel ved at bruge et WHERE-udtryk med et SELECT-udtryk. I dette tilfælde skal du bruge den relevante betingelse i WHERE.

Syntaks:

Tabel 2: Lateral Student

ROLL_NO NAVN ADRESSE TELEFON Alder
7 SOUVIK DUMDUM 9876543210 18
8 NIRAJ NOIDA 9786543210 19
9 SOMESH ROHTAK 9687543210 20

Forespørgsler:

Metode 1 ( indsæt alle rækker og kolonner):

INSERT INTO Student SELECT * FRA LateralStudent;

Resultat :

Denne forespørgsel vil indsætte alle data fra LateralStudent-tabellen i Elev-tabellen. Efter brug af SQL INSERT INTO SELECT vil elevtabellen se sådan ud:

ROLL_NO NAVN ADRESSE TELEFON Alder
1 Vædder Delhi 9455123451 18
2 RAMESH GURGAON 9562431543 18
3 SUJIT ROHTAK 9156253131 20
4 SURESH Delhi 9156768971 18
3 SUJIT ROHTAK 9156253131 20
2 RAMESH GURGAON 9562431543 18
7 SOUVIK DUMDUM 9876543210 18
8 NIRAJ NOIDA 9786543210 19
9 SOMESH ROHTAK 9687543210 20

Metode 2 ( indsættelse af individuelle kolonner):

INSERT INTO Student(ROLL_NO,NAME,Age) SELECT ROLL_NO, NAME, Age FROM LateralStudent;

Resultat :

Denne forespørgsel vil indsætte data fra kolonnerne ROLL_NO, NAME og Alder i tabellen LateralStudent i elevtabellen. De resterende kolonner i elevtabellen vil blive sat til null. Efter brug af SQL INSERT SELECT vil tabellen se sådan ud:

ROLL_NO NAVN ADRESSE TELEFON Alder
1 Vædder Delhi 9455123451 18
2 RAMESH GURGAON 9562431543 18
3 SUJIT ROHTAK 9156253131 20
4 SURESH Delhi 9156768971 18
3 SUJIT ROHTAK 9156253131 20
2 RAMESH GURGAON 9562431543 18
7 SOUVIK Nul nul 18
8 NIRAJ Nul nul 19
9 SOMESH Nul nul 20
  • Valg af specifikke rækker til at indsætte:

Resultat :

Denne forespørgsel vil kun vælge den første række fra LateralStudent-tabellen, der skal indsættes i Elev-tabellen. Efter brug af INSERT SELECT vil tabellen se sådan ud.

Ud over SELECT-sætningen diskuteret tidligere, indeholder Data Manipulation Language (DML) tre andre sætninger: INSERT, UPDATE og DELETE. Ligesom SELECT-sætningen fungerer disse tre sætninger på enten tabeller eller visninger. Denne artikel dækker INSERT-sætningen, og de to andre sætninger er dækket i den næste artikel.

INSERT erklæring indsætter rækker (eller dele af rækker) i en tabel. Der er to forskellige former for denne instruktion:

INSERT tab_name [(col_list)] STANDARDVÆRDIER | VÆRDIER (( STANDARD | NULL | udtryk ) [ ,...n]) INSERT INTO tab_name | view_name [(col_list)] (select_statement | execute_statement) Syntakskonventioner

Den første form af instruktionen giver dig mulighed for at indsætte en række (eller en del af den) i tabellen. Og den anden form af INSERT-sætningen giver dig mulighed for at indsætte resultatsættet af en SELECT-sætning eller en lagret procedure udført af en EXECUTE-sætning i en tabel. Den lagrede procedure skal returnere data, der skal indsættes i tabellen. Når det bruges sammen med en INSERT-sætning, kan en SELECT-sætning vælge værdier fra en anden eller den samme tabel, som dataene indsættes i, så længe datatyperne i de tilsvarende kolonner er kompatible.

For begge formularer skal datatypen for hver indsat værdi være kompatibel med datatypen i den tilsvarende tabelkolonne. Alle strenge og midlertidige data skal være omgivet af anførselstegn; Numeriske værdier behøver ikke at være omgivet af anførselstegn.

Indsættelse af en enkelt række

For begge former for INSERT-sætningen er det valgfrit at angive kolonnelisten eksplicit. Ikke at angive kolonner er det samme som at angive alle kolonner i tabellen.

DEFAULT VALUES parameter indsætter standardværdier for alle kolonner. Kolonner med TIMESTAMP-datatypen eller IDENTITY-egenskaben indsættes som standard med værdier, der automatisk genereres af systemet. For kolonner med andre datatyper indsættes den tilsvarende ikke-nul standardværdi, hvis den er tilgængelig, eller NULL ellers. Hvis en kolonne ikke tillader nulværdier og ikke har en standardværdi defineret, mislykkes INSERT-sætningen, og en meddelelse vises.

Eksemplet nedenfor indsætter rækker i Employee-tabellen i SampleDb-databasen, hvilket viser brugen af ​​en INSERT-sætning til at indsætte en lille mængde data i databasen:

BRUG SampleDb; INDSÆT I Medarbejder-VÆRDIER (34990, "Andrey", "Batonov", "d1"); INDSÆT I Medarbejder-VÆRDIER (38640, "Alexey", "Vasin", "d3");

Der er to forskellige måder at indsætte værdier på i en ny række. INSERT-sætningen i eksemplet nedenfor bruger eksplicit nøgleordet NULL og indsætter en NULL-værdi i den tilsvarende kolonne:

BRUG SampleDb; INDSÆT I medarbejder-VÆRDIER (34991, "Andrey", "Batonov", NULL);

For at indsætte værdier i nogle (men ikke alle) kolonner i en tabel, skal du normalt udtrykkeligt angive disse kolonner. Uspecificerede kolonner skal enten tillade NULL-værdier eller have en standardværdi defineret.

BRUG SampleDb; INSERT INTO Employee(Id, FirstName, LastName) VALUES (34992, "Andrey", "Batonov");

De to foregående eksempler svarer til hinanden. I Employee-tabellen er den eneste kolonne, der tillader NULL-værdier, kolonnen DepartmentNumber, og alle andre kolonner blev deaktiveret af NOT NULL-sætningen i CREATE TABLE-sætningen.

Værdirækkefølge i VALUES tilbud INSERT-sætninger kan afvige fra den rækkefølge, der er angivet i CREATE TABLE-sætningen. I dette tilfælde skal deres rækkefølge matche den rækkefølge, som de tilsvarende kolonner er opført i kolonnelisten. Nedenfor er et eksempel på indsættelse af data i en anden rækkefølge end originalen:

BRUG SampleDb; INSERT INTO Employee(Afdelingsnummer, Efternavn, Id, Fornavn) VÆRDI ("d1", "Batonov", 34993, "Andrey");

Indsættelse af flere rækker

Den anden form af INSERT-sætningen indsætter en eller flere rækker valgt af en underforespørgsel i tabellen. Eksemplet nedenfor viser, hvordan man indsætter rækker i en tabel ved hjælp af den anden form af INSERT-sætningen. I dette tilfælde udføres en forespørgsel for at vælge numre og navne på afdelinger i Moskva, og det resulterende resultatsæt indlæses i en ny tabel oprettet tidligere.

Den nye MoscowDepartment-tabel, der er oprettet i eksemplet ovenfor, har de samme kolonner som den eksisterende afdelingstabel, bortset fra den manglende placeringskolonne. Underforespørgslen i INSERT-sætningen vælger alle rækker i afdelingstabellen, for hvilke Location kolonneværdien er "Moskva", som derefter indsættes i den nye tabel, der oprettes i begyndelsen af ​​forespørgslen.

Eksemplet nedenfor viser en anden måde at indsætte rækker i en tabel ved hjælp af den anden form af INSERT-sætningen. I dette tilfælde udføres en forespørgsel for at vælge personalenumre, projektnumre og projektstartdatoer for alle medarbejdere med stillingen "Manager", som arbejder på projekt p2 og derefter indlæse det resulterende resultatsæt i en ny tabel oprettet i begyndelsen af forespørgslen:

BRUG SampleDb; CREATE TABLE ManagerTeam (EmpId INT NOT NULL, ProjectNumber CHAR (4) NOT NULL, EnterDate DATE); INSERT INTO ManagerTeam (EmpId, ProjectNumber, EnterDate) SELECT EmpId, ProjectNumber, EnterDate FROM Works_on WHERE Job = "Manager";

Før du indsatte rækker ved hjælp af INSERT-sætningen, var MoscowDepartment og ManagerTeam-tabellerne (i eksemplerne ovenfor) tomme. Hvis tabellen allerede eksisterede og indeholdt rækker med data, ville der blive tilføjet nye rækker til den.

I tidligere afsnit har vi set på arbejdet med at hente data fra præ-oprettede tabeller. Nu er det tid til at finde ud af, hvordan vi kan oprette/slette tabeller, tilføje nye poster og slette gamle. Til disse formål i SQL Der er operatører som: SKAB- laver en tabel, ÆNDRE- ændrer tabelstrukturen, DRÅBE- sletter en tabel eller et felt, INDSÆT- tilføjer data til tabellen. Lad os begynde at stifte bekendtskab med denne gruppe af operatører fra operatøren INDSÆT.

1. Tilføjelse af hele linjer

Som navnet antyder, operatøren INDSÆT bruges til at indsætte (tilføje) rækker til en databasetabel. Tilføjelse kan gøres på flere måder:

  • - tilføje en hel linje
  • - tilføje en del af en linje
  • - tilføje forespørgselsresultater.

Så for at tilføje en ny række til en tabel, skal vi angive tabelnavnet, liste kolonnenavnene og angive værdien for hver kolonne ved hjælp af konstruktionen INDSÆT I tabelnavn (felt1, felt2 ...) VÆRDIER (værdi1, værdi2...). Lad os se på et eksempel.

INDSÆT I Sælgere (ID, adresse, by, sælgernavn, land) VÆRDI("6", "1st Street", "Los Angeles", "Harry Monroe", "USA")

Du kan også ændre rækkefølgen af ​​kolonnenavne, men samtidig skal du ændre rækkefølgen af ​​værdierne i parameteren VÆRDIER.

2. Tilføjelse af en del af linjerne

I det foregående eksempel, når du bruger operatoren INDSÆT vi har eksplicit markeret tabelkolonnenavnene. Ved at bruge denne syntaks kan vi springe nogle kolonner over. Det betyder, at du indtaster værdier for nogle kolonner, men ikke angiver dem for andre. For eksempel:

INSERT INTO Sellers (ID, City, Seller_name) VALUES("6", "Los Angeles", "Harry Monroe")

I dette eksempel har vi ikke angivet en værdi for to kolonner Adresse Og Land. Du kan ekskludere nogle kolonner fra erklæringen INDSÆT I, hvis dette tillader tabeldefinitionen. I dette tilfælde skal en af ​​betingelserne være opfyldt: denne kolonne er defineret som gyldig NUL(fravær af nogen værdi) eller den angivne standardværdi i tabeldefinitionen. Det betyder, at hvis der ikke er angivet nogen værdi, vil standardværdien blive brugt. Hvis du mangler en kolonne fra en tabel, der ikke tillader værdier at blive vist i dens rækker NUL og ikke har en defineret standardværdi, vil DBMS generere en fejlmeddelelse, og rækken vil ikke blive tilføjet.

3. Tilføjelse af valgte data

I det foregående eksempel indsatte vi data i tabeller ved at indtaste dem manuelt i forespørgslen. Dog operatøren INDSÆT I giver os mulighed for at automatisere denne proces, hvis vi ønsker at indsætte data fra en anden tabel. Til dette formål i SQL er der en sådan konstruktion som INDSÆT I ... VÆLG .... Dette design giver dig mulighed for samtidigt at vælge data fra en tabel og indsætte den i en anden. Lad os antage, at vi har et andet bord Sellers_EU med en liste over sælgere af vores varer i Europa, og vi skal tilføje dem til den generelle tabel Sælgere. Strukturen af ​​disse tabeller er den samme (samme antal kolonner og samme navne), men dataene er forskellige. For at gøre dette kan vi skrive følgende forespørgsel:

INDSÆT I Sælgere (ID, adresse, by, sælgernavn, land) VÆLGID, adresse, by, sælgernavn, land FRA sælgere_EU

Du skal være opmærksom, så værdierne af interne nøgler ikke gentages (felt ID), ellers vil der opstå en fejl. Operatør VÆLG kan også indeholde forslag HVOR at filtrere data. Det skal også bemærkes, at DBMS ikke er opmærksom på navnene på kolonnerne indeholdt i erklæringen VÆLG, kun den rækkefølge, de er arrangeret i, er vigtig for hende. Derfor er dataene i den først angivne kolonne, der blev valgt pga VÆLG, vil under alle omstændigheder blive udfyldt i tabellens første kolonne Sælgere, angivet efter operatøren INDSÆT I, uanset feltnavnet.

4. Kopiering af data fra en tabel til en anden

Når man arbejder med databaser, er der ofte behov for at lave kopier af alle tabeller med henblik på backup eller modifikation. For at lave en fuld kopi af en tabel giver SQL en separat sætning VÆLG INTO. For eksempel skal vi lave en kopi af tabellen Sælgere, skal du skrive anmodningen som følger:

VÆLG * INTO Sellers_new FRA Sellers

I modsætning til det tidligere design INDSÆT I ... VÆLG ... Når data føjes til en eksisterende tabel, kopierer designet dataene til den nye tabel. Du kan også sige, at den første konstruktion importerer data, og den anden eksporterer. Når du bruger designet VÆLG ... INTO ... FRA ... Følgende bør overvejes:

  • - du kan bruge alle sætninger i operatoren VÆLG, såsom GRUPPE EFTER Og AT HAVE
  • - du kan bruge en join til at tilføje data fra flere tabeller
  • - data kan kun tilføjes til én tabel, uanset hvor mange tabeller det er taget fra.