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
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:
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:
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:
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:
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:
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 &”‘);”
|
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
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
- 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