Lisää valittuun oraakkelin syntaksiin. T-SQL:n perusteet. DML. Lisätään useita rivejä

Aiemmin käsitellyn SELECT-käskyn lisäksi Data Manipulation Language (DML) sisältää kolme muuta käskyä: INSERT, UPDATE ja DELETE. Kuten SELECT-käsky, nämä kolme käskyä toimivat joko taulukoissa tai näkymissä. Tässä artikkelissa käsitellään INSERT-lausetta, ja kahta muuta lausetta käsitellään seuraavassa artikkelissa.

INSERT lausunto lisää rivejä (tai rivien osia) taulukkoon. Tästä ohjeesta on kaksi eri muotoa:

LISÄÄ välilehden_nimi [(sarakkeen_luettelo)] OLETUSARVOT | ARVOT (( OLETUS | NULL | lauseke ) [ ,...n]) INSERT INTO välilehden_nimi | view_name [(sarakkeen_luettelo)] (select_statement | suorita_lauseke) Syntaksikäytännöt

Ohjeen ensimmäisessä muodossa voit lisätä yhden rivin (tai osan siitä) taulukkoon. Ja INSERT-käskyn toinen muoto mahdollistaa SELECT-käskyn tulosjoukon tai EXECUTE-käskyn suorittaman tallennetun proseduurin lisäämisen taulukkoon. Tallennetun proseduurin on palautettava tiedot lisättäväksi taulukkoon. INSERT-käskyn kanssa käytettynä SELECT-käsky voi valita arvoja eri tai samasta taulukosta, johon tiedot lisätään, kunhan vastaavien sarakkeiden tietotyypit ovat yhteensopivia.

Molemmissa lomakkeissa kunkin lisätyn arvon tietotyypin on oltava yhteensopiva vastaavan taulukon sarakkeen tietotyypin kanssa. Kaikki merkkijono ja väliaikaiset tiedot on suljettava lainausmerkkeihin. Numeerisia arvoja ei tarvitse laittaa lainausmerkkeihin.

Lisätään yksi rivi

Molemmissa INSERT-käskyn muodoissa sarakeluettelon määrittäminen eksplisiittisesti on valinnaista. Sarakkeiden luetteloimatta jättäminen on sama asia kuin taulukon kaikkien sarakkeiden määrittäminen.

DEFAULT VALUES -parametri lisää oletusarvot kaikille sarakkeille. Sarakkeet, joissa on TIMESTAMP-tietotyyppi tai IDENTITY-ominaisuus, lisätään oletuksena arvoilla, jotka järjestelmä luo automaattisesti. Muiden tietotyyppien sarakkeille lisätään vastaava ei-nolla-oletusarvo, jos se on käytettävissä, tai NULL muussa tapauksessa. Jos sarake ei salli nolla-arvoja eikä sille ole määritetty oletusarvoa, INSERT-käsky epäonnistuu ja näyttöön tulee viesti.

Alla oleva esimerkki lisää rivejä SampleDb-tietokannan Employee-taulukkoon, mikä osoittaa INSERT-käskyn käytön pienen tietomäärän lisäämiseen tietokantaan:

KÄYTÄ SampleDb; INSERT INTO Työntekijän ARVOT (34990, "Andrey", "Batonov", "d1"); INSERT INTO Työntekijän ARVOT (38640, "Aleksei", "Vasin", "d3");

On kaksi eri tavoilla arvojen lisääminen uudelle riville. Alla olevan esimerkin INSERT-käsky käyttää nimenomaisesti NULL-avainsanaa ja lisää NULL-arvon vastaavaan sarakkeeseen:

KÄYTÄ SampleDb; INSERT INTO Työntekijän ARVOT (34991, "Andrey", "Batonov", NULL);

Jos haluat lisätä arvoja joihinkin (mutta ei kaikkiin) taulukon sarakkeisiin, sinun on yleensä määritettävä ne sarakkeet erikseen. Määrittämättömien sarakkeiden on joko sallittava NULL-arvot tai niille on määritettävä oletusarvo.

KÄYTÄ SampleDb; INSERT INTO Työntekijä(Id, Etunimi, Sukunimi) ARVOT (34992, "Andrey", "Batonov");

Kaksi edellistä esimerkkiä ovat samanarvoisia. Työntekijätaulukossa ainoa sarake, joka sallii NULL-arvot, on DepartmentNumber-sarake, ja kaikki muut sarakkeet poistettiin käytöstä CREATE TABLE -käskyn NOT NULL -lauseella.

Arvojen järjestys sisään VALUES tarjous INSERT-käskyt voivat poiketa CREATE TABLE -käskyssä määritetystä järjestyksestä. Tässä tapauksessa niiden järjestyksen on vastattava sitä järjestystä, jossa vastaavat sarakkeet on lueteltu sarakeluettelossa. Alla on esimerkki tietojen lisäämisestä eri järjestyksessä kuin alkuperäinen:

KÄYTÄ SampleDb; INSERT INTO Työntekijä(osastonnumero, sukunimi, tunnus, etunimi) ARVOT ("d1", "Batonov", 34993, "Andrey");

Lisätään useita rivejä

INSERT-käskyn toinen muoto lisää taulukkoon yhden tai useamman alikyselyn valitseman rivin. Alla oleva esimerkki näyttää, kuinka rivejä lisätään taulukkoon käyttämällä INSERT-käskyn toista muotoa. Tässä tapauksessa suoritetaan kysely Moskovassa sijaitsevien osastojen numeroiden ja nimien valitsemiseksi, ja tuloksena saatu tulosjoukko ladataan uuteen aiemmin luotuun taulukkoon.

Yllä olevassa esimerkissä luodussa uudessa MoscowDepartment-taulukossa on samat sarakkeet kuin olemassa olevassa Osastotaulukossa, lukuun ottamatta puuttuvaa Sijainti-saraketta. INSERT-käskyn alikysely valitsee kaikki Osastotaulukon rivit, joiden Sijainti-sarakkeen arvo on "Moskova", jotka sitten lisätään kyselyn alussa luotuun uuteen taulukkoon.

Alla oleva esimerkki näyttää toisen tavan lisätä rivejä taulukkoon käyttämällä INSERT-käskyn toista muotoa. Tässä tapauksessa suoritetaan kysely, jolla valitaan henkilöstönumerot, projektinumerot ja projektin aloituspäivät kaikille projektissa p2 työskenteleville työntekijöille, joilla on asema "Esimies" ja ladataan tuloksena saatu tulosjoukko uuteen taulukkoon, joka on luotu kysely:

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

Ennen rivien lisäämistä INSERT-käskyllä ​​MoscowDepartment- ja ManagerTeam-taulukot (yllä olevissa esimerkeissä) olivat tyhjiä. Jos taulukko oli jo olemassa ja sisältää rivejä datalla, siihen lisätään uusia rivejä.

Edellisissä osioissa tarkastelimme tietojen hakemista valmiista taulukoista. Nyt on aika selvittää, kuinka voimme luoda/poistaa taulukoita, lisätä uusia tietueita ja poistaa vanhoja. Näitä tarkoituksia varten sisään SQL Operaattoreita on, kuten: LUODA- luo taulukon, MUUTTAA- muuttaa taulukon rakennetta, PUDOTA- poistaa taulukon tai kentän, LISÄÄ- lisää tietoja taulukkoon. Aloitetaan tutustuminen tähän operaattoriryhmään operaattorilta LISÄÄ.

1. Kokojen rivien lisääminen

Kuten nimestä voi päätellä, operaattori LISÄÄ käytetään lisäämään (liittämään) rivejä tietokantataulukkoon. Lisääminen voidaan tehdä useilla tavoilla:

  • - lisää yksi täysi rivi
  • - lisää osa rivistä
  • - Lisää kyselytuloksia.

Joten lisätäksesi uuden rivin taulukkoon, meidän on määritettävä taulukon nimi, lueteltava sarakkeiden nimet ja määritettävä arvo jokaiselle sarakkeelle käyttämällä konstruktia LAITTAA SISÄÄN taulukon_nimi (kenttä1, kenttä2...) ARVOT (arvo1, arvo2...). Katsotaanpa esimerkkiä.

INSERT INTO Myyjien (ID, Osoite, Kaupunki, Myyjän_nimi, Maa) ARVOT("6", "1st Street", "Los Angeles", "Harry Monroe", "USA")

Voit myös muuttaa sarakkeiden nimien järjestystä, mutta samalla sinun on muutettava parametrin arvojen järjestystä ARVOT.

2. Lisätään osa riveistä

Edellisessä esimerkissä operaattoria käytettäessä LISÄÄ olemme nimenomaisesti merkinneet taulukon sarakkeiden nimet. Tätä syntaksia käyttämällä voimme ohittaa joitain sarakkeita. Tämä tarkoittaa, että annat arvot joillekin sarakkeille, mutta et anna niitä muille. Esimerkiksi:

INSERT INTO Myyjien (ID, Kaupunki, Myyjän_nimi) ARVOT("6", "Los Angeles", "Harry Monroe")

Tässä esimerkissä emme määrittäneet arvoa kahdelle sarakkeelle Osoite Ja Maa. Voit jättää joitakin sarakkeita pois lausunnosta LAITTAA SISÄÄN, jos tämä sallii taulukon määrityksen. Tässä tapauksessa yhden ehdoista on täytyttävä: tämä sarake määritellään kelvolliseksi TYHJÄ(arvon puuttuminen) tai taulukon määrittelyssä määritetty oletusarvo. Tämä tarkoittaa, että jos arvoa ei ole määritetty, käytetään oletusarvoa. Jos taulukosta puuttuu sarake, joka ei salli arvojen näkymistä riveillään TYHJÄ ja sille ei ole määritetty oletusarvoa, DBMS luo virhesanoman eikä riviä lisätä.

3. Valittujen tietojen lisääminen

Edellisessä esimerkissä lisäsimme tiedot taulukoihin syöttämällä ne manuaalisesti kyselyyn. Kuitenkin operaattori LAITTAA SISÄÄN mahdollistaa tämän prosessin automatisoinnin, jos haluamme lisätä tietoja toisesta taulukosta. Tätä tarkoitusta varten SQL:ssä on sellainen rakenne kuin LISÄÄ... VALITSE.... Tämän suunnittelun avulla voit samanaikaisesti valita tietoja yhdestä taulukosta ja lisätä ne toiseen. Oletetaan, että meillä on toinen pöytä Myyjät_EU luettelolla tavaroidemme myyjistä Euroopassa ja meidän on lisättävä ne yleiseen taulukkoon Myyjät. Näiden taulukoiden rakenne on sama (sama määrä sarakkeita ja samat nimet), mutta tiedot ovat erilaisia. Tätä varten voimme kirjoittaa seuraavan kyselyn:

INSERT INTO Myyjät (ID, osoite, kaupunki, myyjän_nimi, maa) VALITSEID, osoite, kaupunki, myyjän_nimi, maa FROM Sellers_EU

Sinun on kiinnitettävä huomiota, jotta sisäisten avainten arvot eivät toistu (kenttä ID), muuten tapahtuu virhe. Operaattori VALITSE voi sisältää myös ehdotuksia MISSÄ suodattaa tietoja. On myös huomattava, että DBMS ei kiinnitä huomiota lausunnon sisältämien sarakkeiden nimiin VALITSE, vain järjestys, jossa ne on järjestetty, on hänelle tärkeä. Siksi ensimmäisen määritetyn sarakkeen tiedot, jotka valittiin johtuen VALITSE, täytetään joka tapauksessa taulukon ensimmäiseen sarakkeeseen Myyjät, määritetty operaattorin jälkeen LAITTAA SISÄÄN, kentän nimestä riippumatta.

4. Tietojen kopioiminen taulukosta toiseen

Usein tietokantojen kanssa työskenneltäessä on tarpeen luoda kopioita kaikista taulukoista varmuuskopiointia tai muokkausta varten. Tehdä täysi kopio SQL:n taulukoissa on erillinen operaattori VALITSE. Meidän on esimerkiksi luotava kopio taulukosta Myyjät, sinun tulee kirjoittaa pyyntö seuraavasti:

SELECT * INTO Sellers_new FROM Myyjät

Toisin kuin edellinen malli LISÄÄ... VALITSE... Kun tietoja lisätään olemassa olevaan taulukkoon, suunnittelu kopioi tiedot uuteen taulukkoon. Voit myös sanoa, että ensimmäinen konstruktio tuo tietoja ja toinen vie. Suunnittelua käytettäessä VALITSE ... SISÄÄN ... LÄHTEÄ ... Seuraavat asiat tulee ottaa huomioon:

  • - voit käyttää mitä tahansa lauseita operaattorissa VALITSE, kuten GROUP BY Ja OTTAA
  • - Voit käyttää liitosta tietojen lisäämiseen useista taulukoista
  • - tietoja voidaan lisätä vain yhteen taulukkoon riippumatta siitä, kuinka monesta taulukosta se on otettu.

Tiimi lisää rivejä taulukkoon tai pääpöytänäkymä.

Sql INSERT -komennon syntaksi

Lisää komentosyntaksi


INSERT-komennon perusavainsanat ja -parametrit
  • kaava- lupatunniste, joka yleensä vastaa jonkun käyttäjän nimeä
  • pöytänäkymä- sen taulukon nimi, johon rivit lisätään; jos näkymä on määritetty, rivit lisätään näkymän päätaulukkoon
  • alikysely_1- alikysely, jonka palvelin käsittelee samalla tavalla kuin näkymää
  • sarakkeessa- taulukko tai näkymäsarake, johon syötetään lauseen arvo kullekin lisätylle riville ARVOT tai alikysely; Jos jokin taulukon sarakkeista on jätetty pois tästä luettelosta, lisätyn rivin sarakkeen arvo on oletusarvoinen sarakearvo, joka on määritetty taulukkoa luotaessa. Jos sarakeluettelo jätetään kokonaan pois, lauseke ARVOT tai kyselyn on määritettävä arvot kaikille taulukon sarakkeille
  • ARVOT- määrittää arvojonon, joka lisätään taulukkoon tai näkymään; merkitys on määriteltävä lauseessa ARVOT jokaiselle sarakeluettelon sarakkeelle
  • alikysely_2- alikysely, joka palauttaa taulukkoon lisätyt rivit; tämän alikyselyn valintaluettelossa on oltava sama määrä sarakkeita kuin lausekkeen sarakeluettelossa

lausunto lauseen kanssa ARVOT lisää yhden rivin taulukkoon. Tämä rivi sisältää lauseen määrittämät arvot ARVOT.
Lausunto kanssa alikysely lauseen sijaan ARVOT lisää kaikki alikyselyn palauttamat rivit taulukkoon. Palvelin käsittelee alikysely ja lisää jokaisen palautetun rivin taulukkoon. Jos alikysely ei valitse yhtään riviä, palvelin ei lisää rivejä taulukkoon.
Alakysely voi käyttää mitä tahansa taulukkoa tai näkymää, mukaan lukien kohdevahvistustaulukko . Palvelin määrittää arvot uusien rivien kenttiin taulukon sarakkeiden sisäisen sijainnin ja lausearvojen järjestyksen perusteella ARVOT tai kyselyn valintaluettelossa. Jos sarakeluettelosta puuttuu sarakkeita, palvelin määrittää niille oletusarvot, jotka määritettiin taulukkoa luotaessa. Jos jollakin näistä sarakkeista on NOT NULL -rajoite, palvelin palauttaa virheilmoituksen, joka osoittaa, että rajoitusta on rikottu, ja keskeyttää INSERT-käskyn.
Kun INSERT-käsky annetaan, kaikki taulukossa määritetyt INSERT-laukaisimet ovat käytössä.

INSERT INTO Esimerkki 1

LAITTAA SISÄÄN osasto ARVOT(50, "PRODUCTS", "SAN FRANCISCO");

LAITTAA SISÄÄN Asiakkaat (kaupunki, cname, cnum) ARVOT("Lontoo", "Hoffman", 2001);

INSERT INTO Esimerkki 2
Seuraava komento kopioi bonustaulukkoon tiedot yrityksen työntekijöistä, joiden palkkiot ylittävät 25 % tuloista:

LAITTAA SISÄÄN bonus SELECT emale, työ, sal, comm FROM emp WHERE comm > 0,25 * sal;

INSERT INTO Esimerkki 3
Jos sinun on lisättävä TYHJÄ-arvo, sinun on määritettävä se normaaliarvoksi seuraavasti:

LAITTAA SISÄÄN Myyjät ARVOT (1001,'Kuori',NULL,12);

INSERT INTO Esimerkki 4
Komennolla voidaan hakea arvoja yhdestä taulukosta ja sijoittaa ne toiseen kyselyn avulla. Tätä varten riittää lausekkeen korvaaminen ARVOT vastaavaan pyyntöön:

LAITTAA SISÄÄN Londonstaff SELECT * FROM Salespeople WHERE kaupunki = 'Lontoo';

MySQL INSERT

Voit lisätä uusia rivejä MySQL-tietokantaan käyttämällä INSERT-komento, komentoesimerkkejä annetaan alla:
INSERT INTO Esimerkki 1.
Lisää uusi rivi taulukkoon taulukon_nimi.

LAITTAA SISÄÄN

INSERT INTO Esimerkki 2.
Uuden rivin lisääminen taulukkoon taulukon_nimi, mikä osoittaa tietojen lisäämisen tarvitsemiimme sarakkeisiin.

LAITTAA SISÄÄN taulukon_nimi VALUES('1','165','0','nimi');

Tietokannassa MySQL On mahdollista lisätä useita uusia rivejä yhdellä komennolla.
INSERT INTO Esimerkki 3.
Useiden rivien lisääminen taulukkoon taulukon_nimi.

LAITTAA SISÄÄN taulukon_nimi (tbl_id, chislo, chislotwo, nimi) ARVOT ('1','159','34','nimi1'), ('2','14','61','name2'), ('3 ','356','8','nimi3');

sql-kysely INSERT INTO on järkevä, kun tietokantataulukko on luotu. Eli taulukko on olemassa, sillä on nimi, luotu rivit ja sarakkeet. taulukon luo operaattori: , taulukkoa muokkaa operaattori .

sql-kysely INSERT INTO - kyselyn syntaksi

sql-kyselyllä INSERT INTO on seuraava syntaksi:

INSERT INTO taulukon_nimi (suluissa, lisää tarvittaessa lista sarakkeista, joihin haluat lisätä tiedot) ARVOT lisätty data1, lisätty data2, lisätty data3.

Voit lisätä INSERT- ja INTRO-vaihtoehdon väliin ILMOITTAA. Sitä ei vaadita. Tarvitaan ensisijaisten avainten suojaamiseen taulukkoa muokattaessa. Muussa tapauksessa, jos ensisijaisten avainten päällekkäisyydet tapahtuvat muokkauksen aikana, niin IGNORE-vaihtoehtoa lisättäessä jää muokattavaan taulukkoon ensimmäinen rivi, jossa on ensisijainen avain. Muut ensisijaiset avaimet poistetaan. Oletusarvoisesti jätämme tämän vaihtoehdon pois.

Vaihtoehtoja on LOW_PRIORITY ja DELAYED. Ne määrittelevät prioriteetit tietojen lisäämiselle tietokantaan. Ensimmäinen määrittää tietokannan vapauttamisen odottamisen, toinen tarkoittaa tietojen puskurointia.

Kyselyn rivi: INSERT, jossa on VALUES-lause, mahdollistaa yhden rivin lisäämisen tietokantataulukkoon. VALUES-lause sisältää näiden tietojen arvot.

Alikyselyt voidaan määrittää VALUES-lauseen sijaan. INSERT alikyselyllä lisää alikyselyn palauttamat rivit taulukkoon. Tietokantapalvelin käsittelee alikyselyn ja lisää kaikki palautetut rivit taulukkoon. Palvelin ei lisää rivejä, ellei alikysely valitse niitä.

  • alikysely_1 - alikysely, jonka palvelin käsittelee samalla tavalla kuin näkymä
  • alikysely_2 on alikysely, joka palauttaa taulukkoon lisätyt rivit. Tämän alikyselyn luettelossa on oltava sama määrä sarakkeita kuin INSERT-sarakeluettelossa.

Alikyselyitä ei käytännössä käytetä MySQL-tietokannassa.

Esimerkkejä sql-kyselystä INSERT INTO MySQL-tietokannassa

Lisäämme uusia rivejä MySQL-tietokantaan INSERT INTRO -komennolla.

Ensimmäinen esimerkki.

Lisää uudet rivit taulukkoon taulukon_nimi.

INSERT INTO taulukon_nimi ARVOT ('2','145','1','nimi');

Tämä tarkoittaa, että haluamme lisätä arvot 2,145,1,nimi taulukon taulukon_nimi sarakkeisiin. Koska sarakkeita ei ole määritetty, arvot täytetään kaikkiin taulukon sarakkeisiin.

Esimerkki kaksi.

Lisää tiedot taulukon taulukon_nimi vaadittuihin (määritettyihin) sarakkeisiin.

INSERT INTO taulukon_nimi (asiakkaan_asiakas, asiakkaan_aliasiakas, asiakkaan_sähköposti) ARVOT ('nimi1','alinimi1',' [sähköposti suojattu]'), ('nimi2','subname2',' [sähköposti suojattu]'), ('nimi3','subname3',(' [sähköposti suojattu]′);

Igor Serov erityisesti sivustolle "".

INSERT-käsky lisää uusia tietueita taulukkoon. Tässä tapauksessa sarakearvot voivat olla kirjaimellisia vakioita tai olla tulosta alikyselyn suorittamisesta. Ensimmäisessä tapauksessa kunkin rivin lisäämiseen käytetään erillistä INSERT-käskyä; toisessa tapauksessa niin monta riviä lisätään kuin alikysely palauttaa.

Operaattorin syntaksi on seuraava:

    LAITTAA SISÄÄN [ (,...) ]

    (ARVOT(,…))

  1. | (OLETUSARVOT)

Kuten esitetystä syntaksista näkyy, sarakkeiden luettelo on valinnainen (tämä sanotaan hakasulkeet syntaksin kuvauksessa). Jos se puuttuu, lisättyjen arvojen luettelon on oltava täydellinen, eli arvot on annettava kaikille taulukon sarakkeille. Tässä tapauksessa arvojen järjestyksen on vastattava CREATE TABLE -käskyssä määritettyä järjestystä sille taulukolle, johon rivit lisätään. Lisäksi näiden arvojen on oltava samaa tietotyyppiä kuin sarakkeet, joihin ne syötetään. Harkitse esimerkiksi rivin lisäämistä tuotetaulukkoon, joka on luotu seuraavalla CREATE TABLE -käskyllä:

    CREATE TABLE -tuote

    maker char (1) NOT NULL,

    malli varchar(4) NOT NULL,

    kirjoita varchar(7) NOT NULL

Oletetaan, että haluat lisätä tähän taulukkoon PC-mallin 1157 valmistajalta B. Tämä voidaan tehdä seuraavalla käskyllä:

    INSERT INTO Tuotteeseen

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

Jos määrität sarakkeiden luettelon, voit muuttaa niiden "luonnollista" järjestystä:

    INSERT INTO Tuote (tyyppi, malli, valmistaja)

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

Vaikuttaa siltä, ​​että tämä on täysin tarpeeton ominaisuus, joka vain tekee suunnittelusta hankalampaa. Se kuitenkin voittaa, jos sarakkeilla on oletusarvot. Harkitse seuraavaa taulukkorakennetta:

    LUO TABLE tuote_D

    maker char (1) NULL,

    malli varchar(4) NULL,

    tyyppi varchar (7) NOT NULL OLETUS "PC"

Huomaa, että tässä kaikkien sarakkeiden arvoilla on oletusarvot (kaksi ensimmäistä ovat NULL ja viimeinen sarake on tyyppi - PC). Nyt voisimme kirjoittaa:

    INSERT INTO Product_D (malli, valmistaja)

    ARVOT(1157; "B");

Tässä tapauksessa riviä lisättäessä puuttuva arvo korvataan oletusarvolla - PC. Huomaa, että jos sarakkeelle ei ole annettu oletusarvoa CREATE TABLE -käskyssä ja NOT NULL -rajoite on määritetty estämään NULL:n käyttö kyseisessä taulukon sarakkeessa, oletusarvoksi oletetaan NULL.

Herää kysymys: onko mahdollista olla määrittämättä sarakeluetteloa ja silti käyttää oletusarvoja? Vastaus on kyllä. Käytä tätä varten varattua sanaa DEFAULT arvon nimenomaisen määrittämisen sijaan:

    INSERT INTO Product_D

    ARVOT ("B" , 1158 , OLETUS );

Koska kaikilla sarakkeilla on oletusarvot, voit lisätä rivin oletusarvoilla kirjoittamalla:

    INSERT INTO Product_D

    ARVOT(OLETUS, OLETUS, OLETUS);

Tässä tapauksessa on kuitenkin olemassa erityinen rakenne OLETUSARVOT (katso operaattorin syntaksi), jolla yllä oleva operaattori voidaan kirjoittaa uudelleen muotoon

    INSERT INTO Product_D OLETUSARVOT ;

Huomaa, että kun lisäät rivin taulukkoon, kaikki tälle taulukolle asetetut rajoitukset tarkistetaan. Nämä voivat olla ensisijaisen avaimen tai yksilöllisen indeksin rajoituksia, TARKISTA rajoituksia tai viittauksen eheyden rajoituksia. Jos jotakin rajoitusta rikotaan, rivin lisäys hylätään. Tarkastellaan nyt tapausta, jossa käytetään alikyselyä. Oletetaan, että meidän on lisättävä Product_D-taulukkoon kaikki tuotetaulukon rivit, jotka liittyvät henkilökohtaisten tietokoneiden malleihin (tyyppi = 'PC'). Koska tarvitsemamme arvot ovat jo jossain taulukossa, lisättyjen rivien luominen manuaalisesti on ensinnäkin tehotonta ja toiseksi voi sallia syöttövirheitä. Alikyselyn käyttäminen ratkaisee seuraavat ongelmat:

“*”-symbolin käyttö alikyselyssä on tässä tapauksessa perusteltua, koska sarakkeiden järjestys on sama molemmissa taulukoissa. Jos näin ei ole, sarakeluetteloa olisi käytettävä joko INSERT-käskyssä, alikyselyssä tai molemmissa, mikä vastaa sarakkeiden järjestystä:

Täällä, kuten ennenkin, et voi määrittää kaikkia sarakkeita, jos haluat käyttää olemassa olevia oletusarvoja, esimerkiksi:

Tässä tapauksessa Tuote_D-taulukon tyyppisarake korvataan oletusarvolla PC kaikille lisätyille riveille.

Huomaa, että kun käytät predikaatin sisältävää alikyselyä, vain ne rivit, joiden predikaattiarvo on TOSI (ei TUNTEMATON!), lisätään. Toisin sanoen, jos tuotetaulukon tyyppisarake olisi NULL-arvo ja tämä arvo on useilla riveillä, näitä rivejä ei lisättäisi Tuote_D-taulukkoon.

Keinotekoinen tekniikka käyttää alikyselyä, joka muodostaa rivin UNION ALL -lauseen kanssa, mahdollistaa yhden rivin lisäämisen rajoituksen INSERT-lauseeseen käytettäessä rivikonstruktoria VALUES-lauseessa. Joten jos meidän on lisättävä useita rivejä yhdellä INSERT-käskyllä, voimme kirjoittaa:

    INSERT INTO Product_D

    VALITSE "B" AS valmistaja, 1158 AS malli, "PC" AS tyyppi

    UNIONI KAIKKI

    VALITSE "C" , 2190 , "Kannettava"

    UNIONI KAIKKI

    VALITSE "D" , 3219 , "Tulostin" ;

UNION ALL on parempi vaihtoehto kuin UNION, vaikka päällekkäisten rivien puuttuminen olisi taattu, koska tässä tapauksessa kaksoiskappaleiden poistamiseksi ei tehdä tarkistusta.

On huomattava, että useiden monikoiden lisääminen rivikonstruktorilla on jo toteutettu Relaatiotietokannan hallintajärjestelmä (DBMS), jonka on kehittänyt Microsoft Corporation.Structured Query Language) on yleinen tietokonekieli, jota käytetään tietojen luomiseen, muokkaamiseen ja käsittelemiseen relaatiotietokantoissa. SQL Server 2008. Kun tämä mahdollisuus otetaan huomioon, viimeinen kysely voidaan kirjoittaa uudelleen seuraavasti:

    INSERT INTO Product_D ARVOT

    ("B", 1158, "PC"),

    ("C", 2190, "kannettava"),


Yläosa