Ms sql palvelimen kyselyt. Esimerkki kyselyn (Query) luomisesta MS SQL Server -tietokannassa

Viimeisin päivitys: 07/05/2017

Viimeisessä aiheessa SQL Management Studiossa luotiin yksinkertainen tietokanta, jossa on yksi taulukko. Nyt määritellään ja suoritetaan ensimmäinen SQL-kysely. Voit tehdä tämän avaamalla SQL Management Studion, napsauttamalla hiiren kakkospainikkeella ylimmän tason elementtiä Object Explorerissa (palvelimen nimi) ja valitsemalla näkyviin tulevasta kontekstivalikosta Uusi kysely:

Tämän jälkeen ohjelman keskiosaan avautuu ikkuna SQL-komentojen syöttämistä varten.

Suoritetaan kysely edellisessä aiheessa luodulle taulukolle, josta saamme kaikki tiedot. Tietokantamme on nimeltään yliopisto ja taulukko on dbo.Students , joten saadaksemme tietoja taulukosta syötämme seuraavan kyselyn:

SELECT * FROM university.dbo.Students

SELECT-käsky antaa sinun valita tietoja. FROM määrittää lähteen, josta tiedot saadaan. Itse asiassa tällä kyselyllä sanomme "VALITSE kaikki taulukosta yliopisto.dbo.Opiskelijat". On syytä huomata, että taulukon koko polkua käytetään taulukon nimenä, mikä osoittaa tietokannan ja skeeman.

Kun olet kirjoittanut kyselyn, napsauta työkalupalkin painiketta Suorita tai voit painaa F5-näppäintä.

Kyselyn suorittamisen seurauksena ohjelman alareunaan ilmestyy pieni taulukko, joka näyttää kyselyn tulokset - eli kaikki Opiskelijat-taulukon tiedot.

Jos meidän on tehtävä useita kyselyitä samaa tietokantaa vastaan, voimme käyttää USE-komentoa tietokannan vahvistamiseen. Tässä tapauksessa taulukoita kysyttäessä riittää, että määrität niiden nimen ilman tietokannan nimeä ja skeemaa:

KÄYTÄ yliopiston SELECT * FROM opiskelijoilta

Tässä tapauksessa suoritamme kyselyn kokonaisuutena palvelimelle, voimme käyttää mitä tahansa palvelimen tietokantaa. Mutta voimme myös suorittaa kyselyitä vain tietyn tietokannan sisällä. Napsauta hiiren kakkospainikkeella haluamaasi tietokantaa ja valitse pikavalikosta Uusi kysely:

Jos tässä tapauksessa haluttaisiin kysellä yllä käytettyä Opiskelijat-taulukkoa, meidän ei tarvitsisi määrittää kyselyssä tietokannan nimeä ja skeemaa, koska nämä arvot olisivat jo selvät.

SQL Server Management Studio tarjoaa täydellisen työkalun kaikentyyppisten kyselyiden luomiseen. Sen avulla voit luoda, tallentaa, ladata ja muokata kyselyjä. Lisäksi voit käsitellä kyselyitä muodostamatta yhteyttä mihinkään palvelimeen. Tämä työkalu tarjoaa myös mahdollisuuden kehittää kyselyitä eri projekteihin.

Voit käsitellä kyselyitä sekä Kyselyeditorin että Solution Explorerin kautta. Tämä artikkeli kattaa nämä molemmat työkalut. Näiden kahden SQL Server Management Studion komponentin lisäksi tarkastelemme SQL-koodin virheenkorjausta sisäänrakennetun debuggerin avulla.

Kyselyeditori

Voit avata Kyselyeditori-paneelin Kyselyeditori, napsauta SQL Server Management Studio -työkalurivin Uusi kysely -painiketta. Tämä paneeli voidaan laajentaa näyttämään painikkeita kaikkien mahdollisten kyselyjen luomiseen, ei vain tietokantakonekyselyihin. Oletuksena luodaan uusi tietokantamoottorikysely, mutta voit myös luoda MDX-, XMLA- ja muita kyselyitä napsauttamalla vastaavaa painiketta työkalupalkissa.

Kyselyeditori-paneelin alareunassa oleva tilapalkki näyttää editorin palvelimen välisen yhteyden tilan. Jos et ole automaattisesti yhteydessä palvelimeen, kun käynnistät Kyselyeditorin, näkyviin tulee Yhdistä palvelimeen -valintaikkuna, jossa voit valita palvelimen, johon haluat muodostaa yhteyden, ja todennustilan.

Kyselyjen muokkaaminen offline-tilassa tarjoaa enemmän joustavuutta kuin silloin, kun olet yhteydessä palvelimeen. Sinun ei tarvitse olla yhteydessä palvelimeen kyselyjen muokkaamiseen, ja kyselynmuokkausikkuna voidaan katkaista yhdestä palvelimesta (valikon komennolla Kysely --> Yhteys --> Katkaise yhteys) ja muodostaa yhteys toiseen palvelimeen avaamatta toista editori-ikkunaa. Jos haluat valita offline-muokkaustilan, napsauta Peruuta-painiketta palvelinyhteysvalintaikkunassa, joka tulee näkyviin, kun käynnistät tietyn kyselytyypin muokkausohjelman.

Voit käyttää Kyselyeditoria seuraavien tehtävien suorittamiseen:

    Transact-SQL-lauseiden luominen ja suorittaminen;

    luotujen Transact-SQL-lauseiden tallentaminen tiedostoon;

    yleisten kyselyjen toteutussuunnitelmien luominen ja analysointi;

    graafinen esitys valitun kyselyn suoritussuunnitelmasta.

Kyselyeditori sisältää sisäänrakennetun tekstieditorin ja työkalupalkin, jossa on painikkeita eri toimintoja varten. Kyselyeditorin pääikkuna on jaettu vaakasuunnassa kyselypaneeliin (ylhäällä) ja tulospaneeliin (alhaalla). Suoritettavat Transact-SQL-käskyt (eli kyselyt) syötetään yläruutuun, ja kyselyjen käsittelyn tulokset näytetään alaruudussa. Alla olevassa kuvassa on esimerkki kyselyn syöttämisestä kyselyeditoriin ja tämän kyselyn suorittamisen tulokset:

Ensimmäinen USE-kyselykäsky määrittää käyttämään SampleDb-tietokantaa nykyisenä tietokantana. Toinen käsky, SELECT, hakee kaikki Työntekijä-taulukon rivit. Voit suorittaa tämän kyselyn ja näyttää tulokset napsauttamalla kyselyeditorin työkalupalkissa Suorita-painiketta tai painamalla F5-näppäintä.

Voit avata useita Kyselyeditori-ikkunoita, esim. muodostaa useita yhteyksiä yhteen tai useampaan tietokantamoottorin esiintymään. Uusi yhteys luodaan napsauttamalla Uusi kysely -painiketta SQL Server Management Studion työkalupalkissa.

Kyselyeditori-ikkunan alareunassa oleva tilapalkki näyttää seuraavat kyselylauseiden suorittamiseen liittyvät tiedot:

    nykyisen toiminnon tila (esimerkiksi "Pyyntö suoritettu onnistuneesti");

    tietokantapalvelimen nimi;

    nykyinen käyttäjänimi ja palvelimen prosessitunnus;

    nykyisen tietokannan nimi;

    viimeisen pyynnön täyttämiseen kulunut aika;

    löydettyjen rivien määrä.

Yksi SQL Server Management Studion tärkeimmistä eduista on sen helppokäyttöisyys, joka koskee myös kyselyeditoria. Kyselyeditorissa on monia ominaisuuksia, jotka helpottavat Transact-SQL-lauseiden koodaamista. Se käyttää erityisesti syntaksin korostusta parantaakseen Transact-SQL-lauseiden luettavuutta. Kaikki varatut sanat näkyvät sinisellä, muuttujat mustalla, merkkijonot punaisella ja kommentit vihreällä.

Lisäksi Kyselyeditorissa on kontekstikohtainen ohje nimeltä Dynaaminen ohje, jonka kautta saat tietoa tietystä ohjeesta. Jos et tiedä lauseen syntaksia, valitse se editorissa ja paina sitten F1-näppäintä. Voit myös korostaa erilaisten Transact-SQL-käskyjen parametreja saadaksesi apua Books Onlinesta.

SQL Management Studio tukee SQL Intellisenseä, joka on eräänlainen automaattinen täydennystyökalu. Toisin sanoen tämä moduuli ehdottaa todennäköisimpää osittain syötettyjen Transact-SQL-käskyelementtien valmistumista.

Object Explorer voi myös auttaa kyselyn muokkaamisessa. Jos esimerkiksi haluat oppia luomaan CREATE TABLE -käskyn Työntekijä-taulukolle, napsauta taulukkoa hiiren kakkospainikkeella Object Explorerissa ja valitse pikavalikosta Script Table As --> CREATE to --> New Query Editor Window. taulukot --> CREATE -toiminnolla --> Uusi kyselyeditori -ikkuna). Kyselyeditori-ikkuna, joka sisältää näin luodun CREATE TABLE -käskyn, näkyy alla olevassa kuvassa. Tämä ominaisuus koskee myös muita objekteja, kuten tallennettuja proseduureja ja toimintoja.

Objektiselain on erittäin hyödyllinen tietyn kyselyn suoritussuunnitelman graafisessa näyttämisessä. Kyselyn suoritussuunnitelma on suoritusvaihtoehto, jonka kyselyn optimoija valitsee useista mahdollisista vaihtoehdoista tietyn kyselyn suorittamiseksi. Syötä tarvittava kysely editorin yläpaneeliin, valitse komentosarja valikosta Kysely --> Näytä arvioitu suoritussuunnitelma (Kysely --> Näytä arvioitu toteutussuunnitelma) ja tämän kyselyn suoritussuunnitelma näytetään muokkausikkunan alapaneeli.

Solution Explorer

Kyselyjen muokkaaminen SQL Server Management Studiossa perustuu ratkaisumenetelmään. Jos luot tyhjän kyselyn Uusi kysely -painikkeella, se perustuu tyhjään ratkaisuun. Tämä näkyy suorittamalla komentosarja Näytä --> Ratkaisuhallinta -valikosta heti tyhjän kyselyn avaamisen jälkeen.

Päätös voi liittyä ei yhteenkään, yhteen tai useampaan hankkeeseen. Tyhjä ratkaisu, joka ei liity mihinkään projektiin. Jos haluat liittää projektin ratkaisuun, sulje tyhjä ratkaisu, Solution Explorer ja Query Editor ja luo uusi projekti suorittamalla Tiedosto --> Uusi --> Projekti -komentosarja. Valitse avautuvan Uusi projekti -ikkunan keskimmäisestä ruudusta SQL Server Scripts -vaihtoehto. Projekti on tapa järjestää tiedostoja tietyssä paikassa. Voit antaa projektille nimen ja valita sijainnin sen sijainnille levyllä. Kun luot uuden projektin, uusi ratkaisu käynnistetään automaattisesti. Voit lisätä projektin olemassa olevaan ratkaisuun Solution Explorerin avulla.

Ratkaisujenhallinta näyttää jokaisen luodun projektin kohdalla Yhteydet (Yhteydet), Kyselyt (Pyynnöt) ja Sekalaiset (Sekalaiset) -kansiot. Avataksesi uuden Kyselyeditori-ikkunan tietylle projektille napsauttamalla hiiren kakkospainikkeella sen Kyselyt-kansiota ja valitsemalla pikavalikosta Uusi kysely.

SQL Serverin virheenkorjaus

SQL Serverissä, alkaen SQL Server 2008:sta, on sisäänrakennettu koodivirheenkorjaus. Aloita virheenkorjausistunto valitsemalla seuraava komentosarja Debug --> Start Debugging SQL Server Management Studion päävalikosta. Tarkastellaan debuggerin toimintaa esimerkin avulla komentopaketin avulla. Erä on SQL-käskyjen ja prosessilaajennusten looginen sarja, joka lähetetään tietokantakoneeseen suorittamaan kaikki sen sisältämät käskyt.

Alla oleva kuva näyttää paketin, joka laskee p1-projektissa työskentelevien työntekijöiden määrän. Jos tämä numero on 4 tai enemmän, näyttöön tulee vastaava viesti. Muussa tapauksessa työntekijöiden nimet ja sukunimet näytetään.

Jos haluat lopettaa paketin suorittamisen tietyllä käskyllä, voit asettaa keskeytyspisteitä kuvan osoittamalla tavalla. Voit tehdä tämän napsauttamalla sen rivin vasemmalla puolella, johon haluat pysähtyä. Kun aloitat virheenkorjauksen, suoritus pysähtyy ensimmäiselle koodiriville, joka on merkitty keltaisella nuolella. Jatka suorittamista ja virheenkorjausta suorittamalla valikon komento Debug --> Continue (Debugging --> Continue). Paketin ohjeiden suorittaminen jatkuu ensimmäiseen keskeytyskohtaan ja keltainen nuoli pysähtyy siihen kohtaan.

Vianetsintäprosessiin liittyvät tiedot näkyvät kahdessa ruudussa Kyselyeditori-ikkunan alareunassa. Tiedot erityyppisistä virheenkorjaustiedoista on ryhmitelty näihin paneeleihin useille välilehdille. Vasemmassa paneelissa on välilehdet Autos (automaattinen), Locals (paikallinen) ja enintään viisi Watch (näkyvä) välilehteä. Oikeassa ruudussa on Puhelupino-, Säikeet-, Katkaisupisteet-, Komento-ikkuna-, Välitön ikkuna- ja Tulostus-välilehdet. Paikalliset-välilehti näyttää muuttujaarvot, Puhelupino-välilehti näyttää puhelupinon arvot ja Breakpoints-välilehti näyttää tietoja keskeytyspisteistä.

Voit lopettaa virheenkorjauksen suorittamalla komentosarjan päävalikosta Debug --> Stop Debugging tai painamalla vianmääritystyökalupalkin sinistä painiketta.

SQL Server 2012:ssa SQL Server Management Studion sisäänrakennettu debuggeri on parannettu useilla uusilla ominaisuuksilla. Nyt voit suorittaa useita seuraavista toiminnoista siinä:

    Määritä keskeytyskohdan ehto. Katkopisteen kunto on SQL-lauseke, jonka arvioitu arvo määrittää, pysäytetäänkö koodin suoritus tietyssä kohdassa vai ei. Voit määrittää keskeytyskohdan ehdon napsauttamalla hiiren kakkospainikkeella halutun keskeytyskohdan punaista kuvaketta ja valitsemalla kontekstivalikosta Ehto. Breakpoint Condition -valintaikkuna avautuu, johon sinun on syötettävä tarvittava looginen lauseke. Lisäksi, jos haluat lopettaa suorituksen, jos lauseke on tosi, sinun tulee asettaa On True -kytkin. Jos suoritus on keskeytettävä, jos lauseke on muuttunut, sinun on asetettava kytkin Kun muutettu (muutettu).

    Määritä keskeytyskohdan osumien määrä. Osumien määrä on ehto suorituksen pysäyttämiselle tietyssä pisteessä, joka perustuu siihen, kuinka monta kertaa keskeytyskohtaan on osuma suorituksen aikana. Kun määritetty iteraatioiden määrä ja mikä tahansa muu tietylle keskeytyspisteelle määritetty ehto saavutetaan, debuggeri suorittaa määritetyn toiminnon. Osumien määrään perustuva katkosehto voi olla jokin seuraavista:

    1. ehdoton (oletustoiminto) (Tauko aina);

      jos osumien määrä on yhtä suuri kuin määritetty arvo (Break kun hänen määrä on yhtä suuri kuin määritetty arvo);

      jos osumien määrä on määritetyn arvon kerrannainen (katko, kun osumamäärä on tietyn arvon kerrannainen);

      jos osumien määrä on yhtä suuri tai suurempi kuin määritetty arvo (katko, kun hänen lukumääränsä on suurempi tai yhtä suuri kuin määritetty arvo).

    Jos haluat asettaa osumien määrän virheenkorjauksen aikana, napsauta hiiren kakkospainikkeella haluamasi keskeytyskohdan kuvaketta Breakpoints-välilehdessä, valitse pikavalikosta Osumamäärä ja valitse sitten jokin seuraavista ehdoista Breakpoint Hit Count -valintaikkunassa: yllä olevasta luettelosta. . Jos asetukset edellyttävät arvoa, kirjoita se tekstiruutuun avattavan ehdot-luettelon oikealla puolella. Tallenna määritetyt ehdot napsauttamalla OK-painiketta.

    Määritä keskeytyspistesuodatin. Katkopistesuodatin rajoittaa keskeytyskohdan toiminnan vain tiettyihin tietokoneisiin, prosesseihin tai säikeisiin. Määritä keskeytyspistesuodatin napsauttamalla hiiren kakkospainikkeella haluamaasi keskeytyskohtaa ja valitsemalla kontekstivalikosta Suodatin. Määritä sitten avautuvassa Breakpoint Filters -valintaikkunassa resurssit, joihin haluat rajoittaa tämän keskeytyskohdan suorittamisen. Tallenna määritetyt ehdot napsauttamalla OK.

    Määritä toiminto keskeytyskohdassa. Kun osuma -ehto määrittää toimenpiteen, joka suoritetaan, kun paketin suoritus saavuttaa tietyn keskeytyskohdan. Oletuksena, kun sekä osumamäärän ehto että pysäytysehto täyttyvät, suoritus keskeytetään. Vaihtoehtoisesti voit näyttää ennalta määritellyn viestin.

    Jos haluat määrittää, mitä tehdä, kun keskeytyskohta osuu, napsauta hiiren oikealla painikkeella haluamasi keskeytyskohdan punaista kuvaketta ja valitse pikavalikosta Kun osuma. Valitse haluamasi toiminto avautuvassa Kun katkeamispiste osuu -valintaikkunassa. Tallenna määritetyt ehdot napsauttamalla OK-painiketta.

    Käytä Quick Watch -ikkunaa. QuickWatch-ikkunassa voit tarkastella Transact-SQL-lausekkeen arvoa ja tallentaa lausekkeen Watch Values -ikkunaan. Avaa Quick Watch -ikkuna valitsemalla Debug-valikosta Quick Watch. Tämän ikkunan lauseke voidaan joko valita avattavasta luettelosta Lauseke (Lauseke) tai kirjoittaa se tähän kenttään.

    Käytä Quick Info -työkaluvihjettä. Kun viet hiiren osoittimen kooditunnisteen päälle, Quick Info -työkalu näyttää sen ilmoituksen ponnahdusikkunassa.

Taulukkolausekkeet kutsutaan alikyselyiksi, joita käytetään siellä, missä taulukkoa odotetaan. Taulukkolausekkeita on kahdenlaisia:

    johdetut taulukot;

    yleistetyt taulukkolausekkeet.

Näitä kahta taulukkolausekkeiden muotoa käsitellään seuraavissa alaosissa.

Johdetut taulukot

Johdettu taulukko on taulukkolauseke, joka sisältyy kyselyn FROM-lauseeseen. Johdettuja taulukoita voidaan käyttää, kun sarakealiaksien käyttö ei ole mahdollista, koska SQL-kääntäjä käsittelee toisen käskyn ennen kuin alias tunnetaan. Alla oleva esimerkki näyttää yrityksen käyttää sarakealiasta tilanteessa, jossa käsitellään toista lauseketta ennen kuin alias tunnetaan:

KÄYTÄ SampleDb; VALITSE KUUKAUSI(SyötäPäivämäärä) muodossa enter_month FROM Works_on GROUP BY enter_month;

Tämän kyselyn suorittaminen palauttaa seuraavan virhesanoman:

Viesti 207, taso 16, tila 1, rivi 5 Virheellinen sarakkeen nimi "enter_month". (Viesti 207: Taso 16, tila 1, rivi 5 Virheellinen sarakkeen nimi enter_month)

Virhe johtuu siitä, että GROUP BY -lause käsitellään ennen kuin vastaava SELECT-käskyn lista on käsitelty, eikä enter_month-sarakkeen alias ole tiedossa, kun ryhmää käsitellään.

Tämä ongelma voidaan ratkaista käyttämällä näkymää, joka sisältää edellisen kyselyn (ilman GROUP BY -lausetta), koska FROM-lause suoritetaan ennen GROUP BY -lausetta:

KÄYTÄ SampleDb; SELECT tulo_kuukausi FROM (VALITSE KUUKAUSI(SyötyPäivä) syötteen_kuukaudeksi FROM Works_on) AS m GROUP BY enter_month;

Tämän kyselyn tulos on seuraava:

Tyypillisesti taulukkolauseke voidaan sijoittaa mihin tahansa SELECT-käskyn kohtaan, jossa taulukon nimi saattaa esiintyä. (Taulukkolausekkeen tulos on aina taulukko tai erikoistapauksissa lauseke.) Seuraava esimerkki näyttää taulukkolausekkeen käytön SELECT-käskyn valintaluettelossa:

Tämän kyselyn tulos on:

Yleiset taulukkolausekkeet

Common Table Expression (OTB) (lyhennettynä CTE) on Transact-SQL-kielen tukema nimetty taulukkolauseke. Yleisiä taulukkolausekkeita käytetään seuraavissa kahdessa kyselytyypissä:

    ei-rekursiivinen;

    rekursiivinen.

Näitä kahta pyyntötyyppiä käsitellään seuraavissa osioissa.

OTB ja ei-rekursiiviset kyselyt

OTB:n ei-rekursiivista muotoa voidaan käyttää vaihtoehtona johdetuille taulukoille ja näkymille. Yleensä OTB määritellään Lauseilla ja lisäkysely, joka viittaa WITH-lauseessa käytettyyn nimeen. Transact-SQL:ssä WITH-avainsanan merkitys on epäselvä. Epäselvyyden välttämiseksi WITH-käskyä edeltävä käsky tulee lopettaa puolipisteellä.

KÄYTÄ AdventureWorks2012; SELECT SalesOrderID FROM Sales.SalesOrderHeader WHERE TotalDue > (SELECT AVG(TotalDue) FROM Sales.SalesOrderHeader WHERE YEAR(OrderDate) = "2005") AND Freight > (SELECT AVG(TotalDue) FROM Sales.SalesOrderHeader2. ")/2,5;

Tämän esimerkin kysely valitsee tilaukset, joiden kokonaisverot (TotalDue) ovat suurempia kuin kaikkien verojen keskiarvo ja joiden rahtikulut (Freight) ovat yli 40 % keskimääräisistä veroista. Tämän kyselyn tärkein ominaisuus on sen tilavuus, koska sisäkkäinen kysely on kirjoitettava kahdesti. Yksi mahdollinen tapa pienentää kyselyrakenteen laajuutta on luoda näkymä, joka sisältää alikyselyn. Mutta tämä ratkaisu on hieman hankala, koska se vaatii näkymän luomisen ja poistamisen kyselyn päätyttyä. Paras tapa olisi luoda OTB. Alla oleva esimerkki näyttää ei-rekursiivisen OTB:n käytön, mikä lyhentää yllä olevaa kyselyn määritelmää:

KÄYTÄ AdventureWorks2012; WITH hinta_lask.(vuosi_2005) AS (SELECT AVG(TotalDue) FROM Sales.SalesOrderHeader WHERE YEAR(OrderDate) = "2005") SELECT SalesOrderID FROM Sales.SalesOrderHeader WHERE TotalDue > (VALITSE vuosi_2005) FROM_hinta_cal02) FROM /2,5;

WITH-lauseen syntaksi ei-rekursiivisissa kyselyissä on seuraava:

Parametri cte_name on OTB-nimi, joka määrittää tuloksena olevan taulukon, ja parametri column_list on taulukkolausekkeen sarakkeiden luettelo. (Yllä olevassa esimerkissä OTB:n nimi on hinta_lasku ja siinä on yksi sarake, vuosi_2005.) Inner_query-parametri edustaa SELECT-käskyä, joka määrittää vastaavan taulukkolausekkeen tulosjoukon. Määritettyä taulukkolauseketta voidaan sitten käyttää ulkokyselyssä. (Yllä olevan esimerkin ulompi kysely käyttää OTB price_calc -saraketta ja sen vuosi_2005-saraketta yksinkertaistamaan kaksinkertaista sisäkkäistä kyselyä.)

OTB ja rekursiiviset kyselyt

Tämä osio esittelee monimutkaisempaa materiaalia. Siksi, kun luet sen ensimmäisen kerran, on suositeltavaa ohittaa se ja palata siihen myöhemmin. OTB:t voivat olla rekursiivisia, koska OTB:t voivat sisältää viittauksia itseensä. Rekursiivisen kyselyn OTB-perussyntaksi näyttää tältä:

Parametreilla cte_name ja column_list on sama merkitys kuin OTB:ssä ei-rekursiivisille kyselyille. WITH-lauseen runko koostuu kahdesta kyselystä, jotka on yhdistetty käskyllä UNIONI KAIKKI. Ensimmäistä kyselyä kutsutaan vain kerran, ja se alkaa keräämään rekursion tulosta. UNION ALL -operaattorin ensimmäinen operandi ei viittaa OTB:hen. Tätä kyselyä kutsutaan viitekyselyksi tai lähteeksi.

Toinen kysely sisältää linkin OTB:hen ja edustaa sen rekursiivista osaa. Tästä syystä sitä kutsutaan rekursiiviseksi jäseneksi. Ensimmäisessä rekursiivisen osan kutsussa OTB-viite edustaa viitekyselyn tulosta. Rekursiivinen jäsen käyttää kyselyn ensimmäisen kutsun tulosta. Tämän jälkeen järjestelmä kutsuu uudelleen rekursiivisen osan. Kutsu rekursiiviselle jäsenelle päättyy, kun edellinen puhelu sille palauttaa tyhjän tulosjoukon.

UNION ALL -operaattori yhdistää tähän mennessä kertyneet rivit sekä nykyisen kutsun lisäämät lisärivit rekursiiviseen jäseneen. (UNION ALL -operaattorin läsnäolo tarkoittaa, että päällekkäisiä rivejä ei poisteta tuloksesta.)

Lopuksi parametri outer_query määrittää ulomman kyselyn, jota OTB käyttää saadakseen kaikki kutsut molempien jäsenten liittoon.

OTB:n rekursiivisen muodon osoittamiseksi käytämme lentokonetaulukkoa, joka on määritelty ja täytetty alla olevassa esimerkissä esitetyllä koodilla:

KÄYTÄ SampleDb; LUO TAULUKKO Lentokone (ContainingAssembly VARCHAR(10), ContainedAssembly VARCHAR(10), QuantityContained INT, UnitCost DECIMAL(6,2)); INSERT INTO Lentokonearvot ("Airplane", "Runko", 1, 10); INSERT INTO Lentokonearvot ("Airplane", "Wings", 1, 11); INSERT INTO Lentokonearvot ("Airplane", "Tail", 1, 12); INSERT INTO Lentokonearvot ("Runko", "Salong", 1, 13); INSERT INTO Airplane VALUES ("runko", "ohjaamo", 1, 14); INSERT INTO Lentokoneen ARVOT ("Runko", "Nenä", 1, 15); INSERT INTO Lentokoneen ARVOT("Salong", NULL, 1,13); INSERT INTO Lentokonearvot("hytti", NULL, 1, 14); INSERT INTO Lentokoneen ARVOT("Nenä", NULL, 1, 15); INSERT INTO Lentokoneen ARVOT("Siivet", NULL,2, 11); INSERT INTO Lentokonearvot("Häntä", NULL, 1, 12);

Lentokonetaulukossa on neljä saraketta. ContainingAssembly-sarake määrittelee kokoonpanon ja ContainedAssembly-sarake määrittää osat (yksi kerrallaan), jotka muodostavat vastaavan kokoonpanon. Alla olevassa kuvassa on graafinen esitys mahdollisesta lentokonetyypistä ja sen osista:

Lentokonetaulukko koostuu seuraavista 11 rivistä:

Seuraava esimerkki käyttää WITH-lausetta määrittämään kyselyn, joka laskee kunkin koontiversion kokonaiskustannukset:

KÄYTÄ SampleDb; WITH osien_luettelo(kokoonpano1, määrä, hinta) AS (SELECT ContainingAssembly, QuantityContained, UnitCost FROM lentokoneesta WHERE ContainedAssembly IS NULL UNION ALL SELECT a.ContainingAssembly, a.QuantityContained, CAST(l.contity) *DECl.määrä6 *DECl. ) FROM osien_luettelo l, Lentokone a WHERE l.kokoonpano1 = a.ContainedAssembly) SELECT kokoonpano1 "Osa", määrä "Määrä", hinta "Hinta" FROM osien_luettelo;

WITH-lause määrittää OTB-luettelon, jonka nimi on osien_luettelo ja joka koostuu kolmesta sarakkeesta: kokoonpano1, määrä ja hinta. Esimerkin ensimmäistä SELECT-käskyä kutsutaan vain kerran tallentamaan rekursioprosessin ensimmäisen vaiheen tulokset. Esimerkin viimeisellä rivillä oleva SELECT-käsky näyttää seuraavan tuloksen.

Jokainen meistä kohtaa ja käyttää säännöllisesti erilaisia ​​tietokantoja. Kun valitsemme sähköpostiosoitteen, työskentelemme tietokannan kanssa. Tietokannat käyttävät hakupalveluita, pankkeja asiakastietojen tallentamiseen ja niin edelleen.

Mutta tietokantojen jatkuvasta käytöstä huolimatta jopa monille ohjelmistojärjestelmien kehittäjille on monia "valkoisia pisteitä" samojen termien erilaisista tulkinnoista johtuen. Annamme lyhyen määritelmän tietokannan perustermeistä ennen kuin tarkastelemme SQL-kieltä. Niin.

Tietokanta - tiedosto tai tiedostojoukko järjestettyjen tietorakenteiden ja niiden suhteiden tallentamiseen. Hyvin usein tietokantaa kutsutaan hallintajärjestelmäksi - se on vain tietyssä muodossa olevien tietojen arkisto ja se voi toimia erilaisten DBMS-järjestelmien kanssa.

Pöytä - Kuvittelemme kansiota, johon on tallennettu tietyn attribuutin mukaan ryhmiteltyjä asiakirjoja, esimerkiksi luettelo viimeisen kuukauden tilauksista. Tämä on tietokoneen taulukko.Erillisellä taulukolla on oma yksilöllinen nimi.

Tietotyyppi - minkälaisia ​​tietoja voidaan tallentaa tiettyyn sarakkeeseen tai riviin. Se voi olla numeroita tai tietyn muotoista tekstiä.

Sarake ja rivi- Olemme kaikki käyttäneet laskentataulukoita, joissa on myös rivejä ja sarakkeita. Mikä tahansa relaatiotietokanta toimii taulukoiden kanssa samalla tavalla. Rivejä kutsutaan joskus tietueiksi.

pääavain- Jokaisella taulukon rivillä voi olla yksi tai useampi sarake sen yksilöimiseksi. Ilman ensisijaista avainta on erittäin vaikeaa päivittää, muokata ja poistaa haluttuja rivejä.

Mikä on SQL?

SQL(Englanti - strukturoitu kyselykieli) kehitettiin vain tietokantojen kanssa työskentelemiseen ja on tällä hetkellä standardi kaikille suosituille DBMS-järjestelmille. Kielen syntaksi koostuu pienestä määrästä operaattoreita ja on helppo oppia. Mutta ulkoisesta yksinkertaisuudesta huolimatta se mahdollistaa sql-kyselyjen luomisen monimutkaisia ​​​​toimintoja varten kaikenkokoisille tietokannoille.

Vuodesta 1992 lähtien on ollut yleisesti hyväksytty standardi nimeltä ANSI SQL. Se määrittelee operaattoreiden perussyntaksin ja toiminnot, ja sitä tukevat kaikki DBMS-markkinajohtajat, kuten ORACLE. On mahdotonta kattaa kielen kaikkia mahdollisuuksia yhdessä pienessä artikkelissa, joten tarkastelemme lyhyesti vain SQL-peruskyselyitä. Esimerkit osoittavat selvästi kielen yksinkertaisuuden ja mahdollisuudet:

  • tietokantojen ja taulukoiden luominen;
  • tietojen näytteenotto;
  • tietueiden lisääminen;
  • tietojen muuttaminen ja poistaminen.

SQL-tietotyypit

Kaikki tietokantataulukon sarakkeet tallentavat samantyyppisiä tietoja. SQL:n tietotyypit ovat samat kuin muissa ohjelmointikielissä.

Taulukoiden ja tietokantojen luominen

On kaksi tapaa luoda uusia tietokantoja, taulukoita ja muita kyselyitä SQL:ssä:

  • DBMS-konsolin kautta
  • Käyttämällä tietokantapalvelimen mukana toimitettuja interaktiivisia hallintatyökaluja.

Operaattori luo uuden tietokannan LUO TIETOKANTA<наименование базы данных>; . Kuten näet, syntaksi on yksinkertainen ja ytimekäs.

Luomme tietokannan sisällä taulukoita CREATE TABLE -käskyllä ​​seuraavilla parametreilla:

  • taulukon nimi
  • sarakkeiden nimet ja tietotyypit

Luodaan esimerkiksi hyödyketaulukko, jossa on seuraavat sarakkeet:

Luomme taulukon:

LUO PÖYTÄ Hyödyke

(commodity_id CHAR(15) NOT NULL,

vendor_id CHAR(15) NOT NULL,

tavaran_nimi CHAR(254) NULL,

commodity_price DECIMAL(8,2) NULL,

commodity_desc VARCHAR(1000) NULL);

Taulukossa on viisi saraketta. Nimen jälkeen tulee tietotyyppi, sarakkeet erotetaan pilkuilla. Sarakkeen arvo voi olla tyhjä (NULL) tai se on täytettävä (NOT NULL), ja tämä määritetään taulukkoa luotaessa.

Tietojen valitseminen taulukosta

Tietojen valintaoperaattori on yleisimmin käytetty SQL-kysely. Tietojen saamiseksi sinun on määritettävä, mitä haluamme valita tällaisesta taulukosta. Ensin yksinkertainen esimerkki:

VALITSE hyödykkeen_nimi Hyödykkeestä

SELECT-käskyn jälkeen määritämme sarakkeen nimen tietojen saamiseksi ja FROM määrittelee taulukon.

Kyselyn suorituksen tuloksena ovat kaikki taulukon rivit, joissa on Commodity_name-arvot siinä järjestyksessä, jossa ne on syötetty tietokantaan, eli. ilman lajittelua. Tuloksen järjestämiseen käytetään ylimääräistä ORDER BY -lauseketta.

Jos haluat tehdä kyselyitä useista kentistä, luettele ne pilkuilla eroteltuina, kuten seuraavassa esimerkissä:

SELECT hyödykkeen_tunnus, tavaran_nimi, hyödykkeen_hinta Hyödykkeestä

On mahdollista saada rivin kaikkien sarakkeiden arvo kyselyn tuloksena. Tätä varten käytetään "*"-merkkiä:

VALITSE * Hyödykkeestä

  • Lisäksi SELECT tukee:
  • Tietojen lajittelu (ORDER BY -lauseke)
  • Valitse olosuhteiden mukaan (WHERE)
  • Ryhmittelytermi (GROUP BY)

Rivin lisääminen

Rivin lisäämiseksi taulukkoon käytetään SQL-kyselyitä, joissa on INSERT-käsky. Lisääminen voidaan tehdä kolmella tavalla:

  • lisää uusi koko rivi;
  • osa merkkijonoa;
  • kyselyn tulokset.

Jos haluat lisätä täydellisen rivin, sinun on määritettävä taulukon nimi ja uuden rivin sarakkeiden (kenttien) arvot. Tässä on esimerkki:

INSERT INTO Hyödykearvot ("106", "50", "Coca-Cola", "1.68", "Ei alkoholia ,)

Esimerkki lisää uuden tuotteen taulukkoon. Arvot määritetään kunkin sarakkeen VALUES jälkeen. Jos sarakkeelle ei ole vastaavaa arvoa, on määritettävä NULL. Sarakkeet täytetään arvoilla taulukon luomisen yhteydessä määritetyssä järjestyksessä.

Jos lisäät vain osan rivistä, sinun on määritettävä sarakkeiden nimet, kuten esimerkissä:

INSERT INTO Hyödyke (tavaran_tunnus, toimittajan_tunnus, tavaran_nimi)

ARVOT("106 ", '50", "Coca Cola")

Kirjoitimme vain tuotteen tunnisteet, toimittajan ja sen nimen ja muut kentät jätimme tyhjiksi.

Lisätään kyselyn tuloksia

INSERT-komentoa käytetään ensisijaisesti rivien lisäämiseen, mutta sitä voidaan käyttää myös SELECT-käskyn tulosten lisäämiseen.

Muuta tietoja

Jos haluat muuttaa tietokantataulukon kenttien tietoja, sinun on käytettävä UPDATE-käskyä. Operaattoria voidaan käyttää kahdella tavalla:

  • Kaikki taulukon rivit päivitetään.
  • Vain tietylle riville.

PÄIVITYS koostuu kolmesta pääelementistä:

  • taulukko, johon on tarpeen tehdä muutoksia;
  • kenttien nimet ja niiden uudet arvot;
  • muutettavien rivien valintaehdot.

Harkitse esimerkkiä. Oletetaan, että tuotteen, jonka tunnus on 106, hinta on muuttunut, joten tämä rivi on päivitettävä. Kirjoitamme seuraavan operaattorin:

UPDATE Commodity SET commodity_price = "3,2" WHERE commodity_id = "106"

Määritimme taulukon nimen, meidän tapauksessamme Commodity, jossa päivitys suoritetaan, sitten SET:n jälkeen - sarakkeen uuden arvon ja löysimme halutun tietueen määrittämällä halutun ID-arvon kohdassa WHERE.

Jos haluat muuttaa useita sarakkeita, määritä useita sarake-arvopareja pilkuilla erotettuina SET-käskyn jälkeen. Katsotaanpa esimerkkiä, jossa tuotteen nimi ja hinta päivitetään:

PÄIVITYS Commodity SET commodity_name='Fanta', commodity_price = "3.2" WHERE commodity_id = "106"

Jos haluat poistaa sarakkeen tiedot, voit asettaa sen arvoksi NULL, jos taulukkorakenne sen sallii. On muistettava, että NULL on täsmälleen "ei"-arvo, ei nolla tekstin tai luvun muodossa. Poista tuotekuvaus:

UPDATE Commodity SET commodity_desc = NULL WHERE commodity_id = "106"

Rivien poistaminen

SQL-kyselyt taulukon rivien poistamiseksi suoritetaan DELETE-käskyllä. Käyttötapauksia on kaksi:

  • tietyt taulukon rivit poistetaan;
  • kaikki taulukon rivit poistetaan.

Esimerkki yhden rivin poistamisesta taulukosta:

DELETE FROM Commodity WHERE commodity_id = "106"

DELETE FROM -kohdan jälkeen määritämme sen taulukon nimen, josta rivit poistetaan. WHERE-lause sisältää ehdon, jonka mukaan rivit valitaan poistettaviksi. Esimerkissä poistamme tuoterivin, jonka ID=106. MISSIEN määrittäminen on erittäin tärkeää. tämän lausekkeen jättäminen pois poistaa kaikki taulukon rivit. Tämä koskee myös kenttien arvon muuttamista.

DELETE-käsky ei määritä sarakkeiden nimiä tai metamerkkejä. Se poistaa rivit kokonaan, mutta se ei voi poistaa yhtä saraketta.

SQL:n käyttö Microsoft Accessissa

Yleensä käytetään vuorovaikutteisesti taulukoiden, tietokantojen luomiseen, tietokannan tietojen hallintaan, muokkaamiseen, analysointiin ja SQL Access -kyselyjen toteuttamiseen kätevän interaktiivisen kyselyn suunnittelijan (Query Designer) avulla, jonka avulla voit rakentaa ja suorittaa välittömästi kaiken monimutkaisia ​​SQL-lauseita.

Palvelimen käyttötila on myös tuettu, jossa Access DBMS:ää voidaan käyttää SQL-kyselyjen generaattorina mihin tahansa ODBC-tietolähteeseen. Tämän ominaisuuden ansiosta Access-sovellukset voivat olla vuorovaikutuksessa minkä tahansa muodon kanssa.

SQL-laajennukset

Koska SQL-kyselyissä ei ole kaikkia proseduaalisten ohjelmointikielten ominaisuuksia, kuten silmukoita, haaroja jne., DBMS-toimittajat kehittävät oman versionsa SQL:stä edistyneillä ominaisuuksilla. Ensinnäkin tämä tukee tallennettuja proseduureja ja proseduurikielten vakiooperaattoreita.

Kielen yleisimmät murteet:

  • Oracle Database - PL/SQL
  • Interbase, Firebird - PSQL
  • Microsoft SQL Server - Transact-SQL
  • PostgreSQL - PL/pgSQL.

SQL verkkoon

MySQL DBMS:ää jaetaan GNU General Public License -lisenssillä. On kaupallinen lisenssi, joka mahdollistaa mukautetun moduulin kehittämisen. Se sisältyy kiinteänä osana Internet-palvelimien suosituimpiin kokoonpanoihin, kuten XAMPP, WAMP ja LAMP, ja se on suosituin DBMS sovellusten kehittämiseen Internetissä.

Sen on kehittänyt Sun Microsystems, ja sitä ylläpitää tällä hetkellä Oracle Corporation. Tukee jopa 64 teratavun tietokantoja, SQL:2003 syntaksistandardia, tietokantojen replikointia ja pilvipalveluita.

SQL- Strukturoitu kyselykieli.
Tässä katsauksessa tarkastelemme yleisimpiä SQL-kyselytyyppejä.
SQL-standardi on määritelty ANSI(American National Standards Institute).
SQL on erityisesti relaatiotietokantoihin tarkoitettu kieli.

SQL-jako:


DDL
(Tietojen määrittelykieli) - ANSI:n ns. Schema Description Language koostuu komennoista, jotka luovat objekteja (taulukoita, indeksejä, näkymiä ja niin edelleen) tietokantaan.
DML(Tietojen käsittelykieli) on joukko komentoja, jotka määrittävät, mitä arvoja taulukoissa on kulloinkin.
DCD(Tiedonhallinnan kieli) koostuu keinoista, jotka määrittävät, sallitaanko käyttäjän suorittaa tiettyjä toimintoja vai ei. Ne ovat osa DDL:ää ANSI:ssa. Älä unohda näitä nimiä. Nämä eivät ole eri kieliä, vaan SQL-komentojen osia, jotka on ryhmitelty funktionsa mukaan.

Tietotyypit:

SQL Server - Tietotyypit

Kuvaus

bigint (väli 8)

bigint (väli 8)

binääri(n)

binääri(ei myöskään kuva

merkki
(synonyymi hiiltyä)

kansallinen merkki tai ntext

luonteeltaan vaihteleva(synonyymi char vaihteleva varchar)

kansallinen luonne vaihtelee tai ntext

treffiaika

treffiaika

desimaali

hän on numeerinen

kaksinkertainen tarkkuus

kaksinkertainen tarkkuus

kokonaisluku (väli 4) (synonyymi: int)

kokonaisluku (väli 4)

kansallinen luonne(synonyymi: kansallinen luonne, nchar)

kansallinen luonne

Numeerinen(synonyymit: desimaali, joulukuu)

kansallinen luonne vaihtelee(synonyymit: kansallinen luonne vaihtelee, nvarchar)

kansallinen luonne vaihtelee

Pieni päivämäärä

treffiaika

smallint (väli 2)

smallint (väli 2)

Pienet rahat

sql_variant

Ei enää tuettu

Ntext
SQL Server 2005:stä alkaen sitä ei suositella käytettäväksi.

Aikaleima

Ei tueta

pikkuinen (väli 1)

pikkuinen (väli 1)

Yksilöllinen tunniste

yksilöllinen tunniste

varbinaarinen(n)

varbinaarinen(ei myöskään kuva

pieni päivämäärä

treffiaika

smallint (väli 2)

smallint (väli 2)

pientä rahaa

sql_variant

Ei tueta

aikaleima

Ei tueta

pikkuinen (väli 1)

pikkuinen (väli 1)

yksilöllinen tunniste

yksilöllinen tunniste

varbinaarinen(n)

varbinaarinen(ei myöskään kuva

Tietotyyppitaulukko SQL Server 2000:ssa

MIKÄ ON PYYNTÖ?

Pyyntö on komento, jonka annat tietokantaohjelmallesi. Kyselyt ovat osa DML-kieltä. Kaikki SQL:n kyselyt koostuvat yhdestä komennosta. Tämän komennon rakenne on petollisen yksinkertainen, koska sinun on laajennettava sitä erittäin monimutkaisten arvioiden ja tietojen käsittelyn suorittamiseksi.

SELECT-komento:

VALITSE"Valitse" on useimmin käytetty komento, sitä käytetään tietojen valitsemiseen taulukosta.
Kyselyn tyyppi SELECT:n avulla:

SELECT id, user_name, city, syntymäpäivä FROM user_base;

Tällainen kysely näyttää User_base-taulukosta kaikki SELECT-komennon jälkeen pilkulla määritettyjen sarakkeiden arvot. Voit myös näyttää kaikki sarakkeet yhdellä merkillä, * eli. SELECT * FROM user_base ; - tällainen kysely näyttää kaikki tiedot taulukosta.

SELECT komentorakenne:

SELECT (kyselyssä näytettävät pilkuilla erotetut sarakkeiden nimet) FROM (taulukon nimi tietokannassa)
on yksinkertaisin pyyntö. Tietojen poimimisen helpottamiseksi on lisäkomentoja (katso alla "Toiminnot")

DML-komennot:

Arvoja voidaan sijoittaa ja poistaa kentistä kolmella DML (Data Manipulation Language) -komennolla:
LISÄÄ(Lisää)
PÄIVITTÄÄ(päivitys, muutos),
POISTAA(poistetaan)

INSERT-komento:

INSERT INTO users_base (käyttäjänimi, kaupunki, syntymäpäivä) VALUES ('Aleksanteri', 'Rostov', '20.06.1991');

INSERT-komento tulee etuliitteellä INTO (in to - in), sitten suluissa on niiden sarakkeiden nimet, joihin meidän on lisättävä tietoja, sitten tulee komento VALUES (arvot) ja suluissa on arvot vuorotellen. (On ehdottomasti noudatettava arvojen järjestystä sarakkeiden kanssa, arvojen tulee olla samassa järjestyksessä kuin määrittämäsi sarakkeet).

UPDATE-komento:

UPDATE users_base SET user_name = 'Alex';

UPDATE-komento päivittää taulukon arvot. Ensin tulee itse UPDATE-komento, sitten taulukon nimi, SET-komennon jälkeen (set) sitten sarakkeen nimi ja sen arvo lainausmerkeissä (lainausmerkit laitetaan jos arvolla on merkkijonomuoto, jos se on numeerinen arvo ja sarake on ei ole sidottu vchar-tietotyyppiin tai muihin merkkijonotyyppeihin, lainausmerkit ovat merkityksettömiä.)

DELETE-komento:

DELETE FROM users_base WHERE user_name = 'Vasilja';

DELETE-komento poistaa koko rivin, määrittää rivin WHERE-kriteerillä (Where). Tässä tapauksessa tämä kysely poistaisi kaikki rivit, joissa user_name -sarakkeen arvo oli Vasili. Puhumme WHERE-kriteereistä ja muista hieman myöhemmin.

Kriteerit, toiminnot, ehdot jne. joka auttaa meitä SQL:ssä:

SELECT-komennon WHERE-lause ja muut DML-komennot, joiden avulla voit asettaa predikaatteja, joiden ehto voi olla joko tosi tai epätosi mille tahansa taulukon riville. Komento poimii taulukosta vain ne rivit, joille tällainen lause on tosi.
Esimerkki:
SELECT id, kaupunki, syntymäpäivä FROM user_base WHERE user_name = 'Alex';- tällainen kysely näyttää vain ne rivit, jotka vastaavat WHERE-ehtoa, eli kaikki rivit, joissa käyttäjän_nimi-sarakkeen arvo on Alex.

ORDER BY - ehto valittujen rivien lajittelulle. Siinä on 2 kriteeriä ASC ja DESC. ASC (lajitella A–Z tai 0–9)

DESC (vastakohta ASC:lle).
Esimerkki:
SELECT id, kaupunki, syntymäpäivä FROM user_base ORDER BY user_name ASC; - tällainen kysely näyttää arvot, jotka on lajiteltu user_name-sarakkeen mukaan A–Z (A–Z; 0–9)

Tätä ehtoa voidaan käyttää myös WHERE-lauseen yhteydessä.
Esimerkki:
SELECT id, kaupunki, syntymäpäivä FROM user_base WHERE user_name = 'Alex' ORDER BY id ASC;

DISTINCT (Distinct) on argumentti, joka tarjoaa sinulle tavan poistaa päällekkäiset arvot SELECT-lauseesta. Nuo. jos sinulla on toistuvia arvoja sarakkeessa, esimerkiksi käyttäjän_nimi, niin DISTINCT näyttää sinulle vain yhden, esimerkiksi sinulla on tietokannassa 2 henkilöä nimeltä Aleksei, niin DISTINCT-funktiota käyttävä kysely näyttää vain yhden arvon, joka se kohtaa ensimmäisenä...
Esimerkki:
SELECT DISTINCT user_name FROM user_base;- tällainen kysely näyttää kaikkien tietueiden arvot user_name-sarakkeessa, mutta niitä ei toisteta, ts. jos sinulla oli ääretön määrä päällekkäisiä arvoja, niitä ei näytetä...

JA - ottaa kaksi Boolen arvoa (muodossa A JA B) argumenteiksi ja arvioi ne tosi vastaan ​​nähdäkseen, ovatko ne molemmat tosia.
Esimerkki:
SELECT * FROM users_base WHERE city = 'Rostov' AND user_name = 'Aleksanteri';- näyttää kaikki arvot taulukosta, jossa kaupungin nimi esiintyy yhdellä rivillä (tässä tapauksessa Rostov ja käyttäjänimi Alexander.

TAI - ottaa kaksi Boolen arvoa (muodossa A TAI B) argumenteiksi ja arvioi, onko toinen niistä tosi.

SELECT * FROM users_base WHERE city = 'Rostov' OR user_name = 'Aleksanteri';- näyttää kaikki arvot taulukosta, jossa rivi sisältää Rostovin kaupungin nimen tai käyttäjätunnuksen Alexander.

NOT - ottaa yhden Boolen (NOT A-muodossa) argumenteiksi ja muuttaa sen arvon epätosi arvosta tosi tai tosi epätosi.
SELECT * FROM users_base WHERE city = 'Rostov' OR NOT user_name = 'Aleksanteri';- näyttää kaikki arvot taulukosta, jossa Rostovin kaupungin nimi esiintyy yhdellä rivillä tai käyttäjänimi ei ole täsmälleen Alexander.

IN - määrittää joukon arvoja, joihin annettu arvo voidaan sisällyttää tai ei.
SELECT * FROM users_base WHERE city IN ('Vladivostok', 'Rostov');- tällainen kysely näyttää kaikki arvot taulukosta, jotka sisältävät kaupunkisarakkeessa määritettyjen kaupunkien nimet

Välillä - samanlainen kuin IN-operaattori. Toisin kuin määrittäminen joukon numeroilla, kuten IN, BETWEEN määrittää alueen, jonka arvojen on pienennettävä, jotta predikaatti tulee tosi.
SELECT * FROM user_base WHERE id BETWEEN 1 JA 10;- näyttää kaikki taulukon arvot, jotka ovat id-sarakkeessa välillä 1-10

COUNT - tuottaa rivinumerot tai ei-NULL-arvot kentille, jotka kysely on valinnut.
SELECT COUNT (*) FROM users_base ;- näyttää rivien lukumäärän annetussa taulukossa.
VALITSE COUNT (ERÄLLÄ käyttäjän_nimi) käyttäjien_kannasta ;- näyttää rivien määrän käyttäjätunnuksilla (ei toistu)

SUMMA – Tuottaa kaikkien valitun kentän aritmeettisen summan.
SELECT SUM (id) FROM user_base ;- näyttää id-sarakkeen kaikkien rivien arvojen summan.

AVG - laskee kaikkien valitun kentän keskiarvon.
SELECT AVG (id) FROM user_base ;- tulostaa id-sarakkeen kaikkien valittujen arvojen keskiarvon

MAX – tuottaa suurimman kaikista valituista arvoista annetussa kentässä.

MIN – tuottaa pienimmän kaikista valituista arvoista annetulle kentälle.

Taulukon luominen:

CREATE TABLE user_base(id kokonaisluku, käyttäjänimen teksti, kaupunkiteksti, syntymäpäivä päivämääräaika);- tällaisen komennon suorittaminen johtaa taulukon luomiseen, jonka mukaan annoin esimerkkejä ... Kaikki on täällä yksinkertaista, kirjoitamme CREATE TABLE -komennon, sitten luotavan taulukon nimi, sitten suluissa, pilkuilla erotettuna sarakkeiden nimet ja niiden tietotyypit. Tämä on tavallinen tapa luoda taulukko SQL:ssä. Annan nyt esimerkin taulukoiden luomisesta SQL Server 2005:ssä:

ASETA ANSI_NULLS PÄÄLLE
MENNÄ
ASETA QUOTED_IDENTIFIER PÄÄLLE
MENNÄ
JOS EI OLE OLEMASSA (SELECT * FROM sys.objects WHERE objektin_id = OBJECT_ID(N".") JA kirjoita (N"U"))
ALKAA
LUO TAULUKKO .(

EI TYHJÄ,
EI TYHJÄ,
EI TYHJÄ,
ENSISIJAINEN AVAIN KLUSTERETTU
ASC


LOPPU
MENNÄ
ASETA ANSI_NULLS PÄÄLLE
MENNÄ
ASETA QUOTED_IDENTIFIER PÄÄLLE
MENNÄ
JOS EI OLE OLEMASSA (SELECT * FROM sys.objects WHERE objektin_id = OBJECT_ID(N".") JA kirjoita (N"U"))
ALKAA
LUO TAULUKKO .(
IDENTITEETTI(1,1) EI NOLLA,
TYHJÄ,
TYHJÄ,
ENSISIJAINEN AVAIN KLUSTERETTU
ASC
)WITH(IGNORE_DUP_KEY=OFF) PÄÄLLÄ
) PÄÄLLÄ TEXTIMAGE_ON
LOPPU
MENNÄ
ASETA ANSI_NULLS PÄÄLLE
MENNÄ
ASETA QUOTED_IDENTIFIER PÄÄLLE
MENNÄ
JOS EI OLE OLEMASSA (SELECT * FROM sys.objects WHERE objektin_id = OBJECT_ID(N".") JA kirjoita (N"U"))
ALKAA
LUO TAULUKKO .(
IDENTITEETTI(1,1) EI NOLLA,
TYHJÄ,
TYHJÄ,
ENSISIJAINEN AVAIN KLUSTERETTU
ASC
)WITH(IGNORE_DUP_KEY=OFF) PÄÄLLÄ
) PÄÄLLÄ
LOPPU

Syntaksi SQL Server 2005:ssä on toinen aihe, halusin vain näyttää, että kuvailin SQL-ohjelmoinnin perusteet, voit saavuttaa korkeuksia itse tietäen perusteet.

Jos sinulla on kysyttävää tästä aiheesta, lähetä minulle sähköpostia.