Indsæt i tabel

i den forrige artikel har vi oprettet to tabeller, og nu er vi klar til at bruge kommandoen Indsæt i tabel og udfylde disse tabeller med data. For at gøre det, vil vi udarbejde udsagn i og derefter indsætte disse udsagn i og udføre dem. Vi kontrollerer også indholdet af begge tabeller før og efter disse kommandoer ved hjælp af SELECT-sætningen. Så lad os starte.

indsæt i TABELOPGØRELSE

der er ingen mening i at oprette databasestrukturer og ikke have nogen data i databasen. Sætningen indsæt i tabel er den, vi bruger til at løse dette problem. Det er en af de fire vigtige DML (Data Manipulation Language) udsagn vælg … fra, indsæt i tabel, Opdater … sæt og Slet fra… den komplette syntaks er ret kompleks, da indsatsen i også kan være en meget kompleks erklæring. Tag et kig på T-SKL indsæt i tabellen komplet syntaks her.

i denne artikel bruger vi forenklet, men også mest almindelig syntaks:

indsæt i Tabelnavn (column_list) værdier (column_values);

i en sådan INSERT INTO-sætning skal du definere tabelnavnet, hvor du indsætter data i, liste alle kolonner (måske bruger du dem alle, men måske kun et par af dem), og derefter liste alle værdier. Bemærk, at kolonneværdier skal matche definitionen af kolonnetyper (f.eks. kan du ikke indsætte en tekstværdi i den numeriske kolonne/attribut).

hvis du indsætter alle værdier i tabellen, behøver du ikke at liste alle kolonner efter tabelnavnet, og du kan bruge endnu mere forenklet syntaks:

indsæt i TABELNAVNVÆRDIER (column_values);

jeg foretrækker personligt at liste alle kolonnenavne, fordi denne tilgang ville fungere, selvom vi tilføjer nye kolonner til den eksisterende tabel.

  • Bemærk: indsæt i TABELOPGØRELSEN kunne skrives på en sådan måde, at vi indsætter flere rækker med 1 sætning eller endda kombineret med SELECT-sætningen.

den forenklede syntaks for et sådant tilfælde, hvor Indsæt og vælg udsagn kombineres, er angivet nedenfor:

indsæt i destination_table (column_list, …)
vælg column_list
fra source_table
hvor tilstand;

indsæt i TABELEKSEMPEL

før vi gør noget, lad os kontrollere, hvad der er gemt i vores tabeller. Dette er den model, vi har oprettet i den foregående artikel. Du kan se, at vi har en tabel, hvor vi gemmer data relateret til lande og en anden for data relateret til byer. De er også relateret til hinanden, men vi vil tale om det i den følgende artikel:

indsæt i tabel-datamodel

indsæt i TABELDATAMODEL

for at kontrollere indholdet af disse to tabeller bruger vi to enkle SELECT-udsagn:

1
2

vælg * fra land;
vælg * fra by;

selvom SELECT ikke er emnet for denne artikel, skal det nævnes, at dens’ grundlæggende syntaks er:

vælg 1 eller flere attributter fra tabellen;

stjernen (*) efter SELECT repræsenterer, at vi vil vise værdierne for alle attributter/kolonner fra den tabel i forespørgselsresultatet.

som forventet er der intet i disse to tabeller, og vi returnerer resultatet som vist på billedet nedenfor. Erklæringer returnerer navne på kolonnerne fra de tabeller, vi brugte i UDVÆLGELSESFORESPØRGSLEN, men der er intet under disse kolonnenavne. Du kan se på dette som et tomt ark med definerede kolonnenavne (overskrifter). Du ved, hvilken type data der skal være der, men der er intet:

det må vi ændre på.

først udfylder vi landetabellen ved hjælp af følgende indsæt i TABELOPGØRELSER:

1
2
3
4
5

indsæt i land (country_name, country_name_eng, country_code) værdier (‘Deutschland’, ‘Germany’, ‘DEU’);
indsæt i land (country_name, country_name_eng, country_code) værdier (‘Srbija’, ‘Serbien’, ‘SRB’);
indsæt i land (country_name, country_name_eng, country_code) værdier (‘Hrvatska’, ‘Kroatien’, ‘HRV’);
indsæt i land (country_name, country_name_eng, country_code) værdier (‘United Stated of America’, ‘United Stated of America’, ‘USA’);
indsæt i land (country_name, country_name_eng, country_code) værdier (‘Polska’, ‘Polen’, ‘POL’);

Data for fem lande blev indsat med succes. Resultatet er vist på billedet nedenfor. Da vi havde 5 Indsæt i TABELOPGØRELSER, har vi 1″ (1 række berørt) “besked for hver af disse fem kommandoer i afsnittet” Meddelelser:

indsæt i tabel-land

bemærk, at alle værdier (efter værdier) blev bestilt på samme måde, som vi anførte kolonner (efter indsæt i land). Alle tre værdier er tekster. Forespørgslen fungerer, selvom vi ikke har bestilt dem på den rigtige måde, fordi de alle har den samme datatype (tekst), men dataene gemmes i de forkerte kolonner. I så fald ville vi have en semantisk fejl.

den næste ting, vi skal gøre, er at udfylde bybordet. Vi gør det ved hjælp af følgende udsagn:

1
2
3
4
5
6

indsæt i by (city_name, lat, long, country_id) værdier (‘Berlin’, 52.520008, 13.404954, 1);
indsæt i by (city_name, lat, long, country_id) værdier (‘Beograd’, 44.787197, 20.457273, 2);
indsæt i by (city_name, lat, long, country_id) værdier (”, 45.815399, 15.966568, 3);
indsæt i by (city_name, Lat, long, country_id) værdier (‘Ny York’, 40.73061, -73.935242, 4);
indsæt i by (city_name, lat, long, country_id) værdier (‘Los Angeles’, 34.052235, -118.243683, 4);
indsæt i by (city_name, lat, long, country_id) værdier (”, 52.237049, 21.017532, 5);

efter at have udført disse udsagn var dette resultatet. Som forventet blev 6 rækker tilføjet. Og endnu en gang har vi 1 besked til hver indsats i afsnittet Meddelelser:

by

i dette tilfælde ville vi have et problem, hvis vi ikke har angivet værdier på samme måde, vi listede kolonner, fordi deres datatyper ikke er de samme (de er – i rækkefølge: tekst, decimaltal, decimaltal, heltal). Denne type fejl kaldes syntaksfejl, og selve DBMS forhindrer forespørgslen i at køre overhovedet.

vælg – Kontroller, hvad der blev indsat

nu skal vi endnu en gang kontrollere, hvad der er gemt i vores tabeller. Vi bruger de samme to SELECT-udsagn, som vi tidligere har brugt:

1
2

vælg * fra land;
vælg * fra by;

resultatet er vist på billedet nedenfor. Bemærk, at vi efter udførelse af forespørgsler nu har sektioner med resultater og meddelelser under forespørgsler:

vælg udsagn

vi kan konkludere, at begge tabeller i vores database indeholder data, og nu er vi klar til at “lege” med noget meget køligere end dette.

indsæt i tabel ved hjælp af

i mange tilfælde skal du køre flere kvadratkilometer-udsagn baseret på det datasæt, der leveres til dig. Dette står ikke kun for sætningen indsæt i tabel, men også for opdatering og slet udsagn. Der er ingen mening i at skrive disse udsagn manuelt, men du skal hellere gå med en smartere tilgang – forberede formler (eller et script), der automatiserer denne del. I sådanne situationer foretrækker jeg at bruge formler og formler.

Bemærk: Personligt finder jeg i forbindelse med databaser meget nyttigt, når jeg har brug for at oprette flere udsagn, og når jeg præsenterer resultater og/eller opretter dashboards.

lad os se på disse formler:

lande udmærker

formlen, der bruges til at indsætte det første land (Tyskland), er:

1
=”indsæt i land (country_name, country_name_eng, country_code) værdier (‘”& B2 & “‘, ‘” & C2 & “‘, ‘” & D2 &”‘);”

byer udmærker sig

formlen, der bruges til at indsætte den første by (Berlin), er:

1
=”indsæt i by (city_name, lat, long, country_id) værdier (‘”& B2 & “‘, ” & C2 &”, ” & D2 &”, ” & E2 & “);”

du er velkommen til at bruge disse formler til at automatisere dine opgaver. Vi bruger en lignende tilgang senere, når vi kører flere opdateringer og sletter udsagn (og selv når vi opretter SELECT-sætninger).

konklusion

i denne artikel har vi dækket et af de fire vigtigste KVL –udsagn-indsæt i TABELOPGØRELSE. Vi har brugt det til at udfylde tabeller oprettet i den forrige artikel. Dette var en forudsætning for at flytte til smartere ting – som databaseteori, og endnu vigtigere, returnering af resultater fra vores database.

i den kommende artikel snakker vi om den primære nøgle – hvad det er og hvorfor er det vigtigt i databaserne.

Indholdsfortegnelse

Lær KVL: Opret DATABASE& Opret TABELOPERATIONER

Lær KVL: indsæt i tabel

Lær KVL: primær nøgle

Lær KVL: fremmed nøgle

lær KVL: vælg erklæring

Lær KVL: indre join vs venstre join

Lær KVL: KVL scripts

lær KVL: typer af relationer

Lær KVL: typer af relationer

Lær KVL: Deltag i flere tabeller

Lær KVL: samlede funktioner

Lær KVL: hvordan man skriver en kompleks UDVÆLGELSESFORESPØRGSEL

Lær KVL: databasen INFORMATION_SCHEMA

Lær KVL: KVL datatyper

lær KVL: sætteori

Lær KVL: brugerdefinerede funktioner

Lær KVL: brugerdefinerede lagrede procedurer

Lær KVL: KVL Visninger

Lær KVL: KVL udløser

lær KVL: øv KVL forespørgsler

Læs mere: Eksempel på forespørgsel

Opret en rapport manuelt ved hjælp af forespørgsler

Lær spørgsmål om dato og klokkeslæt

Lær spørgsmål om dato og klokkeslæt

Lær spørgsmål om dato og klokkeslæt tabeller

lær tekst: tekst server eksport til tekst

lær tekst: introduktion til tekst server loops

lær tekst: tekst server markører

lær tekst: tekst bedste praksis for sletning og opdatering af data

lær KVL: navngivningskonventioner

Lær KVL: Job

Lær job

Lær job: Jobinjektion

Lær job: Jobinjektion

Lær job: Jobinjektion

  • forfatter
  • Seneste indlæg
Emil Drkusic
Emil er en database professionel med 10+ års erfaring i alt relateret til databaser. I årenes løb arbejdede han i IT-og finansbranchen og arbejder nu som freelancer.
hans tidligere og nuværende engagement varierer fra databasedesign og kodning til undervisning, rådgivning og skrivning om databaser. Også ikke at glemme, BI, skabe algoritmer, skak, Filateli, 2 hunde, 2 katte, 1 kone, 1 baby…
du kan finde ham på LinkedIn
se alle indlæg af Emil Drkusic

Emil Drkusic
Seneste indlæg af Emil Drkusic (se alle)
  • Lær kvm: dynamisk kvm-3. Marts 2021
  • Lær kvm: kvm injektion-2. November 2020
  • Lær kvm: Ikke-e-mail: info (at) 29, 2020

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.

More: