Računalniki Windows Internet

Transact -SQL - vstavljanje podatkov. SQL poizvedba INSERT INTO - napolnite bazo podatkov s sintakso vstavljanja SQL

Zadnja posodobitev: 13.7.2017

Za dodajanje podatkov se uporabi ukaz INSERT, ki ima naslednjo formalno skladnjo:

INSERT ime_tabele [(seznam_ stolpcev)] VALUES (vrednost1, vrednost2, ... vrednostN)

Na začetku je izraz INSERT INTO, nato v oklepajih lahko podate seznam stolpcev, ločenih z vejicami, v katere morate dodati podatke, na koncu pa za besedo VALUES dodane vrednosti za stolpce navedene v oklepajih.

Recimo, da je bila predhodno ustvarjena naslednja baza podatkov:

CREATE DATABASE productsdb; GO USE productsdb; USTVARI TABELO Izdelki (ID INT IDENTITY PRIMARY KLY, ProductName NVARCHAR (30) NOT NULL, Proizvajalec NVARCHAR (20) NOT NULL, ProductCount INT DEFAULT 0, Price MONEY NOT NULL)

Dodamo ji eno vrstico z ukazom INSERT:

VSTAVITE VREDNOSTI izdelkov ("iPhone 7", "Apple", 5, 52000)

Po uspešnem izvajanju v SQL Server Management Studio bi se moralo v polju za sporočilo prikazati sporočilo "1 vrstica prizadeta":

Upoštevati je treba, da se vrednosti za stolpce v oklepajih za ključno besedo VALUES posredujejo v vrstnem redu, v katerem so deklarirane. V zgornjem stavku CREATE TABLE lahko na primer vidite, da je prvi stolpec Id. Ker pa je zanj nastavljen atribut IDENTITY, se vrednost tega stolpca samodejno ustvari in jo lahko izpustite. Drugi stolpec predstavlja Ime izdelka, zato bo prva vrednost, niz "iPhone 7", posredovana temu stolpcu. Druga vrednost je, da bo niz "Apple" poslan v tretji stolpec Proizvajalec itd. To pomeni, da se vrednosti posredujejo v stolpce na naslednji način:

    Ime izdelka: "iPhone 7"

    Proizvajalec: "Apple"

Pri vnosu vrednosti lahko določite tudi takojšnje stolpce, v katere bodo vrednosti dodane:

INSERT INTO Products (Ime izdelka, cena, proizvajalec) VREDNOSTI ("iPhone 6S", 41000, "Apple")

Tu je vrednost podana samo za tri stolpce. Zdaj se vrednosti posredujejo po vrstnem redu stolpcev:

    Ime izdelka: "iPhone 6S"

    Proizvajalec: "Apple"

Za nedoločene stolpce (v tem primeru ProductCount) bo dodana privzeta vrednost, če je nastavljen atribut DEFAULT ali NULL. Neodločeni stolpci pa morajo biti nični ali DEFAULT.

Dodamo lahko tudi več vrstic hkrati:

VSTAVITE VREDNOSTI izdelkov ("iPhone 6", "Apple", 3, 36000), ("Galaxy S8", "Samsung", 2, 46000), ("Galaxy S8 Plus", "Samsung", 1, 56000)

V tem primeru bodo tabeli dodane tri vrstice.

Pri dodajanju lahko tudi določimo, da se privzeta vrednost stolpca uporablja s ključno besedo DEFAULT ali NULL:

INSERT INTO Products (Ime izdelka, proizvajalec, število izdelkov, cena) VREDNOSTI ("Mi6", "Xiaomi", DEFAULT, 28000)

V tem primeru bo za stolpec ProductCount uporabljena privzeta vrednost (če je nastavljena, če ni, potem NULL).

Če imajo vsi stolpci privzeti atribut DEFAULT ali pa so nični, lahko vnesete privzete vrednosti za vse stolpce:

VSTAVITE V PROIZVODNE VREDNOSTI izdelkov

Če pa vzamete tabelo Products, potem tak ukaz ne bo uspel, saj več polj nima atributa DEFAULT in hkrati ne dovoljuje vrednosti NULL.

Ta stavek doda enega ali več zapisov v tabelo (izvede poizvedbo za dodajanje).

Sintaksa

Zahteva za dodajanje več zapisov:

VSTAVI V destination_object [(polje1[, polje 2[, ...]])]
IZBERI [ vir.]polje1[, polje 2[, ...]
IZ namizni_izraz

Zahteva za dodajanje enega zapisa:

VSTAVI V destination_object [(polje1[, polje 2[, ...]])]
VREDNOTE ( polje1[, polje 2[, ...])

Stavek INSERT INTO je sestavljen iz naslednjih elementov:

Del

Opis

destination_object

Ime tabele ali poizvedbe, v katero so dodani zapisi.

polje1, polje 2

Po prepiru destination_object- imena polj, v katere so dodani podatki; po prepiru vir- imena polj, iz katerih so podatki izvlečeni.

zunanja_podatkovna baza

Pot do zunanje baze podatkov. Za opis poti si oglejte članek klavzule IN.

vir

Ime tabele ali poizvedbe, iz katere se kopirajo zapisi.

namizni_izraz

Eno ali več imen tabel, iz katerih lahko pridobite zapise. Ta argument je lahko ime posamezne tabele, izraz rezultata, zgrajen z uporabo INNER JOIN, LEFT JOIN ali RIGHT JOIN ali shranjene poizvedbe.

vrednost1, vrednost 2

Vrednosti, ki jih je treba v nov zapis dodati določenim poljem. Vsaka vrednost se vstavi v polje, ki ustreza njenemu položaju na seznamu: vrednost1 dodano polje1 nov vnos, vrednost 2- v polje 2 itd. Vrednosti ločite z vejico in besedilna polja zaprite v narekovaje ("").

Opombe

Z stavkom INSERT INTO lahko v tabelo dodate en sam zapis z zgornjo sintakso. V tem primeru so za vsako polje v zapisu navedena imena in vrednosti. Določiti morate vsa polja zapisa, ki jim dodelite vrednosti, in ustrezne vrednosti. Če vrednosti polja ne določite, mu bo dodeljena privzeta vrednost ali NULL. Zapisi so priloženi na konec tabele.

Uporabite lahko tudi INSERT INTO, da dodate niz zapisov iz druge tabele ali poizvedbe z uporabo klavzule SELECT ... FROM, kot je prikazano zgoraj (glejte skladnjo za dodajanje več zapisov). V tem primeru člen SELECT podaja polja, ki jih je treba dodati navedenemu destination_object.

Vir ali destination_object lahko tabela ali poizvedba. Če je podana poizvedba, Microsoft Access Database Engine doda zapise v vse tabele, ki jih vrne.

Uporaba stavka INSERT INTO ni obvezna. Če je podano, mora biti pred stavkom SELECT.

Če ciljna tabela vsebuje primarni ključ, se prepričajte, da so vrednosti, dodane enemu ali več poljem primarnega ključa, edinstvene in drugačne od NIČ; v nasprotnem primeru vnosi ne bodo dodani.

Če zapise dodajate v tabelo s poljem Counter in jih želite preštevilčiti, v poizvedbo ne vključite polja Counter. V poizvedbo vključite polje Števec, če želite, da izvorne vrednosti ne ostanejo v polju.

Zapise lahko dodate v tabelo v drugi bazi podatkov z uporabo stavka IN.

Če želite ustvariti tabelo, uporabite stavek SELECT ... INTO, da dobite poizvedbo za ustvarjanje tabele.

Preden izvedete poizvedbo za dodajanje, uporabite izbrano poizvedbo z istimi merili za izbiro, da ugotovite, kateri zapisi bodo dodani na podlagi dobljenih rezultatov.

Dodajanje poizvedbe kopira zapise iz ene ali več tabel v drugo tabelo. Hkrati tabele z dodatnimi zapisi ostanejo nespremenjene.

Namesto dodajanja zapisov iz druge tabele lahko vrednost vsakega polja podate v ločenem novem zapisu s členom VALUES. Če je seznam polj izpuščen, mora člen VALUES vključiti ustrezne vrednosti za vsako polje v tabeli; v nasprotnem primeru operacija INSERT ne bo uspela. Za vsak dodatni zapis, ki ga želite ustvariti, uporabite stavek INSERT INTO skupaj z določbo VALUES.

Stavek SQL INSERT INTO in INSERT SELECT se uporablja za vstavljanje novih vrstic v tabelo. Obstajata dva načina uporabe navodil:

  1. Samo vrednosti: Prva metoda je podajanje samo podatkovnih vrednosti, ki jih je treba vstaviti brez imen stolpcev.

Sintaksa:

INSERT INTO table_name VALUES (vrednost1, vrednost2, vrednost3, ...); ime_tabele: ime tabele. value1, value2, ..: vrednosti prvega stolpca, drugega stolpca, ... za nov zapis

  1. Imena in vrednosti stolpcev: Druga metoda podaja imena stolpcev in vrednosti vrstic za vstavljanje:

Sintaksa:

INSERT INTO ime_tabele (stolpec1, stolpec2, stolpec3, ..) VREDNOSTI (vrednost1, vrednost2, vrednost3, ...); ime_tabele: ime tabele. stolpec1: ime prvega stolpca, drugega stolpca ... vrednost1, vrednost2, ..: vrednosti prvega stolpca, drugega stolpca, ... za nov zapis

Zahteve:

1. metoda ( vstavljanje samo vrednosti):

VSTAVI V Vrednosti študentov ("5", "HARSH", "WEST BENGAL", "8759770477", "19");

Rezultat:

Po uporabi INSERT INTO SELECT bo študentska tabela zdaj videti tako:

ROLL_NO NAME NASLOV TELEFON Starost
1 Oven Delhi 9455123451 18
2 RAMESH GURGAON 9562431543 18
3 SUIT ROHTAK 9156253131 20
4 SURESH Delhi 9156768971 18
3 SUIT ROHTAK 9156253131 20
2 RAMESH GURGAON 9562431543 18
5 HARSH WEST BENGAL 8759770477 19

Metoda 2 ( vstavljanje vrednosti samo v določene stolpce):

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

Rezultat:

Študentska miza bo zdaj videti tako:

ROLL_NO NAME NASLOV TELEFON Starost
1 Oven Delhi 9455123451 18
2 RAMESH GURGAON 9562431543 18
3 SUIT ROHTAK 9156253131 20
4 SURESH Delhi 9156768971 18
3 SUIT ROHTAK 9156253131 20
2 RAMESH GURGAON 9562431543 18
5 PRATIK nič nič 19

Upoštevajte, da so stolpci brez vrednosti nastavljeni na nič.

Uporaba SELECT v stavku INSERT INTO

Za kopiranje vrstic iz ene tabele in njihovo vstavljanje v drugo lahko uporabite stavek MySQL INSERT SELECT.

Uporaba tega operaterja je enaka uporabi vstavitve INTO. Razlika je v tem, da se stavek SELECT uporablja za pridobivanje podatkov iz druge tabele. Spodaj so različni načini uporabe INSERT INTO SELECT:

  • Vstavite vse stolpce tabele: Lahko kopirate vse podatke tabele in jih prilepite v drugo tabelo.

Sintaksa:

INSERT INTO first_table SELECT * FROM second_table; first_table: Ime prve tabele. second_table: ime druge tabele.

Za kopiranje podatkov iz ene tabele smo uporabili stavek SELECT, za vstavljanje v drugo pa stavek INSERT INTO.

  • Vstavite posamezne stolpce tabele... Lahko kopirate samo tiste stolpce tabele, ki jih želite prilepiti v drugo tabelo.

Sintaksa:

INSERT INTO first_table (column_names1) SELECT column_names2 FROM second_table; first_table: Ime prve tabele. second_table: ime druge tabele. Ime stolpca1: imena stolpcev, ločena z vejicami (,) za tabelo 1. imena stolpcev2: imena stolpcev, ločena z vejico (,) za tabelo 2.

Za kopiranje podatkov samo iz izbranih stolpcev druge tabele smo uporabili stavek SELECT, za vstavljanje v prvo tabelo pa stavek MySQL INSERT INTO SELECT.

  • Kopiranje določenih vrstic iz tabele... Iz tabele lahko kopirate določene vrstice za poznejšo vstavitev v drugo tabelo s stavkom WHERE z stavkom SELECT. V tem primeru morate uporabiti ustrezen pogoj v KJE.

Sintaksa:

Tabela 2: LateralStudent

ROLL_NO NAME NASLOV TELEFON Starost
7 SOUVIK DUMDUM 9876543210 18
8 NIRAJ NOIDA 9786543210 19
9 NEKAJ ROHTAK 9687543210 20

Zahteve:

1. metoda ( vstavite vse vrstice in stolpce):

INSERT INTO Student SELECT * FROM LateralStudent;

Rezultat:

Ta poizvedba bo v tabelo študent vstavila vse podatke iz tabele LateralStudent. Po uporabi SQL INSERT INTO SELECT bo študentska tabela videti tako:

ROLL_NO NAME NASLOV TELEFON Starost
1 Oven Delhi 9455123451 18
2 RAMESH GURGAON 9562431543 18
3 SUIT ROHTAK 9156253131 20
4 SURESH Delhi 9156768971 18
3 SUIT ROHTAK 9156253131 20
2 RAMESH GURGAON 9562431543 18
7 SOUVIK DUMDUM 9876543210 18
8 NIRAJ NOIDA 9786543210 19
9 NEKAJ ROHTAK 9687543210 20

Metoda 2 ( vstavljanje posameznih stolpcev):

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

Rezultat:

Ta poizvedba bo v tabelo študent vstavila podatke iz stolpcev ROLL_NO, NAME in Age tabele LateralStudent. Preostali stolpci v tabeli za študente bodo nastavljeni na nič. Po uporabi SQL INSERT SELECT bo tabela videti tako:

ROLL_NO NAME NASLOV TELEFON Starost
1 Oven Delhi 9455123451 18
2 RAMESH GURGAON 9562431543 18
3 SUIT ROHTAK 9156253131 20
4 SURESH Delhi 9156768971 18
3 SUIT ROHTAK 9156253131 20
2 RAMESH GURGAON 9562431543 18
7 SOUVIK Nič nič 18
8 NIRAJ Nič nič 19
9 NEKAJ Nič nič 20
  • Izbira določenih vrstic za vstavljanje:

Rezultat:

Ta poizvedba bo izbrala samo prvo vrstico iz tabele LateralStudent, ki jo bo vstavila v tabelo študentov. Po uporabi INSERT SELECT bo tabela videti tako.

Stavek INSERT v tabelo vstavi nove zapise. V tem primeru so lahko vrednosti stolpcev dobesedne konstante ali pa so rezultat podpoizvedbe. V prvem primeru se za vstavljanje vsake vrstice uporabi ločen stavek INSERT; v drugem primeru bo vstavljenih toliko vrstic, kot jih vrne podpoizvedba.

Sintaksa operaterja je naslednja:

    VSTAVI V [(, ...)]

    (VREDNOTE (, ...))

  1. | (PRIMENJENE VREDNOSTI)

Kot lahko vidite iz podane skladnje, je seznam stolpcev neobvezen (kot je označeno z oglatimi oklepaji v opisu skladnje). Če ni, mora biti seznam vstavljenih vrednosti popoln, to pomeni, da podajo vrednosti za vse stolpce tabele. Vrstni red vrednosti pa se mora ujemati z vrstnim redom, ki ga določa stavek CREATE TABLE za tabelo, v katero so vstavljene vrstice. Poleg tega morajo biti te vrednosti istega tipa podatkov kot stolpci, v katere so vnesene. Kot primer razmislite o vstavljanju vrstice v tabelo izdelkov, ki jo ustvari naslednji stavek CREATE TABLE:

    Ustvari izdelek

    maker char (1) NOT NULL,

    model varchar (4) NOT NULL,

    tip varchar (7) NOT NULL

Recimo, da želite tej mizi dodati model PC 1157 proizvajalca B. To lahko storite z naslednjim operaterjem:

    Vstavite izdelek

    VREDNOSTI ("B", 1157, "PC");

Če določite seznam stolpcev, lahko spremenite "naravni" vrstni red naslednjih stolpcev:

    INSERT INTO Product (vrsta, model, izdelovalec)

    VREDNOSTI ("PC", 1157, "B");

Zdi se, da je to popolnoma nepotrebna funkcija, zaradi česar je oblikovanje le okorno. Vendar pa zmaga, če imajo stolpci privzete vrednosti. Razmislite o naslednji strukturi tabele:

    Ustvari tabelo product_D

    izdelovalec char (1) NULL,

    model varchar (4) NULL,

    tip varchar (7) NIČ NI DOLOČEN "PC"

Upoštevajte, da imajo tukaj vrednosti vseh stolpcev privzete vrednosti (prva dva sta NULL, zadnji stolpec pa tip - PC). Zdaj bi lahko zapisali:

    INSERT INTO Product_D (model, izdelovalec)

    VREDNOSTI (1157, "B");

V tem primeru se manjkajoča vrednost pri vstavljanju vrstice nadomesti s privzeto vrednostjo PC. Upoštevajte, da če za stolpec v stavku CREATE TABLE ni podana privzeta vrednost in ni podana omejitev NOT NULL, ki prepoveduje uporabo NULL v danem stolpcu tabele, potem je predpostavljena privzeta vrednost NULL.

Postavlja se vprašanje: ali ni mogoče določiti seznama stolpcev in kljub temu uporabiti privzete vrednosti? Odgovor je pritrdilen. Če želite to narediti, namesto da bi eksplicitno podali vrednost, uporabite rezervirano besedo DEFAULT:

    VSTAVITE V izdelek_D

    VREDNOSTI ("B", 1158, DEFAULT);

Ker imajo vsi stolpci privzete vrednosti, bi lahko napisali, da vstavimo vrstico s privzetimi vrednostmi:

    VSTAVITE V izdelek_D

    VREDNOSTI (DEFAULT, DEFAULT, DEFAULT);

Vendar pa v tem primeru obstaja posebna konstrukcija DEFAULT VALUES (glej sintakso operaterja), s katero lahko zgornji operater prepišemo kot

    VSTAVI V IZDELKOVNE VREDNOSTI Product_D;

Upoštevajte, da se pri vstavljanju vrstice v tabelo preverijo vse omejitve, ki veljajo za to tabelo. To so lahko omejitve primarnega ključa ali edinstveni indeksi, omejitve preverjanja, kot je CHECK, in omejitve referenčne celovitosti. Če je katera koli omejitev kršena, bo vstavljanje vrstice zavrnjeno. Zdaj pa poglejmo primer uporabe podpoizvedbe. Recimo, da moramo v tabelo Product_D vstaviti vse vrstice iz tabele Product, povezane z modeli osebnih računalnikov (type = ‘PC’). Ker so vrednosti, ki jih potrebujemo, že v neki tabeli, je ročno vstavljanje vrstic, prvič, neučinkovito, drugič pa lahko povzroči napake pri vnosu. Uporaba podvprašanja reši te težave:

Uporaba simbola "*" v podpoizvedbi je v tem primeru upravičena, saj je vrstni red stolpcev enak za obe tabeli. Če ne bi bilo tako, bi bilo treba uporabiti seznam stolpcev, bodisi v stavku INSERT, v podpoizvedbi, bodisi v obeh, ki bi se ujemali z vrstnim redom stolpcev:

Tukaj, tako kot prej, ne morete podati vseh stolpcev, če želite uporabiti obstoječe privzete vrednosti, na primer:

V tem primeru bo privzeta vrednost računalnika zamenjana v stolpcu vrste tabele Product_D za vse vstavljene vrstice.

Upoštevajte, da bodo pri uporabi podpoizvedbe, ki vsebuje predikat, vstavljene samo vrstice, za katere je vrednost predikata TRUE (ne UNKNOWN!). Z drugimi besedami, če je bil stolpec vrste v tabeli izdelka ničeln in je bila ta vrednost prisotna v številnih vrsticah, te vrstice ne bi bile vstavljene v tabelo Product_D.

Za premagovanje omejitve vstavljanja ene vrstice v stavek INSERT pri uporabi konstruktorja vrstic v stavku VALUES je mogoče uporabiti umetno tehniko uporabe podpoizvedbe, ki tvori vrstico z stavkom UNION ALL. Če moramo torej z enim stavkom INSERT vstaviti več vrstic, lahko zapišemo:

    VSTAVITE V izdelek_D

    IZBERITE proizvajalca AS "B", model 1158 AS, tip "PC" AS

    ZVEZA VSE

    SELECT "C", 2190, "Laptop"

    ZVEZA VSE

    SELECT "D", 3219, "Printer";

Uporaba UNION ALL je boljša od UNION, tudi če ni zagotovljenih podvojenih nizov, saj potem ne bo izvedeno podvojeno preverjanje.

Treba je opozoriti, da je vstavljanje več naborov s konstruktorjem nizov že izvedeno v Sistem za upravljanje relacijskih baz podatkov (DBMS), ki ga je razvila Microsoft Corporation.Structured Query Language) je univerzalni računalniški jezik, ki se uporablja za ustvarjanje, spreminjanje in upravljanje podatkov v relacijskih bazah podatkov. SQL Server 2008. Ob tej priložnosti lahko zadnjo poizvedbo prepišemo tako:

    VSTAVITE V VREDNOSTI Product_D

    ("B", 1158, "PC")

    ("C", 2190, "Prenosni računalnik"),

Kaj je INSERT INTO?

Glavni cilj sistemov zbirk podatkov je shranjevanje podatkov v tabelah. Podatke običajno dobavljajo aplikacijski programi, ki delujejo na vrhu baze podatkov. V ta namen ima SQL ukaz INSERT, ki se uporablja za shranjevanje podatkov v tabelo. The Ukaz INSERT ustvari novo vrstico v tabeli za shranjevanje podatkov.

Osnovna skladnja

Poglejmo osnovno skladnjo ukaza INSERT SQL, prikazanega spodaj.

VSTAVI V `ime_tabele` (stolpec_1, stolpec_2, ...) VREDNOSTI (vrednost_1, vrednost_2, ...);

  • VSTAVI V `ime_tabele` je ukaz, ki pove strežniku MySQL, naj doda novo vrstico v tabelo z imenom "ime_tabele".
  • (stolpec_1, stolpec_2, ...) podaja stolpce, ki jih je treba posodobiti v novi vrstici
  • VREDNOSTI (vrednost_1, vrednost_2, ...) podaja vrednosti, ki jih je treba dodati v novo vrstico

Pri podajanju podatkovnih vrednosti, ki jih je treba vstaviti v novo tabelo, je treba pri obravnavi različnih tipov podatkov upoštevati naslednje.

  • Niz podatkovnih vrst- vse vrednosti niza morajo biti v enojnih narekovajih.
  • Številčne vrste podatkov- vse številčne vrednosti je treba navesti neposredno, ne da bi jih omejili v enojne ali dvojne narekovaje.
  • Vrste podatkov o datumu-vrednosti datuma vključite v enojne narekovaje v obliki "LLLL-MM-DD".

Primer:

Recimo, da imamo naslednji seznam novih članov knjižnice, ki jih je treba dodati v bazo podatkov.

Polna imena Datum rojstva spolu Fizični naslov poštni naslov Kontaktna številka Email naslov
Leonard Hofstadter Moški Woodcrest 0845738767
Sheldon Cooper Moški Woodcrest 0976736763
Rajesh Koothrappali Moški Fairview 0938867763
Leslie winkle 14/02/1984 Moški 0987636553
Howard wolowitz 24/08/1981 Moški Južni park P.O. Škatla 4563 0987786553

Dovoli "VSTAVLJANJE podatkov enega za drugim. Začeli bomo z Leonardom Hofstadterjem. Kontaktno številko bomo obravnavali kot številski tip podatkov in ne bomo omejevali številk v enojnih narekovajih.

VSTAVI V `člane` (` polna_imena`, `spol`,` fizični_naslov`, `kontaktna_številka`) VREDNOSTI (" Leonard Hofstadter "," Moški "," Woodcrest ", 0845738767);

Izvajanje zgornjega skripta izbriše 0 iz Leonardove kontaktne številke. To je zato, ker bo vrednost obravnavana kot številska vrednost, ničla (0) na začetku pa izpuščena, ker ni pomembna.

Da bi se izognili takšnim težavam, je treba vrednost zabeležiti v enojne narekovaje, kot je prikazano spodaj -

VSTAVI "člane" ("polna_imena`,` spol`, `fizični_naslov`,` kontaktna_številka`) VREDNOSTI ("Sheldon Cooper", "Moški", "Woodcrest", "0976736763");

V zgornjem primeru nič (0) ne pade

Spreminjanje vrstnega reda stolpcev ne vpliva na poizvedbo INSERT, dokler so pravilne vrednosti preslikane v pravilne stolpce.

Spodnja poizvedba prikazuje zgornjo točko.

VSTAVI V `člane` (` kontaktna_številka`, `spol`,` polna_imena`, `fizični_naslov`) VREDNOSTI (" 0938867763 "," Moški "," Rajesh Koothrappali "," Woodcrest ");

Zgornje poizvedbe so preskočile stolpec z datumom rojstva, privzeto bo MySQL v stolpce, ki so preskočeni v poizvedbi INSERT, vstavil vrednosti NULL.

Zdaj vstavimo zapis za Leslie, ki vsebuje datum rojstva. Vrednost datuma je treba vključiti v enojne narekovaje v obliki "LLLL-MM-DD".

VSTAVI V `člane` (` polna_imena`, `datum_rojstva`,` spol`, `fizični_naslov`,` kontaktna_številka`) VREDNOSTI ("Leslie Winkle", "1984-02-14", "Moški", "Woodcrest", " 0987636553 ");

Vse zgornje poizvedbe so podale stolpce in jih preslikale v vrednosti v stavku insert. Če podajamo vrednosti za VSE stolpce v tabeli, lahko stolpce izpustimo iz poizvedbe za vstavljanje.

VSTAVI V `VREDNOSTI članov` (9," Howard Wolowitz "," Moški "," 1981-08-24 "," SouthPark "," P.O. Box 4563 "," 0987786553 "," lwolowitzemail.me ");

Sedaj uporabimo stavek SELECT za ogled vseh vrstic v tabeli članov. SELECT * FROM` members`;

number_numberpolna_imenaspoludatum rojstvafizični naslovpoštni naslovcontct_numberE-naslov
1 Janet jonesŽenska21-07-1980 Parcela prve ulice št. 4Zasebna torba0759 253 542 Ta e -poštni naslov je zaščiten proti smetenju. Če ga želite videti, omogočite Javascript.
2 Janet smith jonesŽenska23-06-1980 Melrose 123NIČNIČTa e -poštni naslov je zaščiten proti smetenju. Če ga želite videti, omogočite Javascript.
3 Robert PhilMoški12-07-1989 3. ulica 34NIČ12345 Ta e -poštni naslov je zaščiten proti smetenju. Če ga želite videti, omogočite Javascript.
4 Gloria williamsŽenska14-02-1984 2. ulica 23NIČNIČNIČ
5 Leonard HofstadterMoškiNIČWoodcrestNIČ845738767 NIČ
6 Sheldon CooperMoškiNIČWoodcrestNIČ976736763 NIČ
7 Rajesh KoothrappaliMoškiNIČWoodcrestNIČ938867763 NIČ
8 Leslie winkleMoški14-02-1984 WoodcrestNIČ987636553 NIČ
9 Howard wolowitzMoški24-08-1981 Južni parkP.O. Škatla 4563987786553 Ta e -poštni naslov je zaščiten proti smetenju. Če ga želite videti, omogočite Javascript.

Upoštevajte, da je kontaktna številka za Leonard Hofstadter spustila ničlo (0) s kontaktne številke. Druge kontaktne številke niso spustile ničle (0) na začetku.

Vstavljanje v tabelo iz druge tabele

Ukaz INSERT lahko uporabite tudi za vstavljanje podatkov v tabelo iz druge tabele. Osnovna skladnja je prikazana spodaj.

INSERT INTO table_1 SELECT * FROM table_2;

Poglejmo zdaj praktični primer, za predstavitvene namene bomo ustvarili lažno tabelo za kategorije filmov. Novo tabelo kategorij bomo poklicali category_archive. Spodnji scenarij ustvari tabelo.

USTVARI TABELO `category_archive` (` category_id` int (11) AUTO_INCREMENT, `category_name` varchar (150) DEFAULT NULL,` notes` varchar (500) DEFAULT NULL, PRIMARY KEY (`category_id`))

Izvedite zgornji skript, da ustvarite tabelo.

Zdaj vstavimo vse vrstice iz tabele kategorij v arhivsko tabelo kategorij. Spodnji scenarij nam pomaga pri tem.

VSTAVI V `category_archive` SELECT * FROM` kategorije`;

Izvajanje zgornjega skripta vstavi vse vrstice iz tabele kategorij v tabelo arhiva kategorij. Upoštevajte, da bodo morale biti strukture tabel enake, da bo skript deloval. Robustnejši skript je tisti, ki preslika imena stolpcev v vstavitveni tabeli s tistimi v tabeli, ki vsebuje podatke.

Spodnja poizvedba prikazuje njeno uporabo.

VSTAVI `arhiv_kategorij` (kategorija_id, ime_kategorije, opombe) SELECT kategorija_id, kategorija_ime, opombe FROM` kategorije`;

Izvajanje poizvedbe SELECT

IZBERI * IZ `kategorij_arhiv`

daje naslednje rezultate, prikazane spodaj.

kategorija_idime_kategorijepripombe
1 KomedijaFilmi s humorjem
2 RomantičnoLjubezenske zgodbe
3 EpskoZgodbe o starodavnih filmih
4 GrozaNIČ
5 Znanstvena fantastikaNIČ
6 TrilerNIČ
7 DejanjeNIČ
8 Romantična komedijaNIČ
9 RisankeNIČ
10 RisankeNIČ

Povzetek

  • Ukaz INSERT se uporablja za dodajanje novih podatkov v tabelo
  • Vrednosti datuma in niza morajo biti v enojnih narekovajih.
  • Numeričnih vrednosti ni treba vključevati v narekovaje.
  • Ukaz INSERT lahko uporabite tudi za vstavljanje podatkov iz ene tabele v drugo.