V jazyku dopytov SQL zaujíma významné miesto príkaz SELECT, keďže pomocou nej vykonávame selekciu v databáze. V tomto článku sa budeme zaoberať základmi tohto veľmi dôležitého príkazu SQL.
Na internete je množstvo rôznych článkov, kníh, tutoriálov o SQL, no všetko je pre človeka, ktorý o SQL a možno ani o programovaní nikdy nepočul, ťažké a preto sa mu všetky tieto zdroje ťažko študujú . Tu sa snažím vysvetliť základy jedného operátora bez toho, aby som šiel príliš hlboko ( to je to, čo sťažuje štúdium, že okamžite prechádzajú od základov ku komplexným dopytom), takže sa najprv musíte naučiť základy a potom prejsť na zložitejšie, čo uľahčuje učenie sa jazyka SQL. Tento článok je skvelý pre začiatočníkov, ktorí sa chcú naučiť písať jednoduché SQL dotazy na načítanie údajov.
SQL je dotazovací jazyk, ktorý sa používa na manipuláciu (správu) údajov v relačných databázach. Má veľkú popularitu, a preto by mal každý sebaúctyhodný IT-k poznať základy tohto jazyka, keďže databázy má takmer každá spoločnosť.
SELECT– operátor jazyka SQL, patrí do skupiny operátorov manipulácie s údajmi ( Jazyk manipulácie s údajmi, DML) a slúži na načítanie údajov z databázy.
Poznámka! Aby ste sa naučili jazyk SQL a databázy, existujú špeciálne bezplatné vydania veľkých DBMS, napríklad v SQL Server Microsoft má edíciu Express. Ako nainštalovať daný DBMS si môžete prečítať v materiáli - Popis inštalácie Microsoft SQL Server 2016 Express.
Tu je najjednoduchší príklad použitia príkazu SELECT.
VYBERTE * Z tabuľky
V praxi však často nepotrebujeme všetky údaje z tabuľky a niekedy len niektoré stĺpce, na tento účel jednoducho zadáme názov požadovaného stĺpca namiesto * ( alebo reproduktory), Napríklad:
VYBERTE CENU Z tabuľky
kde Cena je názov stĺpca.
Poznámka! Ako príklad používame jednoduchý stôl zoznam modelov počítačov, ich ceny a názvu.
Ak potrebujete zadať viacero stĺpcov, jednoducho ich uveďte oddelené čiarkami, napríklad za príkazom SELECT
VYBERTE cenu, názov, model FROM Tabuľka
kde cena, názov, model sú stĺpce z tabuľky Tabuľka.
V procese vzorkovania pomerne často potrebujeme filtrovať údaje podľa určitej podmienky, t.j. nie všetky údaje, ale iba tie, ktoré zodpovedajú podmienke, v konštrukte SELECT na to môžete použiť operátor KDE.
VYBERTE cenu Z tabuľky WHERE cena > 100
kde, KDE je podmienka, t.j. zobrazujeme len tie riadky, ktoré zodpovedajú našej podmienke ( cena nad 100).
Môžete uviesť aj v podmienke kľúčové slovo MEDZI, t.j. hodnota spadá alebo nespadá do určitého rozsahu, napr
VYBERTE CENU Z tabuľky, KDE CENA 400 AŽ 600
kde uvádzame, že cena by mala byť medzi 400 a 600.
Ak chcete skontrolovať, či hodnota testovaného výrazu patrí do určitej množiny hodnôt, môžete použiť predikát IN.
VYBERTE cenu Z tabuľky WHERE cena V (400, 600)
IN tento prípad chceme len cenu s cenou 400 a 600.
Ak potrebujeme získať iba jedinečné riadky zdroja, môžeme zadať kľúčové slovo ODLIŠNÝ, Napríklad
VYBERTE ODDIELNU cenu Z tabuľky WHERE cena > 100
Poznámka! Jazyk SQL nerozlišuje veľké a malé písmená, dotazy môžu byť napísané v jednom riadku alebo rozdelené do viacerých. Napríklad nasledujúce dva dotazy sú úplne rovnaké.
VYBERTE cenu Z tabuľky
vyberte cenu z tabuľky
Veľmi často je potrebné triediť výsledok dopytu podľa určitého poľa ( stĺpec). Ak to chcete urobiť, po žiadosti špecifikujte konštrukciu ZORADIŤ PODĽA a tie polia ( viaceré možno oddeliť čiarkami) zoradiť podľa.
VYBERTE SI cenu Z Tabuľky OBJEDNAŤ PODĽA ceny POPIS
Toto je príklad triedenia v zostupnom poradí, ale môžete triediť aj vzostupne, namiesto DESC píšeme ASC, ale zvyčajne to tak nepíšeme, pretože vzostupné triedenie je predvolené.
V SQL sú veľmi užitočné takzvané agregačné funkcie, konkrétne:
Napríklad, potrebujeme získať priemernú cenu počítača, maximum a minimum, na to môžeme napísať nasledujúci dotaz
VYBERTE AVG(cena), MAX(cena), MIN(cena) Z tabuľky
Hodnoty môžete zoskupiť podľa stĺpcov, napríklad potrebujeme zistiť priemernú cenu pre každý model počítača, v tomto prípade bude dotaz vyzerať takto
VYBERTE model, AVG (cena) AKO AVGPcena FROM tabuľky GROUP BY modelu
Ak si všimnete, použil som zadanie tu " alias» pre pohodlnejšie vnímanie výsledkov tohto dotazu, t.j. za stĺpec napíšte AS a meno, ktoré chcete, aby sa zobrazovalo vo výsledkoch.
Rovnako ako pri použití podmienok v jednotlivých stĺpcoch, môžete pomocou funkcie zadať aj podmienku pre celú skupinu MAJÚCE. Napríklad musíme určiť maximálnu cenu počítača zoskupenú podľa modelov týchto počítačov, ktorých maximálna cena je však nižšia ako 500.
SELECT model, MAX (cena) FROM table GROUP BY model HAVING MAX (cena)< 500
V tomto prípade nám náš dopyt poskytne počítače zoskupené podľa modelov, ktorých maximálna cena je nižšia ako 500.
Poznámka! Viac o zoskupovaní v SQL si môžete prečítať v tomto článku.
V SQL existuje taká hodnota ako NULL. V skutočnosti NULL znamená absenciu hodnoty ( tie. prázdny). Ak chcete zobraziť všetky riadky, ktoré obsahujú takúto hodnotu ( napríklad ešte nemáme pridelenú cenu niektorého počítača) môžeme použiť nasledujúcu podmienku.
VYBERTE * Z tabuľky, kde je cena NULL
Čo bude znamenať vyhľadávanie všetkých riadkov, ktoré neobsahujú hodnotu pre pole ceny.
Poznámka! Ak máte záujem o jazyk T-SQL, potom odporúčam prečítať si moju knihu „Cesta programátora T-SQL“, v ktorej podrobne, s množstvom príkladov, hovorím o základoch jazyka Transact-SQL najmä pre začiatočníkov.
To je na dnes všetko, zhodnotili sme s vami malú časť jazyka SQL, konkrétne príkaz SELECT. Veľa štastia!
A nad tabuľkovými údajmi.
Jazyk SQL sa nazýva vstavaný, pretože obsahuje funkcie plnohodnotný jazyk vývoj, ale zameriava sa na prístup k dátam, v dôsledku čoho je súčasťou nástrojov na vývoj aplikácií. Jazykové štandardy SQL podporujú jazyky Pascalové programovanie, Fortran, COBOL, C atď.
Existuje 2 spôsoby použitia vstavaného SQL:
Jazyk SQL (podobne ako iné databázové jazyky) je určený na prípravu a vykonávanie dotazov. V dôsledku vykonania dátového dotazu z jednej alebo viacerých tabuliek sa získa množina záznamov, tzv. výkon.
Definícia 1
Výkon je tabuľka, ktorá sa vytvorí ako výsledok vykonania dotazu.
Príkazy SQL sú podmienene rozdelené na 2 podjazyky:
V tabuľke je označený symbol * konkrétnych operátorov Jazyk.
Poďme sa pozrieť na najdôležitejšie SQL príkazy.
Vyhlásenie o vytvorení tabuľky:
Názov vytváranej tabuľky a názov aspoň jedného stĺpca (pola) sú povinné operandy. Pre názov stĺpca musíte zadať typ údajov, ktoré v ňom budú uložené.
Pre jednotlivé polia môžete zadať ďalšie pravidlá na kontrolu hodnôt, ktoré sú v nich zadané. Napríklad, NIE JE NULL označuje, že pole nemôže byť prázdne a musí sa doň zadať hodnota.
Príklad 1
Na vytvorenie tabuľky knihy adresár knihy, ktorý obsahuje polia:
typu- druh knihy
názov- názov knihy,
cena- cena knihy
operátor môže vyzerať takto:
Operátor zmeny štruktúry tabuľky:
Pri zmene štruktúry tabuľky môžete pridať ( PRIDAŤ), zmeniť ( UPRAVIŤ) alebo vymazať ( POKLES) jeden alebo viac stĺpcov tabuľky. Pravidlá nahrávania daný operátor rovnako ako u operátora VYTVORIŤ TABUĽKU. Ak chcete odstrániť stĺpec, nemusíte špecifikovať.
Príklad 2
Na pridanie do tabuľky knihy poliach číslo, ktorý bude ukladať počet kníh, môžete napísať operátorovi:
Vyhlásenie o zrušení tabuľky:
Príklad 3
Ak chcete napríklad zrušiť existujúcu tabuľku s názvom knihy stačí použiť operátor:
Vyhlásenie o vytvorení indexu:
Príkaz vytvorí index na jednom alebo viacerých stĺpcoch danej tabuľky, čo urýchli operácie dotazovania a vyhľadávania. V tej istej tabuľke je možné vytvoriť viacero indexov.
Voliteľná možnosť UNIKÁTNY je zodpovedný za zabezpečenie jedinečnosti hodnôt vo všetkých stĺpcoch, ktoré sú uvedené vo vyhlásení.
ASC nastavuje automatické triedenie hodnôt v stĺpcoch vo vzostupnom poradí (predvolené) a DESC- v zostupnom poradí.
Operátor poklesu indexu:
Zobraziť operátor vytvorenia:
Pri vytváraní zobrazenia môžete vynechať názvy stĺpcov. Potom sa použijú názvy stĺpcov z dotazu, ktoré popisuje príslušný operátor SELECT.
Zobraziť operátor vymazania:
Operátor výberu záznamu:
Operátor SELECT vyberá a vykonáva výpočty s údajmi z jednej alebo viacerých tabuliek. Výsledkom vykonania príkazu je tabuľka odpovedí, ktorá obsahuje ( VŠETKY) alebo neobsahuje ( ODLIŠNÝ) riadky, ktoré sa opakujú.
Operand OD obsahuje zoznam tabuliek, z ktorých sa preberajú záznamy pre výber údajov.
Operátor úpravy záznamu:
Nové hodnoty polí v záznamoch nemusia obsahovať hodnoty ( NULOVÝ) alebo vypočítané podľa aritmetického výrazu.
Operátor pre vkladanie nových záznamov:
V prvom zázname prevádzkovateľa VLOŽIŤ zadávajú sa nové záznamy s danými hodnotami v stĺpcoch.
V druhom zázname prevádzkovateľa VLOŽIŤ zadávajú sa nové riadky, ktoré sa vyberajú z inej tabuľky cez vetu SELECT.
Odstrániť operátor záznamu:
V dôsledku vykonania operátora sa zo špecifikovanej tabuľky vymažú riadky, ktoré spĺňajú podmienku zadanú voliteľným operandom KDE. Ak je operand KDE nie je zadané, všetky záznamy v tabuľke sa vymažú.
Jazykový štandard SQL bol prijatý v roku 1992 a používa sa dodnes. Bol to on, kto sa stal pre mnohých štandardom.Samozrejme, niektorí výrobcovia používajú svoje vlastné interpretácie štandardu. Ale v každom systéme stále existujú hlavné komponenty - príkazy SQL.
Pomocou príkazov SQL sa spravujú hodnoty, tabuľky a prijímajú sa na ďalšiu analýzu a zobrazenie. Sú to kľúčové slová, pomocou ktorých systém chápe, čo má s údajmi robiť.
Je definovaných niekoľko kategórií príkazov SQL:
VLOŽIŤ. Vloží riadky do existujúcej tabuľky. Môže sa použiť ako pre jednu hodnotu, tak aj pre niekoľko, určených nejakou podmienkou. Napríklad:
názov tabuľky (názov stĺpca 1, názov stĺpca 2)
HODNOTY (hodnota 1, hodnota 2).
Ak chcete použiť príkaz INSERT na viacerých hodnotách, syntax je:
názov tabuľky 1 (názov stĺpca 1, názov stĺpca 2)
SELECT názov stĺpca 1, názov stĺpca 2
Z názvu tabuľky 2
WHERE názov tabuľky 2.názov stĺpca 1>2
Tento dotaz vyberie všetky údaje z tabuľky 2, ktoré sú väčšie ako 2 v stĺpci 1 a vloží ich do prvého.
AKTUALIZOVAŤ. Ako už názov napovedá, tento operátor SQL dotaz aktualizuje údaje v existujúcej tabuľke o určitý atribút.
AKTUALIZÁCIA názvu tabuľky 1
SET názov stĺpca 2 = "Bazalka"
WHERE názov tabuľky 1.názov stĺpca 1 = 1
Táto konštrukcia vyplní hodnotou Vasily všetky riadky, v ktorých sa stretne s číslom 1 v prvom stĺpci.
Údaje z tabuľky. Môžete zadať akúkoľvek podmienku alebo odstrániť všetky riadky.
DELETE FROM názov tabuľky
WHERE názov tabuľky.názov stĺpca 1 = 1
Vyššie uvedený dotaz odstráni z databázy všetky údaje s hodnotou jedna v prvom stĺpci. A takto môžete vyčistiť celú tabuľku:
Hlavným účelom SELECT je výber údajov podľa určitých podmienok. Výsledkom jeho práce je vždy nová tabuľka s vybranými údajmi. Operátor MS môže byť použitý v množstve rôznych dopytov. Preto spolu s ním môžete zvážiť ďalšie súvisiace kľúčové slová.
Ak chcete vybrať všetky údaje z konkrétnej tabuľky, použite znak „*“.
Z názvu tabuľky 1
Výsledok práce daná žiadosť bude presnou kópiou tabuľky 1.
A tu je výber podľa podmienky WHERE, ktorá dostane z tabuľky 1 všetky hodnoty väčšie ako 2 v stĺpci 1.
Z názvu tabuľky 1
WHERE názov tabuľky 1.názov stĺpca 1 > 2
Vo výbere môžete tiež určiť, že sú potrebné iba určité stĺpce.
SELECT názov tabuľky 1. názov stĺpca 1
Z názvu tabuľky 1
Výsledkom tohto dotazu budú všetky riadky s hodnotami zo stĺpca 1. Pomocou príkazov MS SQL si môžete vytvoriť vlastnú tabuľku nahradením, výpočtom a nahradením určitých hodnôt na cestách.
názov tabuľky 1.názov stĺpca 1
názov tabuľky 1.názov stĺpca 2
názov tabuľky 1.názov stĺpca 3
názov tabuľky 1.názov stĺpca 2 * názov tabuľky 1.názov stĺpca 3 AS SUMMA
Z názvu tabuľky 1
Tento zdanlivo zložitý dotaz načíta všetky hodnoty z tabuľky 1 a potom vytvorí nové stĺpce EQ a SUMMA. Do prvého zadáva znamienko „+“ a do druhého súčin údajov zo stĺpcov 2 a 3. Výsledok možno prezentovať vo forme tabuľky, aby ste pochopili, ako to funguje:
Pri použití príkazu SELECT môžete údaje okamžite triediť podľa nejakého atribútu. Na to sa používa slovo ORDER BY.
názov tabuľky 1.názov stĺpca 1
názov tabuľky 1.názov stĺpca 2
názov tabuľky 1.názov stĺpca 3
Z názvu tabuľky 1
ORDER PODĽA názvu stĺpca 2
Výsledná tabuľka bude vyzerať takto:
To znamená, že všetky riadky boli nastavené v takom poradí, aby hodnoty v stĺpci 2 boli vo vzostupnom poradí.
Dáta je možné získať aj z viacerých tabuliek. Pre prehľadnosť si najprv musíte predstaviť, že v databáze sú dve, asi takto:
Tabuľka "Zamestnanci"
Tabuľka "Plat"
Teraz musíte tieto dve tabuľky nejako prepojiť, aby ste získali spoločné hodnoty. Pomocou základných príkazov SQL to môžete urobiť takto:
Počet zamestnancov
Zamestnanci.Meno
Plat. Sadzba
Plat, časovo rozlíšený
OD Zamestnancov, Plat
KDE Zamestnanci.Číslo = Mzda.Číslo
Tu je výber z dvoch rôzne tabuľky hodnoty zoskupené podľa čísla. Výsledkom bude nasledujúci súbor údajov:
Jeden z hlavných operátorov môže vykonať určité výpočty pri načítaní. Na to používa určité funkcie a vzorce.
Ak chcete napríklad získať počet záznamov z tabuľky „Zamestnanci“, musíte použiť dotaz:
VYBERTE POČET (*) AKO N
OD zamestnancov
Výsledkom je tabuľka s jednou hodnotou a jedným stĺpcom.
Môžete použiť tento dotaz a zistiť, čo sa stane:
SUM(Plat. Naakumulovaný) AKO SUMMA
MAX.(Plat.Akumulovaný) AKO MAX
MIN (Plat. Časovo rozlíšené) AKO MIN
AVG(Plat.Accrued) AS SRED
OD platu
Výsledná tabuľka bude vyzerať takto:
Týmto spôsobom môžete vybrať požadované hodnoty z databázy vykonaním výpočtu rôznych funkcií za behu.
Union, Intersect, and Differences
Kombinujte viacero dotazov v SQL
SELECT Employees.Meno
OD zamestnancov
KDE Zamestnanci Počet = 1
SELECT Employees.Meno
OD Zamestnancov, Plat
KDE Mzda.Číslo = 1
Treba mať na pamäti, že pri takomto spojení musia byť tabuľky kompatibilné. To znamená mať rovnaký počet stĺpcov.
V prvom rade SELECT definuje oblasť, z ktorej bude brať dáta. Používa sa na to kľúčové slovo FROM. Ak nie je určené, čo presne vybrať.
Potom môže existovať klauzula SQL WHERE. S jeho pomocou SELECT prebehne všetky riadky tabuľky a skontroluje, či sú údaje v súlade s podmienkou.
Ak je v dotaze GROUP BY, hodnoty sú zoskupené podľa zadaných parametrov.
Je ich viacero druhov. V SQL môžu porovnávacie operátory kontrolovať Rôzne druhy hodnoty.
"=". Označuje, ako môžete hádať, rovnosť dvoch výrazov. Napríklad to už bolo použité v príkladoch vyššie - WHERE Plat.Number = 1.
">". Ďalšie znamenie. Ak je hodnota ľavej strany výrazu väčšia ako, potom sa vráti boolean PRAVDA a podmienka sa považuje za splnenú.
«<». Знак меньше. Обратный предыдущему оператор.
znamenia"<=» и «>= =. Od jednoduchých viac a menej operátorov sa líši tým, že ak sú operandy rovnaké, podmienka bude tiež pravdivá.
Toto kľúčové slovo možno preložiť ako „podobné“. Operátor LIKE v SQL sa používa približne rovnako – vykoná dotaz podľa šablóny. To znamená, že umožňuje rozšíriť výber údajov z databázy pomocou regulárnych výrazov.
Napríklad bola stanovená nasledujúca úloha: z už známej základne "Zamestnanci" získať všetkých ľudí, ktorých meno končí na "I". Potom môže byť dotaz napísaný takto:
OD zamestnancov
WHERE Názov AKO `%i`
Znak percenta v tomto prípade znamená masku, teda ľubovoľný znak a jeho počet. A podľa písmena "i" SQL určí, že posledný znak by mal byť práve taký.
Tento príkaz SQL Server je implementáciou viacnásobného výberu. Podobá sa konštrukcii prepínača v mnohých programovacích jazykoch. Príkaz CASE v SQL vykoná akciu pri viacerých podmienkach.
Napríklad musíte vybrať maximálne a minimálne hodnoty z tabuľky Plat.
Potom môže byť dotaz napísaný takto:
OD platu
V PRÍPADE, KEĎ VYBERTE MAX(Akumulované) TAK MAXIMUM
KEĎ VYBERTE MIN (Akumulované), POTOM Minimálne
V tomto kontexte systém hľadá maximálnu a minimálnu hodnotu v stĺpci Accrued. Potom sa pomocou KONIEC vytvorí pole „celkom“, do ktorého sa zadá „Maximálne“ alebo „Minimum“ v závislosti od výsledku podmienky.
Mimochodom, SQL má aj kompaktnejšiu formu CASE - COALESCE.
Toto zobrazenie vám umožňuje vykonávať rôzne zmeny v tabuľkách – vytváranie, odstraňovanie, úpravy a prácu s indexmi.
Prvým, ktorý stojí za zváženie, je CREATE TABLE. Nerobí nič iné, len vytvára tabuľku. Ak len napíšete dotaz CREATE TABLE, nič sa nestane, pretože ešte musíte zadať niekoľko parametrov.
Ak chcete napríklad vytvoriť už známu tabuľku Zamestnanci, musíte použiť príkazy:
VYTVORIŤ TABUĽKU Zamestnanci
(Číslo (10) NIE JE NULL
Názov varchar(50) NOT NULL
Priezvisko varchar(50) NOT NULL)
V tomto dotaze sú názvy polí a ich typy okamžite určené v zátvorkách, ako aj to, či sa môže rovnať NULL.
Vykoná jednu jednoduchú úlohu, zhodí zadanú tabuľku. Má ďalší parameter IF EXISTS. Ak vyhľadávaná tabuľka neexistuje, absorbuje chybu pri vymazaní. Príklad použitia:
DROP TABLE Zamestnanci, AK EXISTUJE.
SQL má indexový systém, ktorý vám umožňuje urýchliť prístup k údajom. Vo všeobecnosti ide o odkaz, ktorý ukazuje na konkrétny stĺpec. Index môžete vytvoriť jednoduchým dotazom:
CREATE INDEX index_name
ON názov_tabulky(názov_stĺpca)
Tento operátor sa používa v T-SQL, Oracle, PL SQL a mnohých ďalších interpretačných technológiách.
Veľmi funkčný operátor s množstvom možností. Vo všeobecnosti mení štruktúru, definíciu a umiestnenie tabuliek. Operátor sa používa v Oracle SQL, Postgres a mnohých ďalších.
PRIDAŤ. Pridá stĺpec do tabuľky. Jeho syntax je: ALTER TABLE názov_tabuľky ADD názov_stĺpca uložený_typ_údajov. Môže mať možnosť IF NOT EXISTS na potlačenie chyby, ak vytváraný stĺpec už existuje;
POKLES. Odstráni stĺpec. Má tiež kľúč IF EXISTS, bez ktorého sa vygeneruje chyba, že chýba požadovaný stĺpec;
ZMENIŤ. Slúži na premenovanie názvu poľa na zadaný. Príklad použitia: ALTER TABLE názov_tabuľky CHANGE starý_názov nový_názov;
UPRAVIŤ. Tento príkaz vám pomôže zmeniť typ a ďalšie atribúty určitého stĺpca. A používa sa takto: ALTER TABLE názov_tabuľky MODIFY názov_stĺpca atribúty typu údajov;
V SQL existuje niečo ako pohľad. V skratke ide o akúsi virtuálnu tabuľku s údajmi. Vytvára sa ako výsledok výberu pomocou príkazu SQL SELECT. Zobrazenia môžu obmedziť prístup k databáze, skryť ich, nahradiť skutočné názvy stĺpcov.
Proces vytvárania prebieha s jednoduchou požiadavkou:
CREATE VIEW view name AS SELECT FROM * table name
Vzorkovanie môže prebiehať ako celá databáza ako celok a podľa určitých podmienok.
SQL dotazy veľmi často využívajú rôzne vstavané funkcie, ktoré umožňujú interakciu s údajmi a ich transformáciu za behu. Oplatí sa ich zvážiť, keďže sú neoddeliteľnou súčasťou štruktúrovaného jazyka.
COUNT. Počíta záznamy alebo riadky v konkrétnej tabuľke. Ako parameter môžete zadať názov stĺpca, potom sa z neho prevezmú údaje. VYBERTE POČET * OD zamestnancov;
A.V.G. platí len pre stĺpce s číselnými údajmi. Jeho výsledkom je určenie aritmetického priemeru všetkých hodnôt;
MIN a MAX. Tieto funkcie už boli použité v tomto článku. Určujú maximálne a minimálne hodnoty zo zadaného stĺpca;
SUM. Je to jednoduché – funkcia vypočíta súčet hodnôt stĺpca. Používa sa výlučne pre číselný dátový typ. Pridaním parametra DISTINCT do dotazu sa spočítajú iba jedinečné hodnoty;
OKRÚHLY. Funkcia zaokrúhľovania desatinných zlomkových čísel. Syntax používa názov stĺpca a počet desatinných miest;
len. Jednoduchá funkcia, ktorá vypočíta dĺžku hodnôt stĺpca. Výsledkom bude nová tabuľka s uvedením počtu znakov;
TERAZ. Toto kľúčové slovo sa používa na výpočet aktuálneho dátumu a času.
Mnohé z príkladov príkazov SQL majú kľúčové slová, ktoré vykonávajú malé úlohy, ale stále výrazne zjednodušujú výbery alebo databázové operácie.
AS. Používa sa, keď potrebujete vizualizovať výsledok priradením zadaného názvu k výslednej tabuľke.
MEDZI. Veľmi praktický nástroj na výber. Určuje rozsah hodnôt, z ktorých sa majú získať údaje. Vstup akceptuje parameter od a do akého čísla sa rozsah používa;.
NIE. Operátor dáva opak výrazu.
TRUNCATE (skrátiť). Odstráni údaje zo zadanej oblasti databázy. Od podobných operátorov sa líši tým, že po jeho použití nie je možné obnoviť dáta. Stojí za zváženie, že implementácia tohto kľúčového slova v rôznych interpretáciách SQL sa môže líšiť. Preto pred pokusom o použitie TRUNCATE je lepšie prečítať si informácie pomocníka.
LIMIT. Nastavuje počet riadkov, ktoré sa majú zobraziť. Zvláštnosťou operátora je, že je vždy umiestnený na konci. Vyžaduje jeden požadovaný parameter a jeden voliteľný. Prvý určuje, koľko riadkov s vybratými údajmi sa má zobraziť. A ak sa použije druhý, potom operátor pracuje ako pre rozsah hodnôt.
UNION. Veľmi praktický operátor na kombinovanie viacerých dopytov. Už sa stretol medzi príkladmi tohto v tomto článku. Požadované riadky z niekoľkých tabuliek môžete zobraziť tak, že ich spojíte pomocou UNION pre pohodlnejšie použitie. Syntax je: SELECT názov_stĺpca FROM názov_tabuľky UNION SELECT názov iného_stĺpca FROM názov inej_tabuľky. Výsledkom je kontingenčná tabuľka s kombinovanými dopytmi.
PRIMÁRNY KĽÚČ. Preložené ako „primárny kľúč“. V skutočnosti sa v referenčných materiáloch používa práve táto terminológia. Znamená jedinečný identifikátor riadku. Používa sa spravidla pri vytváraní tabuľky na určenie poľa, ktoré ju bude obsahovať.
DEFAULT. Rovnako ako predchádzajúci operátor sa používa v procese vykonávania vytváracieho dotazu. Definuje predvolenú hodnotu, ktorá sa vyplní do poľa pri jeho vytvorení.
NULOVÝ. Začiatočníci a nielen programátori pri zostavovaní dotazov veľmi často zabúdajú na možnosť získania hodnoty NULL. V dôsledku toho sa do kódu vkradne chyba, ktorú je pri ladení ťažké vystopovať. Preto sa pri vytváraní tabuliek, výbere alebo prepočítavaní hodnôt treba zastaviť a zamyslieť sa, či sa berie do úvahy výskyt NULL v tejto časti dotazu.
Pamäť. Tento článok ukázal niekoľko funkcií, ktoré môžu vykonávať určité úlohy. Pri vývoji shellu na prácu s databázou môžete „prevážiť“ výpočet jednoduchých výrazov v systéme správy databázy. V niektorých prípadoch to výrazne zvyšuje výkon.
Obmedzenia. Ak potrebujete získať iba dva z databázy s tisíckami riadkov, mali by ste použiť operátory ako LIMIT alebo TOP. Nie je potrebné extrahovať údaje pomocou vývojového jazyka shellu.
Zlúčenina. Po prijatí údajov z niekoľkých tabuliek ich veľa programátorov začne spájať pomocou pamäte shellu. Ale prečo? Koniec koncov, môžete podať jednu žiadosť, v ktorej bude toto všetko prítomné. Nemusíte písať extra kód a rezervovať dodatočnú pamäť v systéme.
Triedenie. Ak je možné použiť objednávanie v dopyte, teda pomocou DBMS, musíte ho použiť. To výrazne ušetrí prostriedky pri spustení programu alebo služby.
Veľa žiadostí. Ak musíte vložiť veľa záznamov postupne, potom pre optimalizáciu by ste mali premýšľať o dávkovom vkladaní údajov do jedného dotazu. Zvýši sa tým aj výkon celého systému ako celku.
Premyslené umiestnenie údajov. Pred zostavením štruktúry databázy si treba premyslieť, či je takýto počet tabuliek a polí nutný. Možno existuje spôsob, ako ich zlúčiť alebo niektoré zahodiť. Programátori veľmi často využívajú nadmerné množstvo dát, ktoré sa nikdy nikde nepoužijú.
Typy. Ak chcete ušetriť miesto a zdroje, musíte byť citliví na typy údajov, ktoré používate. Ak je možné použiť typ, ktorý je menej „ťažký“ na pamäť, tak je potrebné ho použiť. Napríklad, ak je známe, že v danom poli číselná hodnota nepresiahne 255, tak prečo používať 4-bajtový INT, ak existuje TINYINT s veľkosťou 1 bajt.
Na záver treba poznamenať, že štruktúrovaný dotazovací jazyk SQL sa dnes používa takmer všade – stránky, webové služby, PC programy, aplikácie pre mobilné zariadenia. Znalosť SQL preto pomôže všetkým odvetviam vývoja.
Zároveň sa úpravy pôvodnej jazykovej normy niekedy navzájom líšia. Napríklad príkazy PL SQL môžu mať inú syntax ako v SQL Server. Preto skôr, ako začnete s vývojom pomocou tejto technológie, mali by ste si prečítať manuály k nej.
V budúcnosti je nepravdepodobné, že by sa objavili analógy, ktoré by mohli prekonať SQL z hľadiska funkčnosti a výkonu, takže táto oblasť je pre každého programátora celkom sľubná.
Príkaz SQL SELECT je určený pre dotazy na výber údajov z databázy. Dá sa použiť bez podmienok (výber všetkých riadkov vo všetkých stĺpcoch alebo všetkých riadkov v konkrétnych stĺpcoch) alebo s viacerými podmienkami (výber konkrétnych riadkov), ktoré sú špecifikované v klauzule WHERE. Zoznámime sa s nástrojmi SQL, ktoré možno použiť na nastavenie týchto podmienok pri výbere údajov, a tiež sa naučíme používať príkaz SELECT v poddotazoch.
Dotaz s príkazom SELECT na výber všetkých stĺpcov tabuľky má nasledujúcu syntax:
SELECT * FROM TABLE_NAME
To znamená, že ak chcete vybrať všetky stĺpce tabuľky, za slovo SELECT musíte vložiť hviezdičku.
Príklad 1 Existuje firemná databáza - Spoločnosť. Má tabuľku Org (Štruktúra spoločnosti) a Staff (Zamestnanci). Je potrebné vybrať všetky stĺpce z tabuliek. Zodpovedajúci dotaz na výber všetkých stĺpcov z tabuľky organizácie je nasledujúci:
VYBERTE si * Z ORG
Tento dotaz vráti nasledovné (ak chcete obrázok zväčšiť, kliknite naň ľavým tlačidlom myši):
Dotaz na výber všetkých stĺpcov z tabuľky Zamestnanci vyzerá takto:
VYBERTE SI * Z PERSONÁLU
Tento dotaz vráti nasledovné:
Ak chcete vybrať určité stĺpce tabuľky, namiesto hviezdičky musíme uviesť názvy všetkých stĺpcov, ktoré sa majú vybrať, oddelené čiarkami:
VYBERTE STĹPCE NA VÝBER Z TABUĽKY_NAME
Príklad 2 Nech je potrebné vybrať stĺpce Depnumb a Deptname z tabuľky Org, ktoré obsahujú údaje o číslach oddelení firmy, resp. ich názvoch. Dotaz na získanie takéhoto výberu by bol nasledujúci:
VYBERTE DEPNUMB, DEPTNAME Z ORG
A z tabuľky Zamestnanci musíte vybrať stĺpce DEPT, NAME, JOB, ktoré obsahujú údaje o čísle oddelenia, v ktorom zamestnanec pracuje, jeho mene a pozícii:
VYBERTE ODBOR, MENO, PRÁCU Z PERSONÁLU
Na výber určitých riadkov tabuľky spolu s príkazom SELECT už potrebujeme kľúčové slovo WHERE, ktoré ukazuje na nejakú hodnotu alebo viacero hodnôt obsiahnutých v riadkoch, ktoré nás zaujímajú. Najjednoduchšie podmienky sú špecifikované pomocou operátorov porovnania a rovnosti (, =), ako aj kľúčového slova IS. Môže existovať niekoľko podmienok, potom sú uvedené pomocou kľúčového slova AND. Dotazy na výber riadkov majú nasledujúcu syntax:
Príklad 4 V predchádzajúcom príklade sme z tabuľky vyberali riadky len podľa hodnoty jedného stĺpca - DEPT. Predpokladajme, že teraz potrebujeme vybrať údaje o zamestnancoch, ktorí pracujú na 38. oddelení a ktorých pozícia je zamestnanec (Clerk). Ak to chcete urobiť, v časti KDE musia byť príslušné hodnoty uvedené pomocou slova A:
Príklad 5 Nech je potrebné vybrať z tabuľky Zamestnanci identifikátory a mená tých zamestnancov, ktorých výška provízie je neurčitá. Ak to chcete urobiť, v časti WHERE musíte pred zadaním hodnoty stĺpca COMM - NULL zadať nie znamienko rovnosti, ale slovo JE:
Tento dotaz vráti nasledujúce údaje:
Porovnávacie znaky sa tiež používajú na označenie hodnôt v riadkoch, ktoré sa majú vybrať.
Predikáty - slová IN, OR, BETWEEN, LIKE v klauzule WHERE - vám tiež umožňujú vybrať konkrétne rozsahy hodnôt (IN, OR, BETWEEN) alebo hodnoty v riadkoch (LIKE), ktoré chcete vybrať z tabuľky. Dotazy s predikátmi IN, OR, BETWEEN majú nasledujúcu syntax:
Dotazy s predikátom LIKE majú nasledujúcu syntax:
Príklad 7 Predpokladajme, že chcete vybrať z tabuľky Zamestnanci mená, pozície a počet odpracovaných rokov zamestnancov pracujúcich v oddeleniach s číslami 20 alebo 84. Môžete to urobiť nasledujúcim dotazom:
Výsledok vykonania dotazu:
Príklad 8 Predpokladajme, že teraz chcete vybrať rovnaké údaje z tabuľky Zamestnanci ako v predchádzajúcom príklade. Dotaz so slovom OR je podobný dotazu so slovom IN a so zoznamom hodnôt, ktoré vás zaujímajú, v zátvorkách. Žiadosť bude takáto:
Príklad 9 Vyberme z tej istej tabuľky mená, pozície a počet odpracovaných rokov pre zamestnancov, ktorých mzda sa pohybuje od 15 000 do 17 000 vrátane:
Výsledok vykonania dotazu:
Predikát LIKE sa používa na výber tých reťazcov, ktorých hodnoty obsahujú znaky uvedené za predikátom medzi apostrofmi (").
Príklad 10 Vyberme z tej istej tabuľky mená, pozície a počet odpracovaných rokov pre zamestnancov, ktorých mená začínajú na písmeno S a pozostávajú zo 7 znakov:
Znak podčiarknutia (_) znamená ľubovoľný znak. Výsledok vykonania dotazu:
Príklad 11. Vyberme z tej istej tabuľky mená, pozície a počet odpracovaných rokov pre zamestnancov, ktorých mená začínajú písmenom S a obsahujú akékoľvek iné písmená v ľubovoľnom čísle:
Symbol percenta (%) znamená ľubovoľný počet znakov. Výsledok vykonania dotazu:
Hodnoty špecifikované pomocou predikátov IN, OR, BETWEEN, LIKE je možné invertovať pomocou slova NOT. Potom budú mať požadované údaje opačný význam. Ak použijeme NOT IN (20, 84), tak sa zobrazia údaje zamestnancov, ktorí pracujú vo všetkých oddeleniach okrem tých s číslami 20 a 84. Pomocou NOT BETWEEN 15000 A 17000 môžeme získať údaje za zamestnancov, ktorých mzda nie je zahrnutá. v intervale od 15000 do 17000. Dotaz s NEPÁČI sa mi vráti údaje zamestnancov, ktorých mená nezačínajú alebo neobsahujú znaky zadané s NEPÁČI SA.
Existuje databáza "Theater". Tabuľka Play obsahuje údaje o hre. Table Team - o úlohách hercov. Tabuľka Actor je o hercoch. Table Director - o riaditeľoch. Polia tabuľky, primárne a cudzie kľúče je možné vidieť na obrázku nižšie (pre zväčšenie kliknite ľavým tlačidlom myši).
Príklad 12. Zobrazte zoznam hercov, ktorí nikdy neboli schválení pre hlavnú úlohu. V tabuľke tímov sú údaje o hlavných úlohách obsiahnuté v stĺpci hlavný tím. Ak je rola hlavná, potom je v príslušnom riadku označené "Y".
Dotazy SQL SELECT, ktoré boli doteraz analyzované, vrátili riadky, ktoré môžu byť v ľubovoľnom poradí. Často je však potrebné triediť reťazce podľa číselného poradia, abecedy a iných kritérií. To sa vykonáva pomocou kľúčového slova ORDER BY. Takéto dopyty majú nasledujúcu syntax:
Príklad 15 Nech je potrebné vybrať z tabuľky Zamestnanci zamestnancov na oddelení číslo 84 a zoradiť (zoradiť) záznamy podľa počtu odpracovaných rokov vzostupne:
Slovo ASC označuje, že poradie zoradenia je vzostupné. Toto slovo je voliteľné, pretože vzostupné zoradenie je predvolené. Výsledok vykonania dotazu:
Príklad 16 Nech je potrebné vybrať rovnaké údaje ako v predchádzajúcom príklade, ale zoradiť (zoradiť) záznamy podľa počtu odpracovaných rokov v zostupnom poradí:
Slovo DESC označuje, že poradie zoradenia je zostupné. Výsledok vykonania dotazu:
Ak pre hodnoty riadkov tabuľky nie je špecifikovaná podmienka jedinečnosti, vo výsledkoch dotazu sa môžu objaviť identické riadky. Často chcete zobraziť iba jedinečné reťazce. To sa dosiahne použitím príkazu DISTINCT za príkazom SELECT.
Príklad 17. Nech je potrebné zistiť, aké oddelenia existujú a aké pozície medzi oddeleniami, ktorých počet je menší ako 30. Môžete to urobiť pomocou nasledujúceho dotazu:
Výsledok vykonania dotazu:
Doposiaľ sme sa SQL konštruktom zaoberali príkazom SELECT, v ktorom sú podmienky, podľa ktorých sa údaje vyberajú a údaje, ktoré sa vyberajú, obsiahnuté v tej istej databázovej tabuľke. V praxi sa často stáva, že údaje, ktoré sa majú vybrať, sú obsiahnuté v jednej tabuľke a podmienky sú obsiahnuté v inej. Tu prichádzajú na pomoc poddotazy: hodnoty podmienok výberu sú vrátené z iného dotazu (poddotazu), ktorý tiež začína SELECT. Dotazy s poddotazmi môžu produkovať jeden alebo viac riadkov.
Príklad 18. Všetky rovnaké tabuľky ORG a STAFF. Nech sa vyžaduje zistiť, na ktorom oddelení pracuje zamestnanec s identifikačným číslom 280 a kde sa toto oddelenie nachádza. Ale informácie o oddeleniach sú uložené v tabuľke ORG a informácie o zamestnancoch sú uložené v tabuľke STAFF. Dá sa to urobiť pomocou nasledujúceho poddotazu, kde vonkajší SELECT je v tabuľke ORG a vnútorný SELECT je v tabuľke STAFF:
Výsledok vykonania dotazu:
Príklad 19. Teraz treba zistiť, v ktorých oddeleniach (bez duplicity) pracujú zamestnanci s platom nižším ako 13 000. K tomu je v sekcii WHERE vonkajšieho SELECTu (dotaz na tabuľku ORG) špecifikovaná podmienka, ktorá trvá rozsah hodnôt (IN) a vnútorný SELECT (do tabuľky STAFF) len vráti požadovaný rozsah hodnôt:
Relačné databázy a jazyk SQL
Disciplína: Databázy
Jazykové operátorySQL
Jazyk SQL obsahuje operátory rôznych kategórií. Akýkoľvek príkaz SQL pozostáva z rezervovaných slov a slov definovaných používateľom v súlade so stanovenými syntaktickými pravidlami. Rovnako ako v mnohých programovacích jazykoch, väčšina komponentov príkazu jazyka nerozlišuje veľké a malé písmená. Výnimkou z tohto pravidla sú, ako obvykle, znakové údaje, ktoré musia rozlišovať veľké a malé písmená a používať tie, ktoré sú potrebné na reprezentáciu údajov.
Na písanie príkazov v jazyku sa používa voľný formát, ktorý umožňuje, aby bol program SQL čitateľnejší prostredníctvom odsadenia a zarovnania.
každá fráza vo vyhlásení musí začínať na novom riadku;
začiatok každej frázy musí byť zarovnaný so začiatkom ostatných fráz výroku;
každá časť frázy by mala začínať na novom riadku s určitým odsadením vzhľadom na začiatok celej frázy, čo vám umožní zvýrazniť podradené časti;
Pre písanie operátorov platia niektoré konvencie:
veľké písmená sa používajú na písanie vyhradených slov;
malé písmená sa používajú na písanie slov definovaných používateľom;
zvislý pruh "|"" označuje potrebu vybrať jednu z niekoľkých hodnôt;
kučeravé zátvorky definujú požadovaný prvok;
hranaté zátvorky definujú voliteľný prvok;
elipsa "..." sa používa na označenie voliteľnej možnosti opakovania konštrukcie, od nuly po niekoľko krát.
Operátory definície údajov (tabuľka 1) sa používajú na opis použitých štruktúr údajov. Táto kategória zahŕňa nasledujúce príkazy: vytvoriť tabuľku, zrušiť tabuľku, zmeniť tabuľku, vytvoriť zobrazenie, ALTER VIEW, DROP VIEW.
stôl 1 . Operátori definície údajov
Operátor Vysvetlenie
vytvoriť tabuľku
DROP stôl
zmeniť stôl
VYTVORIŤ ZOBRAZENIE Vytvorte zobrazenie
zmeniť pohľad
pokles zobrazenia
Operátory manipulácie s údajmi, ktoré tvoria ďalšiu kategóriu operátorov, sú určené na vypĺňanie tabuliek údajmi a na aktualizáciu do nich načítaných informácií. Táto kategória zahŕňa tieto operátory: delete, insert, update (tabuľka 2).
tabuľka 2 . Operátori manipulácie s údajmi
OperátorVysvetlenie
Odstrániť Odstráni jeden alebo viac riadkov, ktoré zodpovedajú podmienkam
filtrovanie zo základnej tabuľky
INSERT Vloží jeden riadok do základnej tabuľky
update Aktualizuje hodnoty jedného alebo viacerých stĺpcov v jednom alebo viacerých
viaceré riadky vyhovujúce podmienkam filtra
Na výber informácií z databázy je určený dopytovací jazyk, ktorý je v jazyku SQL reprezentovaný jedným príkazom select (tabuľka 3).
Tabuľka 3 Jazyk dopytu
Operátor Vysvetlenie
vyberte Vyberie riadky; operátor, ktorý vám umožňuje vytvárať výsledné
tabuľku zodpovedajúcu dopytu
Okrem uvedených kategórií operátorov, ktorých účel nie je ťažké si predstaviť po prečítaní vysvetliviek v tabuľkách, je potrebné vyčleniť ešte dvoch: operátorov riadenia transakcií (tabuľka 4) a nástroje na správu údajov (tabuľka 5). .
Tabuľka 4. Správa transakcií
Vysvetlenie operátora
commit Dokončenie transakcie - dokončenie spracovania informácií,
spojené do transakcie
rollback Rollback transakcia - vrátiť späť zmeny vykonané počas vykonávania
stav databázy, označte si ju, aby ste sa k nej neskôr mohli vrátiť
Tabuľka 5 . Správa údajov
Vysvetlenie operátora
ALTER DATABASE Zmena množiny základných objektov v databáze, obmedzenia týkajúce sa
celú databázu
ALTER DBAREA Úprava predtým vytvorenej úložnej oblasti
ALTER PASSWORD Zmena hesla pre celú databázu
CREATE DATABASE Vytvorte novú databázu
VYTVORIŤ DBAREA Vytvorte nový úložný priestor a sprístupnite ho na hosťovanie
DROP DATABASE Zrušte existujúcu databázu
DROP DBAREA Vymažte existujúcu pamäťovú oblasť (ak momentálne neobsahuje
aktívne údaje sa nachádzajú)
GRANT Udelenie prístupových práv k viacerým akciám na nejakom databázovom objekte
REVOKE Zrušenie prístupových práv k niektorému objektu alebo niektorým akciám
objekt
V komerčných DBMS je množina základných operátorov rozšírená. Väčšina DBMS obsahuje príkazy na definovanie a vymazanie indexu spustenia uložených procedúr a príkazov na definovanie spúšťačov.
Oboznámenie sa s týmto jazykom je zvykom začať zvážením možností dopytovacieho jazyka, ktorý je v jazyku SQL reprezentovaný jediným príkazom select, pretože tento výkonný príkaz je, samozrejme, aj najkomplexnejší. Okrem toho je zaujímavé sledovať, ako sa dá v budúcnosti využiť v spojení s operátormi manipulácie s údajmi.
Vyberte vyhlásenieSELECT . Vytváranie dopytov do databázy
Účelom príkazu select je vybrať a zobraziť údaje z jednej alebo viacerých databázových tabuliek. Tento extrémne výkonný, najčastejšie používaný operátor implementuje všetky operácie relačnej algebry. Tá istá požiadavka môže byť realizovaná niekoľkými spôsobmi, ktoré sa môžu výrazne líšiť v čase vykonania.
Vyberte formát výpisu:
VYBERTE *|<список полей>OD<список таблиц>
Zadané poradie fráz v príkaze select sa nedá zmeniť, ale nie sú potrebné všetky jeho časti. Povinné klauzuly zahŕňajú len klauzuly select a from. Všetky ostatné časti operátora môžu byť použité podľa uváženia programátora. Vysvetlenie:
□ Fráza vyberte:
Prítomnosť kľúčových slov všetky(predvolené) znamená, že výsledná tabuľka obsahuje všetky riadky, ktoré spĺňajú podmienky dopytu, čo môže viesť k tomu, že sa vo výslednej tabuľke objavia duplicitné riadky;
Kľúčové slovo odlišný navrhnutý tak, aby zosúladil tabuľku s princípmi teórie vzťahov, ktorá predpokladá absenciu duplicitných riadkov;
symbol " * “ definuje veľmi bežnú situáciu, keď množina výsledkov obsahuje všetky stĺpce z pôvodnej tabuľky dotazov.
□ Vo fráze od je zadaný zoznam zdrojových tabuliek dotazu.
□ Vo fráze kde sú definované podmienky pre výber riadkov výsledkov alebo podmienky pre spájanie riadkov zdrojových tabuliek, podobne ako pri operácii podmieneného spojenia v relačnej algebre. Ako podmienky výberu možno použiť nasledujúce predikáty:
Porovnania "=,<>, >, <, >=, <=" - для сравнения результатов вычисления двух выражений; более сложные выражения строятся с помощью логических операторов AND, OR, NOT; значения выражений вычисляются в порядке, который определяется приоритетом используемых операторов и наличием скобок в выражении;
medziAaIN- predikát je pravdivý, keď vyhodnotená hodnota výrazu spadá do určeného rozsahu (predikát niemedziaaIN true, keď porovnávaná hodnota nespadá do určeného intervalu);
v- predikát je pravdivý, keď je porovnávaná hodnota zahrnutá do množiny daných hodnôt; v tomto prípade môže byť množina hodnôt špecifikovaná jednoduchým enumeráciou alebo vstavaným poddotazom (predikát nie je pravdivý, keď porovnávaná hodnota nie je zahrnutá v špecifikovanej množine);
Páči sa mi to A niePáči sa mi to- predikáty, ktorých význam je opačný, vyžadujú špecifikáciu šablóny, s ktorou sa daná hodnota porovnáva; podobný predikát je pravdivý, keď sa porovnávaná hodnota zhoduje so vzorom, a inak je nepravdivý;
JEnulový- predikát používaný na zistenie rovnosti hodnoty nejakého atribútu s nedefinovanou hodnotou:
<имя атрибута> JEnulový- má hodnotu true, ak má špecifikovaný atribút v tomto reťazci nedefinovanú hodnotu a hodnotu false, inak;
<имя атрибута> JENIEnulový- všetko sa deje naopak.
existujú A nieexistujú Používa sa v inline poddotazoch.
□ Vo fráze skupinapodľa je nastavený zoznam zoskupovacích polí.
□ Vo fráze majúce sú stanovené predikátové podmienky kladené na každú skupinu.
□ Vo fráze objednaťpodľa je zadaný zoznam polí zoradenia výsledkov, teda zoznam polí, ktorý určuje poradie zoradenia vo výslednej tabuľke.
Štandard SQL definuje koncept hodnoty NULL, čo si vyžiadalo použitie trojhodnotovej logiky, kde sa všetky logické operácie vykonávajú v súlade s pravdivostnou tabuľkou nižšie (tabuľka 6).
Tabuľka 6 . pravdivostná tabuľka
A A B | ||||
TRUE | ||||
Žiadosť 1
Zobrazenie informácií o katedrách univerzity.
Táto úloha sa obmedzuje na výber a zobrazenie informácií z jednej tabuľky a všetky jej riadky a všetky jej stĺpce podliehajú výstupu:
VYBERTE * Z oddelenia
Výsledkom takéhoto dotazu bude tabuľka obsahujúca informácie o všetkých katedrách univerzity:
kód kaf |
Meno kaf |
Nom_telef |
Nom_Auditoria |
Col_sotr | |
Ivanov T.M. |
|||||
Všeobecná matematika |
Machov K L. |
||||
Ross L.T. |
|||||
Firsov S.S. |
|||||
Aplikovaná matematika |
Lyakhova I.T. |
Žiadosť 2
Zobrazte telefónne čísla katedier univerzity.
Výsledok takéhoto dotazu by mal obsahovať iba dva stĺpce: názov_ kaf A Žiadne M_ telef, takže samotný dotaz by mal vyzerať takto:
SELECT Name_kaf, Nom_telef FROM kafedra
Výsledková tabuľka:
názovkaf Nomjelef
Fyzika 23-34-24
Všeobecná matematika 23-65-43
Príbehy 23-78-72
Grafy 23-99-77
Aplikovaná matematika 23-66-62
Vo vyššie vytvorených dopytoch bolo potrebné zobraziť všetky riadky tabuľky špecifikované v klauzule from. Ak výber potrebuje obmedziť počet výstupných riadkov podľa nejakej podmienky, potom to možno dosiahnuť použitím klauzuly where v dotaze. Do klauzuly where môžete zahrnúť jednu alebo viac podmienok výberu riadkov.
Žiadosť 3
Zobrazenie informácií o oddelení grafiky.
SELECT * FROM kafedra WHERE Name_kaf = "Grafy"
Odpoveď na takúto požiadavku bude obsahovať iba jeden riadok:
Kod.kaf Name_kaf NomjelefNom_Auditoria Col_sotr Zav_kaf
004 Charts 23-99-77 385 18 Firsov C.C.
Žiadosť 4
Zobrazte informácie o univerzitných katedrách umiestnených na prízemí s prihliadnutím na skutočnosť, že miestnosti na prízemí sú v rozsahu od 1 do 99.
Žiadosť bude vyzerať takto:
SELECT * FROM kafedra WHERE Nom_Auditoria BETWEEN 1 A 99
Výsledok dotazu:
KodjcafMeno_kafNorn lelef Norn Audit oria Coi_sotr Zavkaf
002 Všeobecná matematika 23-65-43 003 22 Machov K.L.
matematiky
Vo všeobecnosti sú riadky vo výslednej tabuľke nejakým spôsobom zobrazené v neusporiadanom stave. Prezeranie a analýza takéhoto materiálu nie je vždy pohodlné. Poradie podľa klauzuly sa používa na zoradenie riadkov podľa ľubovoľného stĺpca. Obsahuje čiarkami oddelený zoznam názvov stĺpcov, podľa ktorých chcete zoradiť zobrazené informácie. Táto fráza musí byť v príkaze select vždy na poslednom mieste a ak je prítomná, bude možné zoradiť riadky podľa vzostupných (asc) alebo zostupných (desc) hodnôt zadaného stĺpca alebo kombinácie zadaných stĺpcov, bez ohľadu na to, či tieto stĺpce sú vo výslednej tabuľke prítomné alebo nie.
Žiadosť 5
Zobrazte informácie o katedrách univerzity vo forme zoradené podľa stĺpcanázov_ kafvo vzostupnom poradí.
Žiadosť bude vyzerať takto:
SELECT * FROM kafedra ORDER BY Name_caf ASC
Výsledok tejto žiadosti:
Kod_kaf Name_kaf Nomjelef Nom_Auditoria Col_sotr Zav kaf
004 Grafy 23-E9-77 385 18 FirsovS.S.
003 Stories 23-78-72 465 16 Ross L.T.
002 General ma- 23-65-43 003 22 Machov K.L.
témy
005 Podané 23-66-62 028 24 Lyakhova I.T.
matematiky
001 Fyzici 23-34-24 132 25 Ivanov T.M.
Pre lepšiu viditeľnosť je často užitočné zoradiť zobrazené informácie do niekoľkých stĺpcov. Ak to chcete urobiť, názvy stĺpcov triedenia musia byť uvedené oddelené čiarkami v poradí podľa klauzuly. V tomto prípade bude výstupná tabuľka obsahovať riadky zoradené podľa prvého stĺpca špecifikovaného v poradí podľa klauzuly a riadky, ktoré majú v tomto stĺpci rovnaké hodnoty, budú zoradené podľa hodnôt druhého stĺpca atď. zľava doprava.