sql select language -operaattori on suunniteltu. SQL - lauseet

Kotiin / Kiintolevyt

SQL (Structured Query Language) on yleinen tietokonekieli, jota käytetään tietojen luomiseen, muokkaamiseen ja hallintaan relaatiotietokantoissa. SQL-kieli perustuu relaatioalgebraan ja on kokoelma operaattoreita.

Operaattoriryhmiä on 4. Tarkastellaanpa joukkoa tiedonkäsittelyoperaattoreita (Data Manipulation Language, DML, SQL DML)

Tietojen valinta

Tietojen valinta on yleisin SQL:llä suoritettava toimenpide. SELECT-lause on yksi tämän kielen tärkeimmistä käskyistä, jota käytetään tietojen valitsemiseen. Tämän operaattorin syntaksi on seuraava:

VALITSE sarake FROM-taulukosta

SELECT-lauseiden tulee sisältää sanat SELECT ja FROM; muut avainsanat ovat valinnaisia.

SELECT-avainsanaa seuraa tiedot siitä, mitkä kentät sisällytetään tuloksena olevaan tietojoukkoon. Asteriski (*) tarkoittaa kaikkia taulukon kenttiä, esimerkiksi:

Valitse yksi sarake käyttämällä seuraavaa syntaksia:

VALITSE Yritys

Esimerkki useiden sarakkeiden valitsemisesta näyttää tältä:

VALITSE Yritys,Puhelin,Mail

Voit määrittää niiden taulukoiden nimet, joista tietueet valitaan, käyttämällä FROM-avainsanaa, esimerkiksi:

VALITSE * FROM Asiakkaat

Tämä kysely palauttaa kaikki Asiakkaat-taulukon kentät.

Voit käyttää WHERE-lausetta (valinnainen) suodattamaan SELECT-käskyn palauttamat tulokset

SELECT * FROM Tuotteet WHERE Kategoria = 4

Voit käyttää erilaisia ​​lausekkeita WHERE-lauseessa,

WHERE lauseke1 [(JA | OR) lauseke2 ...]

Esimerkiksi:

SELECT * FROM Tuotteet WHERE Kategoria = 2 AND Postavshik > 10

SELECT Nimi, hinta FROM Tuotteet WHERE Kategoria= 3 TAI Hinta< 50

Voit käyttää seuraavia operaattoreita:

< Меньше

<= Меньше или равно

<>Ei tasa-arvoista

> Lisää

>= Suurempi tai yhtä suuri kuin

ORDER BY -lausetta (valinnainen) käytetään lajittelemaan tuloksena oleva tietojoukko yhden tai useamman sarakkeen mukaan. Lajittelujärjestyksen määrittämiseen käytetään avainsanoja ASC (nouseva) tai DESC (laskeva). Oletuksena tiedot lajitellaan nousevaan järjestykseen.

Tietojen muokkaus

Tietojen noutamisen lisäksi SQL:llä voidaan päivittää ja poistaa tietoja, kopioida tietueita muihin taulukoihin ja suorittaa muita toimintoja. Alla tarkastellaan UPDATE-, DELETE- ja INSERT-käskyjä, joita käytetään joidenkin näiden ongelmien ratkaisemiseen.

UPDATE lausunto

Jos haluat muuttaa arvoja taulukon yhdessä tai useammassa sarakkeessa, käytä UPDATE-käskyä. Tämän operaattorin syntaksi on:

PÄIVITYStaulukko SET sarake1 = lauseke1 WHERE-ehdot

SET-lauseen lauseke voi olla vakio tai laskutoimituksen tulos. Voit esimerkiksi nostaa kaikkien alle 10 dollaria maksavien tuotteiden hintoja suorittamalla seuraavan kyselyn:

PÄIVITYS Tuotteet SET Hinta = Hinta * 1.1 WHERE Hinta< 10

POISTA lausunto

Rivien poistamiseen taulukoista tulee käyttää DELETE-operaattoria, jonka syntaksi on:

POISTA taulukosta WHERE -kriteerit

Poista kaikki tuotteet, joiden hinta on alle 100:

POISTA tuotteista WHERE Hinta< 100

OperaattoriLISÄÄ

Tietueiden lisäämiseen taulukoihin tulee käyttää INSERT-käskyä, jonka syntaksi on:

INSERT INTO -taulukko ( ARVOT (lauseke [, ...])

Voit esimerkiksi lisätä uuden asiakkaan Asiakkaat-taulukkoon käyttämällä seuraavaa kyselyä:

INSERT INTO Asiakkaiden (CustomerID, CompanyName) ARVOT ('XYZ', 'XYZ Deli')

Kyselykielellä SQL sillä on merkittävä paikka SELECT-lause, koska käytämme sitä valinnan tekemiseen tietokannassa. Tässä artikkelissa tarkastellaan tämän erittäin tärkeän SQL-lauseen perusteita.

Internetissä on monia erilaisia ​​​​artikkeleita, kirjoja ja opetusohjelmia SQL:stä, mutta ne ovat kaikki vaikeita henkilölle, joka ei ole koskaan kuullut SQL:stä tai ehkä jopa ohjelmoinnista yleensä, ja siksi hänen on vaikea tutkia kaikkia näitä lähteitä. . Tässä yritän selittää yhden operaattorin perusasiat menemättä syvällisyyteen ( Tämä tekee oppimisesta vaikeaa, että he siirtyvät suoraan perusteista monimutkaisiin kyselyihin), joten sinun on ensin opittava perusasiat ja siirryttävä sitten monimutkaisempiin, mikä tekee SQL-kielen oppimisesta helpompaa. Tämä artikkeli on täydellinen aloittelijoille, jotka haluavat oppia kirjoittamaan yksinkertaista SQL-kyselyt datanäytteenottoa varten.

Mikä on SQL-kieli ja SELECT-käsky

SQL on kyselykieli, jota käytetään tietojen käsittelemiseen (hallintaan) relaatiotietokantoissa. Se on laajalti suosittu ja siksi jokaisen itseään kunnioittavan IT-henkilön tulisi osata kielen perusteet, sillä lähes jokaisella yrityksellä on tietokannat.

VALITSE– SQL-kielioperaattori, kuuluu tietojenkäsittelyoperaattoreiden ryhmään ( Data Manipulation Language, DML) ja se toimii tietojen hakemiseen tietokannasta.

Huom! SQL-kielen ja tietokantojen oppimiseen on olemassa erityisiä ilmaisia ​​suuria DBMS-versioita, esim. SQL Server Microsoftilla on Express-versio. Voit lukea tämän DBMS:n asentamisesta materiaalista - Microsoft SQL Server 2016 Expressin asennuksen kuvaus.

Tässä on yksinkertaisin esimerkki SELECT-käskyn käytöstä.

VALITSE * taulukosta

  • * — näytä kaikki tiedot;
  • FROM - lähteestä;
  • Taulukko - lähteen nimi ( meidän tapauksessamme pöytä).

Käytännössä emme kuitenkaan tarvitse kaikkia taulukon tietoja, vaan joskus vain joitain sarakkeita, ilmoitamme yksinkertaisesti vaaditun sarakkeen nimen * (; tai kaiuttimet), Esimerkiksi:

VALITSE hinta taulukosta

jossa Hinta on sarakkeen nimi.

Huom! Käytämme esimerkkinä yksinkertaista taulukkoa, jossa luetellaan tietokonemallit, niiden hinnat ja nimet.

Jos haluat määrittää useita sarakkeita, luettele ne pilkuilla erotettuna esimerkiksi SELECT-käskyn jälkeen

VALITSE hinta, nimi, malli taulukosta

jossa hinta, nimi, malli ovat taulukon sarakkeita.

Valintaehto – WHERE-lauseke

Otantaprosessin aikana joudumme melko usein suodattamaan tietoja tietyn ehdon mukaan, esim. ei kaikkia tietoja, vaan vain ne, jotka täyttävät SELECT-konstruktissa olevan ehdon, voit käyttää operaattoria tähän JOSSA.

VALITSE hinta taulukosta WHERE hinta > 100

missä, MISSÄ on ehto, ts. näytämme vain rivejä, jotka vastaavat ehtoamme ( hinta yli 100).

Vertailuoperaattorit SQL:ssä

  • “>” – enemmän kuin jotain;
  • «<» – меньше чего-нибудь;
  • "=" – yhtä suuri;
  • «<>» – ei tasa-arvoinen;
  • “>=” – suurempi tai yhtä suuri kuin;
  • «<=» – меньше или равно.

Voit myös määrittää ehtoon avainsanan VÄLILLÄ, eli kuuluuko arvo esimerkiksi tietylle alueelle vai ei

VALITSE hinta taulukosta MISSÄ hinta 400-600 VÄLILLÄ

jossa osoitamme, että hinnan tulee olla välillä 400–600.

Voit käyttää predikaattia tarkistaaksesi, sisältyykö testattavan lausekkeen arvo tiettyyn arvojoukkoon IN.

VALITSE hinta taulukosta WHERE hinta (400, 600)

IN tässä tapauksessa Haluamme vain saada hinnan, jonka hinta on 400 ja 600.

Jos tarvitsemme vain yksilöllisiä lähdemerkkijonoja, voimme määrittää avainsanan ERITTÄVÄ, Esimerkiksi

SELECT DISTINCT hinta FROM taulukosta WHERE hinta > 100

Huom! SQL-kieli ei erota kirjainkoosta. Kyselyt voidaan kirjoittaa joko yhdelle riville tai jakaa useisiin. Esimerkiksi seuraavat kaksi kyselyä ovat täsmälleen samat.

VALITSE hinta taulukosta

Valitse hinta taulukosta

Lajittelu TILAA

Hyvin usein on tarpeen lajitella kyselyn tulos tietyn kentän mukaan ( sarakkeessa). Tätä varten ilmoitamme pyynnön jälkeen rakentamisen TILAA ja nuo kentät ( ehkä muutama pilkuilla erotettuna), jonka mukaan haluat lajitella.

VALITSE hinta Pöydästä ORDER BY hinnan DESC

Tämä on esimerkki lajittelusta laskevassa järjestyksessä, mutta voit myös lajitella nousevaan järjestykseen DESC:n sijasta, mutta yleensä emme kirjoita sitä niin, koska nouseva lajittelu on oletusarvo.

Aggregointifunktiot SQL:ssä

SQL:llä on erittäin hyödyllisiä niin sanottuja aggregointitoimintoja, nimittäin:

  • LASKEA— määritetyn sarakkeen arvojen lukumäärä;
  • SUMMA— määritetyn sarakkeen arvojen summa;
  • AVG— määritetyn sarakkeen keskiarvo;
  • MIN— vähimmäisarvo määritellyssä sarakkeessa;
  • MAX— määritetyn sarakkeen enimmäisarvo.

Esimerkiksi meidän on saatava tietokoneen keskihinta, maksimi ja minimi, tätä varten voimme kirjoittaa seuraavan kyselyn

VALITSE AVG(hinta), MAX(hinta), MIN(hinta) taulukosta

GROUP BY

Voit ryhmitellä arvot sarakkeiden mukaan, esimerkiksi meidän on selvitettävä kunkin tietokonemallin keskihinta, tässä tapauksessa pyyntö on tällainen

SELECT malli, AVG (hinta) AS AVGPhinta taulukosta GROUP BY malli

Jos huomasit, käytin tehtävää täällä " salanimi» jotta tämän pyynnön tulokset ymmärtäisivät paremmin, ts. kirjoita sarakkeen jälkeen AS ja nimi, jonka haluat näkyvän tuloksissa.

Aivan kuten käytettäessä ehtoja yksittäisissä sarakkeissa, voit myös määrittää ehdon koko ryhmälle funktiolla OTTAA. Meidän on esimerkiksi määritettävä tietokoneen enimmäishinta ryhmiteltynä näiden tietokoneiden mallien mukaan, mutta jonka enimmäishinta on alle 500.

VALITSE malli, MAX(hinta) FROM taulukosta GROUP BY mallin mukaan HAVING MAX(hinta)< 500

Tässä tapauksessa pyyntömme antaa meille mallin mukaan ryhmiteltyjä tietokoneita, joiden enimmäishinta on alle 500.

Huom! Voit lukea lisää ryhmittelystä SQL:ssä tästä materiaalista.

NULL-arvo SQL:ssä

SQL:ssä on sellainen arvo kuin NULL. Itse asiassa NULL on arvon puuttuminen ( ne. tyhjä). Jos haluat näyttää kaikki rivit, jotka sisältävät tällaisen arvon ( esimerkiksi emme ole vielä määrittäneet hintaa jollekin tietokoneelle) voit käyttää seuraavaa ehtoa.

SELECT * FROM taulukosta, jossa hinta on tyhjä

Tämä tarkoittaa, että etsitään kaikki rivit, joilla ei ole hintakentän arvoa.

Yksinkertaistettu SELECT-lauseen syntaksi

VALITSE<Список полей>tai * , ...] , ...]

Huom! Jos olet kiinnostunut T-SQL-kielestä, suosittelen lukemaan kirjani "T-SQL Programmer's Way", jossa kerron yksityiskohtaisesti, monien esimerkkien kera Transact-SQL-kielen perusteista erityisesti aloittelijoille.

Siinä kaikki tälle päivälle, olemme tarkastelleet pientä osaa SQL-kielestä, nimittäin SELECT-käskyä. Onnea!

Tieteenala: Tietokannat

KielioperaattoritSQL

SQL-kieli sisältää eri luokkien operaattoreita. Mikä tahansa SQL-käsky koostuu varatuista sanoista ja sanoista, jotka käyttäjä on määritellyt vahvistettujen syntaksisääntöjen mukaisesti. Kuten monissa ohjelmointikielissä, useimmat kielen operaattorikomponentit eivät välitä kirjainkoosta. Poikkeuksena tähän sääntöön ovat tavalliseen tapaan merkkidata, jota määritettäessä on tarpeen muistaa tapaus ja käyttää sitä, joka on tarpeen tietojen esittämiseen.

Operaattoreiden kirjoittamiseen kielellä on otettu käyttöön vapaa muoto, joka mahdollistaa sisennysten ja tasausten avulla SQL-ohjelman luettavamman ilmeen.

    lauseen jokaisen lauseen on aloitettava uudelta riviltä;

    jokaisen lauseen alun on oltava samassa linjassa operaattorin muiden lauseiden alun kanssa;

    jokaisen lauseen osan tulee alkaa uudelta riviltä, ​​jossa on sisennys suhteessa koko lauseen alkuun, mikä mahdollistaa alempien osien korostamisen;

    Jotkut käytännöt koskevat kirjoittamisoperaattoreita:

    isoja kirjaimia käytetään varattujen sanojen kirjoittamiseen;

    Pieniä kirjaimia käytetään käyttäjän määrittämien sanojen kirjoittamiseen;

    pystypalkki "|" osoittaa, että on valittava yksi useista arvoista;

    kiharat henkselit määrittelevät vaaditun elementin;

    hakasulkeet määrittelevät valinnaisen elementin;

    Ellipsiä "..." käytetään osoittamaan valinnainen mahdollisuus toistaa rakenne nollasta useaan kertaan.

Tietojen määrittelyoperaattoreita (taulukko 1) käytetään kuvaamaan käytettävien tietojen rakenteita. Tämä luokka sisältää seuraavat operaattorit: luo taulukko, pudota taulukko, muuta taulukkoa, luo näkymää, ALTER VIEW, DROP VIEW.

Taulukko 1 . Tietojen määritelmäoperaattorit

Operaattori Selitys

luo taulukko Luo taulukko

DROP taulukko Poista taulukko

muuta pöytä Vaihda pöytä

LUO NÄKYMÄ Luo näkymä

muuta näkymää Vaihda näkymää

pudotusnäkymä Poista näkymä

Tietojenkäsittelyoperaattorit, jotka muodostavat seuraavan operaattoriluokan, on suunniteltu täyttämään taulukoita tiedoilla ja päivittämään niihin ladattuja tietoja. Seuraavat operaattorit kuuluvat tähän luokkaan: poista, lisää, päivitä (taulukko 2).

Taulukko 2 . Tietojenkäsittelyoperaattorit

OperaattoriSelitys

Poista Poistaa yhden tai useamman ehtoja vastaavan rivin

suodatus, perustaulukosta

INSERT Lisää yhden rivin perustaulukkoon

päivitys Päivittää yhden tai useamman sarakkeen arvot yhdessä tai

useita rivejä, jotka vastaavat suodatusehtoja

Tietojen hakemiseen tietokannasta käytetään kyselykieltä, jota SQL:ssä edustaa yksi valintakäsky (taulukko 3).

Taulukko 3. Kyselyn kieli

Operaattori Selitys

valitse Valitsee rivit; operaattori, jonka avulla voit luoda resultantin

kyselyä vastaava taulukko

Mainittujen operaattoreiden luokkien lisäksi, joiden tarkoitusta ei ole vaikea kuvitella taulukoiden selitykset lukemisen jälkeen, on tarpeen korostaa vielä kaksi: tapahtumanhallintaoperaattorit (taulukko 4) ja tiedonhallintatyökalut (taulukko 5).

Taulukko 4. Tapahtuman hallinta

Käyttäjän selitys

commit Suorita tapahtuma loppuun - suorita tietojen käsittely,

yhdistetään kaupaksi

peruutus Peruuta tapahtuma - kumoa suorituksen aikana tehdyt muutokset

tietokannan tila, merkitse se, jotta voit palata siihen myöhemmin

Taulukko 5 . Tietojen hallinta

Käyttäjän selitys

ALTER DATABASE Muuta tietokannan perusobjektien joukkoa koskevia rajoituksia

koko tietokanta

ALTER DBAREA Muuta aiemmin luotua tallennusaluetta

ALTER PASSWORD Vaihda koko tietokannan salasana

LUO TIETOKANTA Luo uusi tietokanta

LUO DBAREA Luo uusi tallennusalue ja aseta se käytettäväksi

DROP DATABASE Pudota olemassa oleva tietokanta

DROP DBAREA Poista olemassa oleva tallennusalue (jos se ei tällä hetkellä sisällä

aktiiviset tiedot sijaitsevat)

MYÖNTÄ Myönnä käyttöoikeudet useisiin toimintoihin tietyssä tietokantaobjektissa

REVOKE Estä pääsyoikeudet johonkin kohteeseen tai joihinkin toimintoihin

esine

Kaupallisissa DBMS-järjestelmissä perusoperaattorien joukkoa on laajennettu. Useimmat DBMS-järjestelmät sisältävät operaattoreita indeksin määrittämiseksi ja poistamiseksi tallennettujen proseduurien suorittamista varten ja operaattoreita liipaisujen määrittämiseksi.

Tähän kieleen tutustuminen on tapana aloittaa ottamalla huomioon kyselykielen ominaisuudet, jota SQL-kielessä edustaa yksi valintalause, koska tämä tehokas operaattori on luonnollisesti myös monimutkaisin. Lisäksi tulevaisuudessa on mielenkiintoista nähdä, miten sitä voidaan käyttää yhdessä tietojenkäsittelyoperaattoreiden kanssa.

    ValintaoperaattoriVALITSE . Tiedustelujen luominen tietokantaan

Select-lauseen tarkoitus on valita ja näyttää tietoja yhdestä tai useammasta tietokantataulukosta. Tämä erittäin tehokas, yleisimmin käytetty operaattori toteuttaa kaikki relaatioalgebran toiminnot. Sama pyyntö voidaan toteuttaa useilla tavoilla, jotka voivat vaihdella huomattavasti suoritusajassa.

Valitse lausunnon muoto:

VALITSE *|<список полей>FROM<список таблиц>

Määritettyä lauseiden järjestystä Select-lauseessa ei voi muuttaa, mutta kaikkia sen osia ei vaadita. Vain valitse ja fraasit ovat pakollisia lausekkeita. Kaikkia muita lausunnon osia voidaan käyttää ohjelmoijan harkinnan mukaan. Selitys:

□ Lause valitse:

Avainsanan läsnäolo kaikki(oletus) tarkoittaa, että tuloksena oleva taulukko sisältää kaikki rivit, jotka täyttävät kyselyn ehdot, mikä voi johtaa kaksoisrivien ilmestymiseen tuloksena olevaan taulukkoon;

avainsana erottuva Tarkoituksena on saattaa taulukko relaatioteorian periaatteiden mukaiseksi, kun oletetaan, ettei riviä ole päällekkäin;

Symboli " * " määrittelee hyvin yleisen tilanteen, jossa tulosjoukko sisältää kaikki kyselyn lähdetaulukon sarakkeet.

□ Lauseessa alkaen luettelo lähdekyselytaulukoista on määritetty.

□ Lauseessa jossa tulosrivien valinnan ehdot tai lähdetaulukoiden rivien yhdistämisen ehdot määritetään, samoin kuin ehdollinen liitosoperaatio relaatioalgebrassa. Seuraavia predikaatteja voidaan käyttää valintaehtoina:

Vertailut "= ,<>, >, <, >=, <=" - для сравнения результатов вы­числения двух выражений; более сложные выражения строятся с по­мощью логических операторов AND, OR, NOT; значения выражений вычисляются в порядке, который определяется приоритетом исполь­зуемых операторов и наличием скобок в выражении;

välilläAjaIN- predikaatti on tosi, kun lausekkeen laskettu arvo osuu määritetylle alueelle (predikaatti eivälilläajaIN tosi, kun vertailuarvo ei ole määritellyn välin sisällä);

sisään- predikaatti on tosi, kun verrattava arvo sisältyy annettujen arvojen joukkoon; tässä tapauksessa arvojoukko voidaan määrittää yksinkertaisella luettelolla tai sisäänrakennetulla alikyselyllä (predikaatti ei sisällä on tosi, kun verrattava arvo ei sisälly annettuun joukkoon);

pitää Ja eipitää- predikaatit, joiden merkitys on päinvastainen, edellyttävät mallin määrittämistä, johon annettua arvoa verrataan; samanlainen predikaatti on tosi, jos verrattava arvo vastaa mallia, ja epätosi muuten;

ONtyhjä- predikaatti, jota käytetään tunnistamaan jonkin attribuutin arvon yhtäläisyys määrittelemättömän arvon kanssa:

    <имя атрибута> ONtyhjä- ottaa arvon tosi, jos tämän rivin määritetyllä attribuutilla on määrittelemätön arvo ja arvon false, muuten;

    <имя атрибута> ONEItyhjä- kaikki tapahtuu toisin päin.

olemassa Ja eiolemassa, jota käytetään sisäisissä alikyselyissä.

□ Lauseessa ryhmäkirjoittaja ryhmittelykenttien luettelo on määritetty.

□ Lauseessa joilla on predikaatit-ehdot on määritelty, jotka määrätään jokaiselle ryhmälle.

□ Lauseessa tilatakirjoittaja määritetään tulosten järjestyskenttien luettelo, toisin sanoen luettelo kentistä, joka määrittää lajittelujärjestyksen tuloksena olevassa taulukossa.

SQL-standardi määrittelee NULL-arvon käsitteen, mikä edellytti kolmiarvoisen logiikan käyttöä, jossa kaikki loogiset toiminnot suoritetaan alla olevan totuustaulukon (Taulukko 6) mukaisesti.

Taulukko 6 . Totuustaulukko

A JA B

TRUE

1.1. Yksinkertaiset kyselyt

Pyyntö 1

Näytä tiedot yliopiston laitoksista.

Tämä tehtävä perustuu tietojen valitsemiseen ja näyttämiseen yhdestä taulukosta, ja kaikki sen rivit ja sarakkeet tulostetaan:

VALITSE * osastolta

Tällaisen kyselyn suorittamisen tuloksena tulee taulukko, joka sisältää tiedot yliopiston kaikista laitoksista:

Kod kaf

Nimi kaf

Nom_telef

Nom_Auditoria

Col_sotr

Ivanov T.M.

Yleinen matematiikka

Makhov K L.

Ross L.T.

Firsov S.S.

Soveltava matematiikka

Lyakhova I.T.

Pyyntö 2

Näytä yliopiston laitosten puhelinnumerot.

Tällaisen kyselyn tuloksen tulee sisältää vain kaksi saraketta: Nimi_ kaf Ja Nim_ telef, joten itse pyynnön pitäisi näyttää tältä:

SELECT Name_kaf, Nom_telef FROM kafedra

Tuloksena oleva taulukko:

Nimikaf Nomjelef

Fyysikot 23-34-24

Yleinen matematiikka 23-65-43

Tarinat 23-78-72

Kaaviot 23-99-77

Soveltava matematiikka 23-66-62

Yllä luoduissa kyselyissä oli tarpeen näyttää kaikki from-lauseessa määritetyn taulukon rivit. Jos valittaessa joudut rajoittamaan näytettävien rivien määrää jonkin ehdon mukaisesti, tämä voidaan saavuttaa käyttämällä kyselyssä where-lausetta. Voit sisällyttää yhden tai useamman rivinvalintaehdon where-lauseeseen.

Pyyntö 3

Näytä tiedot grafiikan laitoksesta.

SELECT * FROM kafedra WHERE Name_kaf = "Kaaviot"

Vastaus tällaiseen pyyntöön sisältää vain yhden rivin:

Kod.kaf Name_kaf NomjelefNom_Auditoria Col_sotr Zav_kaf

004 Kaaviot 23-99-77 385 18 Firsov S.S.

Pyyntö 4

Näytä tiedot ensimmäisessä kerroksessa sijaitsevista yliopiston osastoista ottaen huomioon, että ensimmäisessä kerroksessa on luokkahuoneita 1-99.

Pyyntö näyttää tältä:

SELECT * FROM kafedra WHERE Nom_Auditoria 1-99

Kyselyn tulos:

KodjcafNimi_kafNorn lelef Norn Audit oria Coi_sotr Zavkaf

002 Yleinen matematiikka 23-65-43 003 22 Makhov K.L.

matemaatikot

Yleensä tuloksena olevan taulukon rivit näytetään jollain tavalla järjestämättömässä tilassa. Tällaisen materiaalin katseleminen ja analysointi ei ole aina kätevää. Jos haluat lajitella rivit sarakkeen mukaan, käytä järjestystä lauseen mukaan. Se sisältää pilkuilla erotetun luettelon sarakkeiden nimistä, joiden mukaan haluat järjestää tulostiedot. Tämän lauseen tulee aina näkyä viimeisenä select-lauseessa, ja kun se on olemassa, on mahdollista lajitella rivit nousevien (nouseva) tai laskevien (desc) arvojen mukaan määritetyssä sarakkeessa tai määritettyjen sarakkeiden yhdistelmässä riippumatta siitä, ovatko nämä sarakkeet ovatko ne mukana tuloksena olevassa taulukossa vai eivät.

Pyyntö 5

Näytä tiedot yliopiston laitoksista lajiteltuina sarakkeinaNimi_ kafnousevassa järjestyksessä.

Pyyntö näyttää tältä:

SELECT * FROM cafedra TILAA Name_caf ASC

Tämän kyselyn tulos:

Kod_kaf Name_kaf Nomjelef Nom_Auditoria Col_sotr Zav kaf

004 Grafiikka 23-E9-77 385 18 Firsov S.S.

003 Tarinat 23-78-72 465 16 Ross L.T.

002 Yleinen ma-23-65-43 003 22 Makhov K.L.

aiheita

005 Soveltuva 23-66-62 028 24 Lyakhova I.T.

matemaatikot

001 Fyysikot 23-34-24 132 25 Ivanov T.M.

Selvyyden parantamiseksi on usein hyödyllistä lajitella näytettävät tiedot useisiin sarakkeisiin. Tätä varten lajittelusarakkeiden nimet on lueteltava pilkuilla erotettuina lausekohtaisessa järjestyksessä. Tässä tapauksessa tulostaulukko sisältää rivit, jotka on järjestetty lausekohtaisessa järjestyksessä määritellyn ensimmäisen sarakkeen mukaan, ja rivit, joilla on samat arvot tässä sarakkeessa, järjestetään toisen sarakkeen arvojen jne. mukaan vasemmalta puolelta. oikealle.

SQL-kielen perusta muodostuu operaattoreista, jotka on ehdollisesti jaettu useisiin ryhmiin niiden suorittamien toimintojen mukaan.

Seuraavat lauseryhmät voidaan erottaa (kaikkia SQL-käskyjä ei ole luettelossa):

DDL (Data Definition Language) -lauseet - käskyt tietokantaobjektien määrittämiseen

· CREATE SCHEMA - luo tietokantaskeema

· DROP SHEMA - poista tietokantaskeema

· CREATE TABLE - luo taulukko

ALTER TABLE - vaihda taulukkoa

· Drop TABLE - poista taulukko

· CREATE DOMAIN - luo verkkotunnus

ALTER DOMAIN - vaihda verkkotunnus

· DROP DOMAIN - poista verkkotunnus

· CREATE COLLATION - luo sarja

· DROP COLLATION - poista sarja

· LUO NÄKYMÄ - luo näkymä

· PUDOTA NÄKYMÄ - poista näkymä

DML (Data Manipulation Language) -operaattorit - tiedonkäsittelyoperaattorit

· SELECT - valitse rivit taulukoista

· INSERT - lisää rivejä taulukkoon

· PÄIVITYS - muuta taulukon rivejä

· DELETE - poistaa taulukon rivejä

· COMMIT - sitoa tehdyt muutokset

· ROLLBACK - peruuta tehdyt muutokset

Tietosuoja- ja tietosuojaoperaattorit

· CREATE ASSERTION - luo rajoitus

· DROP ASSERTION - poista rajoitus

· GRANT - myönnä käyttäjälle tai sovellukselle oikeudet käsitellä objekteja

REVOKE - peruuta käyttäjän tai sovelluksen oikeudet

Lisäksi on olemassa operaattoriryhmiä istuntoparametrien asettamiseen, tietokannan tietojen hankkimiseen, staattisiin SQL-operaattoreihin ja dynaamisiin SQL-operaattoreihin.

Tärkeimmät käyttäjälle ovat tiedonkäsittelylausekkeet (DML).

Esimerkkejä tiedonkäsittelyoperaattoreiden käytöstä

INSERT - rivien lisääminen taulukkoon

Esimerkki 1. Yhden rivin lisääminen taulukkoon:

ARVOT(4; "Ivanov");

PÄIVITYS - taulukon rivien päivittäminen

Esimerkki 3. Useiden taulukon rivien päivittäminen:

SET PNAME = "Pushnikov"

MISSÄ P.PNUM = 1;

DELETE - taulukon rivien poistaminen

Esimerkki 4. Useiden rivien poistaminen taulukosta:

MISSÄ P.PNUM = 1;

Esimerkkejä SELECT-käskyn käytöstä

SELECT-käsky on itse asiassa käyttäjäkriittisin ja monimutkaisin SQL-käsky. Se on tarkoitettu tietojen hakemiseen taulukoista, esim. Se itse asiassa toteuttaa yhden tietokannan päätarkoituksista - tarjota tietoa käyttäjälle.

SELECT-käsky suoritetaan aina joissakin tietokannan taulukoissa.

Kommentti. Itse asiassa tietokannat voivat sisältää paitsi pysyvästi tallennettuja taulukoita myös tilapäisiä taulukoita ja niin sanottuja näkymiä. Näkymät ovat yksinkertaisesti SELECT-lausekkeita, jotka on tallennettu tietokantaan. Käyttäjän näkökulmasta näkymä on taulukko, jota ei ole tallennettu pysyvästi tietokantaan, vaan joka "näkyy" sitä avattaessa. SELECT-käskyn näkökulmasta sekä pysyvät taulukot että väliaikaiset taulukot ja näkymät näyttävät täsmälleen samalta. Tietysti, kun järjestelmä todella suorittaa SELECT-käskyn, tallennettujen taulukoiden ja näkymien väliset erot huomioidaan, mutta nämä erot piilotettu käyttäjältä.


SELECT-käskyn tulos on aina taulukko. Siten SELECT-lauseen tulokset ovat samanlaisia ​​kuin relaatioalgebran operaattorit. Mikä tahansa relaatioalgebran operaattori voidaan ilmaista sopivasti muotoillulla SELECT-lauseella. SELECT-lauseen monimutkaisuus määräytyy sen perusteella, että se sisältää kaikki relaatioalgebran ominaisuudet sekä lisäominaisuudet, joita relaatioalgebrassa ei ole.

VALITSE Lausunnon suoritusmääräys

Ymmärtääksesi, kuinka SELECT-käskyn suorittamisen tulos saadaan, harkitse sen suorituksen käsitekaaviota. Tämä järjestelmä on puhtaasti käsitteellinen, koska on taattu, että tulos on sama kuin jos se suoritettaisiin askel askeleelta tämän kaavion mukaisesti. Itse asiassa todellinen tulos saadaan kehittyneemmillä algoritmeilla, jotka tietty DBMS "omistaa".

Vaihe 1: Yksittäisen SELECT-lausekkeen suorittaminen

Jos operaattori sisältää avainsanat UNION, EXCEPT ja INTERSECT, kysely jaetaan useisiin itsenäisiin kyselyihin, joista jokainen suoritetaan erikseen:

Vaihe 1 (FROM). Kaikkien vaaditussa FROM-lauseessa määriteltyjen taulukoiden suora suorakulmainen tulo lasketaan. Vaiheen 1 tuloksena saamme taulukon A.

Vaihe 2 (MISSÄ). Jos SELECT-käskyssä on WHERE-lause, vaiheessa 1 saatu taulukko A tarkistetaan WHERE-lauseessa annettu ehdollinen lauseke jokaiselle taulukon A riville. Vain ne rivit, joille ehdollinen lauseke palauttaa TOSI, sisällytetään tulokseen. Jos WHERE-lause jätetään pois, siirry suoraan vaiheeseen 3. Jos ehdollinen lauseke sisältää sisäkkäisiä alikyselyitä, ne arvioidaan tämän käsitteellisen skeeman mukaisesti. Vaiheen 2 tuloksena saamme taulukon B.

Vaihe 3 (GROUP BY). Jos SELECT-käskyssä on GROUP BY -lause, toisessa vaiheessa saadut taulukon B rivit ryhmitellään GROUP BY -lauseessa esitetyn ryhmittelyluettelon mukaan. Jos GROUP BY -lause jätetään pois, siirry suoraan vaiheeseen 4. Vaiheen 3 tuloksena saamme taulukon C.

Vaihe 4 (HAVING). Jos SELECT-käsky sisältää HAVING-lauseen, ryhmät, jotka eivät täytä HAVING-lauseessa annettua ehdollista lauseketta, suljetaan pois. Jos HAVING-osio jätetään pois, siirry suoraan vaiheeseen 5. Vaiheen 4 tuloksena saamme taulukon D.

Vaihe 5 (VALITSE). Jokainen vaiheessa 4 saatu ryhmä luo yhden tulosrivin seuraavasti. Kaikki SELECT-lauseessa määritetyt skalaarilausekkeet arvioidaan. GROUP BY -lauseen käyttöä koskevien sääntöjen mukaan tällaisten skalaarilausekkeiden on oltava samat kaikilla kunkin ryhmän riveillä. Jokaiselle ryhmälle lasketaan SELECT-osiossa annettujen aggregaattifunktioiden arvot. Jos GROUP BY -lausetta ei ole, mutta SELECT-lauseessa on koostefunktioita, ryhmää on vain yksi. Jos GROUP BY -lausetta tai koostefunktioita ei ole, oletetaan, että ryhmiä on yhtä monta kuin tähän mennessä on valittu rivejä. Vaiheen 5 tuloksena saadaan taulukko E, joka sisältää niin monta saraketta kuin on SELECT-osiossa lueteltuja elementtejä ja niin monta riviä kuin ryhmiä on valittu.

Vaihe 2. Suoritetaan UNION-, EXCEPT, INTERSECT-operaatioita

Jos SELECT-käsky sisälsi avainsanat UNION, EXCEPT ja INTERSECT, 1. vaiheen tuloksena saadut taulukot yhdistetään, vähennetään tai leikataan.

Vaihe 3. Tuloksen järjestäminen

Jos SELECT-käsky sisältää ORDER BY -lauseen, niin edellisissä vaiheissa saadut taulukon rivit järjestetään ORDER BY -lauseessa annetun järjestysluettelon mukaan.

SQL SELECT -käsky on tarkoitettu kyselyihin tietojen valitsemiseksi tietokannasta. Sitä voidaan käyttää joko ilman ehtoja (valitsemalla kaikki rivit kaikissa sarakkeissa tai kaikki rivit tietyissä sarakkeissa) tai useilla ehdoilla (valitsemalla tietyt rivit), jotka on määritelty WHERE-lauseessa. Tutustutaan SQL-työkaluihin, joilla voidaan asettaa näitä ehtoja tietojen valinnalle, ja opitaan myös käyttämään SELECT-käskyä alikyselyissä.

SELECT valitaksesi taulukon sarakkeet

Kyselyllä, jossa on SELECT-käsky, jolla valitaan taulukon kaikki sarakkeet, on seuraava syntaksi:

VALITSE * TABLE_NAME

Eli jos haluat valita taulukon kaikki sarakkeet, sinun on laitettava tähti sanan SELECT jälkeen.

Esimerkki 1. Siellä on yritystietokanta - Yritys. Se sisältää taulukon Organisaatio (Yritysrakenne) ja Henkilökunta (työntekijät). Sinun on valittava kaikki sarakkeet taulukoista. Vastaava kysely kaikkien sarakkeiden valitsemiseksi organisaatiotaulukosta on seuraava:

VALITSE * ORG

Tämä kysely palauttaa seuraavan (suurenna kuvaa napsauttamalla sitä hiiren vasemmalla painikkeella):

Kaikkien sarakkeiden valitsemista koskeva kysely Henkilökunta-taulukosta näyttää tältä:

VALITSE * HENKILÖSTÖLTÄ

Tämä kysely palauttaa seuraavan:


Tiettyjen taulukon sarakkeiden valitsemiseksi tähden sijaan meidän on lueteltava kaikkien valittavien sarakkeiden nimet pilkuilla erotettuina:

VALITSE SELECTABLE_COLUMNS TABLE_NAME

Esimerkki 2. Oletetaan, että haluat valita Org-taulukosta Depnumb- ja Deptname-sarakkeet, jotka sisältävät tiedot yrityksen osastojen numeroista ja niiden nimistä. Kysely tällaisen näytteen saamiseksi olisi seuraava:

VALITSE DEPTNUMB, OSASTONIMI ORG

Ja Henkilökunta-taulukosta sinun on valittava sarakkeet DEPT, NAME, JOB, jotka sisältävät vastaavasti tiedot sen osaston numerosta, jossa työntekijä työskentelee, hänen nimensä ja asemansa:

VALITSE HENKILÖSTÖLTÄ OSASTO, NIMI, TYÖ

Tiettyjen taulukon rivien valitsemiseen tarvitaan SELECT-käskyn lisäksi jo WHERE-avainsana, joka ilmaisee tietyn arvon tai useita meitä kiinnostavilla riveillä olevia arvoja. Yksinkertaisimmat ehdot määritellään käyttämällä vertailu- ja tasa-arvooperaattoreita (, =) sekä avainsanaa IS. Ehtoja voi olla useita, sitten ne luetellaan JA-avainsanalla. Rivinvalintakyselyillä on seuraava syntaksi:

Esimerkki 4. Edellisessä esimerkissä valitsimme taulukosta rivejä vain yhden sarakkeen arvon mukaan - DEPT. Oletetaan nyt, että sinun on valittava tiedot työntekijöistä, jotka työskentelevät osastolla 38 ja joiden asema on virkailija. Tätä varten WHERE-osiossa vastaavat arvot on lueteltava sanalla AND:


Esimerkki 5. Oletetaan, että sinun on valittava Henkilöstö-taulukosta niiden työntekijöiden tunnisteet ja nimet, joiden provisiokoko on määrittelemätön. Tätä varten WHERE-osiossa, ennen kuin määrität COMM - NULL -sarakkeen arvon, sinun ei tarvitse laittaa yhtäläisyysmerkkiä, vaan sana IS:

Tämä kysely palauttaa seuraavat tiedot:


Vertailumerkkejä käytetään myös osoittamaan arvot niillä riveillä, jotka haluat valita.

Käyttämällä SELECT- ja IN-, OR-, BETWEEN-, LIKE-predikaatteja

Predikaatit - sanat IN, OR, BETWEEN, LIKE WHERE-osiossa - antavat myös mahdollisuuden valita tiettyjä arvoalueita (IN, OR, BETWEEN) tai arvoja riveistä (LIKE), jotka haluat valita taulukko. Kyselyillä, joissa on predikaatit IN, OR, BETWEEN, on seuraava syntaksi:

Kyselyillä, joissa on LIKE-predikaatti, on seuraava syntaksi:

Esimerkki 7. Oletetaan, että haluat valita Henkilökunta-taulukosta 20 tai 84 osastoilla työskentelevien työntekijöiden nimet, asemat ja työskentelyvuodet. Tämä voidaan tehdä seuraavalla kyselyllä:

Pyynnön tulos:


Esimerkki 8. Oletetaan, että haluat nyt valita samat tiedot Henkilökunta-taulukosta kuin edellisessä esimerkissä. Kysely, jossa on sana OR, on samanlainen kuin kysely, jossa on sana IN ja kiinnostavat arvot luetellaan sulkeissa. Pyyntö tulee olemaan seuraava:

Esimerkki 9. Valitaan samasta taulukosta niiden työntekijöiden nimet, tehtävät ja työskentelyvuodet, joiden palkka on 15 000 - 17 000:

Pyynnön tulos:


LIKE-predikaattia käytetään valitsemaan ne merkkijonot, joiden arvot sisältävät heittomerkkien (") välissä olevan predikaatin jälkeen määritellyt merkit.

Esimerkki 10. Valitaan samasta taulukosta niiden työntekijöiden nimet, tehtävät ja työskentelyvuodet, joiden nimet alkavat S-kirjaimella ja koostuvat 7 merkistä:

Alaviiva (_) tarkoittaa mitä tahansa merkkiä. Pyynnön tulos:


Esimerkki 11. Valitaan samasta taulukosta niiden työntekijöiden nimet, tehtävät ja työvuosien lukumäärä, joiden nimet alkavat S-kirjaimella ja sisältävät muita kirjaimia missä tahansa määrässä:

Prosenttisymboli (%) tarkoittaa mitä tahansa merkkiä. Pyynnön tulos:


Predikaateilla IN, OR, BETWEEN, LIKE määritetyt arvot voidaan kääntää sanalla NOT. Silloin pyydetyillä tiedoilla on päinvastainen merkitys. Jos käytämme NOT IN (20, 84), näytetään tiedot työntekijöistä, jotka työskentelevät kaikilla osastoilla paitsi numeroilla 20 ja 84 EI 15 000 JA 17 000, voimme saada tiedot työntekijöistä, joiden palkka ei sisälly. Välillä 15000 - 17000. NOT LIKE -kysely palauttaa tiedot työntekijöistä, joiden nimet eivät ala tai eivät sisällä NOT LIKE -merkillä määritettyjä merkkejä.

Kirjoita SQL-kyselyitä SELECT:llä ja predikaatilla IN, EI IN, BETWEEN itsesi väliin ja katso sitten ratkaisuja

Siellä on tietokanta "Theatre". Play-taulukko sisältää tiedot tuotannoista. Ryhmäpöytä - näyttelijöiden rooleista. Näyttelijäpöytä kertoo näyttelijöistä. Ohjaajataulukko - ohjaajista. Taulukon kentät, ensisijainen ja vierasavaimet näkyvät alla olevassa kuvassa (klikkaa hiiren vasenta painiketta suurentaaksesi).


Esimerkki 12. Näytä luettelo näyttelijöistä, joita ei ole koskaan valettu päärooliin. Tiimitaulukossa tiedot päärooleista löytyvät Mainteam-sarakkeesta. Jos rooli on päärooli, niin "Y" on merkitty vastaavalle riville.

SELECT ja ORDER BY - rivien lajittelu (järjestäminen).

Tähän mennessä käsitellyt SQL SELECT -kyselyt palauttivat rivejä, jotka voivat olla missä tahansa järjestyksessä. Sinun on kuitenkin usein lajiteltava rivit numerojärjestyksen, aakkosten ja muiden kriteerien mukaan. Tämä tehdään avainsanalla ORDER BY. Tällaisilla pyynnöillä on seuraava syntaksi:

Esimerkki 15. Olkoon vaatimus valita Henkilöstötaulukosta osastolla numero 84 työskentelevät työntekijät ja lajitella (järjestää) tietueet työvuosien mukaan nousevaan järjestykseen:

Sana ASC osoittaa, että lajittelujärjestys on nouseva. Tämä sana on valinnainen, koska nouseva lajittelujärjestys on oletusarvo. Pyynnön tulos:


Esimerkki 16. Olkoon vaatimus valita samat tiedot kuin edellisessä esimerkissä, mutta lajitella (järjestää) tietueet työvuosien mukaan laskevassa järjestyksessä:

Sana DESC osoittaa, että lajittelujärjestys on laskeva. Pyynnön tulos:


SELECT ja DISTINCT - päällekkäisten rivien poistaminen

Kun taulukon rivien arvoja ei ole asetettu yksilöllisiksi, kyselytuloksissa voi näkyä päällekkäisiä rivejä. Usein sinun tarvitsee tulostaa vain yksilöllisiä merkkijonoja. Tämä tehdään käyttämällä DISTINCT-lauseketta SELECT-käskyn jälkeen.

Esimerkki 17. Oletetaan, että haluat selvittää, mitä osastoja on olemassa ja mitkä paikat ovat osastoilla, joiden lukumäärä on alle 30. Tämä voidaan tehdä seuraavalla kyselyllä:

Pyynnön tulos:


SELECT-käsky SQL-alikyselyissä

Tähän mennessä olemme tarkastelleet SQL-konstruktioita SELECT-käskyllä, jossa tiedon valintaehdot ja itse valitut tiedot ovat samassa tietokantataulukossa. Käytännössä usein käy niin, että valittavat tiedot sisältyvät yhteen taulukkoon ja ehdot toiseen taulukkoon. Tässä alikyselyt tulevat apuun: valintaehdon arvot palautetaan toisesta kyselystä (sisäkkäinen kysely), myös SELECT:stä alkaen. Alikyselyitä sisältävät kyselyt voivat palauttaa yhden tai useamman rivin.

Esimerkki 18. Kaikki samat ORG- ja STAFF-pöydät. Oletetaan, että haluat selvittää, millä osastolla työntekijä, jonka tunnusnumero on 280, työskentelee ja missä tämä osasto sijaitsee. Mutta tiedot osastoista tallennetaan ORG-taulukkoon ja tiedot työntekijöistä HENKILÖSTÖ-taulukkoon. Tämä voidaan tehdä käyttämällä seuraavaa kyselyä alikyselyllä, jossa ulompi SELECT käyttää ORG-taulukkoa ja sisempi SELECT käyttää STAFF-taulukkoa:

Pyynnön tulos:


Esimerkki 19. Oletetaan nyt, että sinun on selvitettävä, millä osastoilla (ilman päällekkäisyyttä) työskentelevät työntekijät, joiden palkka on alle 13 000. Tätä varten ulkoisen SELECT-taulukon WHERE-osiossa (kysely ORG-taulukkoon) on määritetty ehto, joka vaatii. arvoalueen (IN), ja sisäinen SELECT (STAFF-taulukkoon) palauttaa vain vaaditun arvoalueen:

Relaatiotietokannat ja SQL-kieli

© 2024 ermake.ru - Tietoja PC-korjauksesta - Tietoportaali