Windows.  Vírusy.  Notebooky.  internet.  kancelária.  Verejné služby.  Vodiči

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.

Čo je jazyk SQL a príkaz SELECT

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

  • * - zobraziť všetky údaje;
  • FROM - zo zdroja;
  • Tabuľka – názov zdroja ( v našom prípade tabuľka).

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.

Podmienka výberu - doložka WHERE

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).

Porovnávacie operátory v SQL

  • ">" - viac ako čokoľvek iné;
  • «<» – меньше чего-нибудь;
  • "=" - rovné;
  • «<>" - nerovná sa;
  • ">=" - väčšie alebo rovné;
  • «<=» – меньше или равно.

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

Triedenie OBJEDNAŤ PODĽA

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é.

Súhrnné funkcie v SQL

V SQL sú veľmi užitočné takzvané agregačné funkcie, konkrétne:

  • COUNT— počet hodnôt v určenom stĺpci;
  • SUM je súčet hodnôt v zadanom stĺpci;
  • AVG- priemerná hodnota v určenom stĺpci;
  • MIN— minimálna hodnota v špecifikovanom stĺpci;
  • MAX— maximálna hodnota v špecifikovanom stĺpci.

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

GROUP BY

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.

Hodnota NULL v SQL

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.

Zjednodušená syntax príkazu SELECT

SELECT<Список полей>alebo * , ...] , ...]

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:

  • statické používanie jazyka ( statický SQL) - text programu obsahuje volania funkcií SQL, ktoré sú po kompilácii zahrnuté v spustiteľnom module.
  • dynamický používanie jazyka ( dynamický SQL) – dynamická konštrukcia volaní funkcií SQL a ich interpretácia. Napríklad, môžete pristupovať k údajom vzdialenej databázy počas vykonávania programu.

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.

Základné operátory dotazovacieho jazyka SQL

Príkazy SQL sú podmienene rozdelené na 2 podjazyky:

  1. Jazyk definície údajov DDL;
  2. Jazyk manipulácie s údajmi DML.

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.

Úvod

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:

  • definícia databázových objektov;
  • manipulácia s hodnotami;
  • ochrana a riadenie;
  • parametre relácie;
  • základné informácie;
  • statický SQL;
  • dynamický SQL.

SQL príkazy na manipuláciu s údajmi

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:

príkaz SELECT

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:

Trochu viac o SELECT. Použitie agregačných funkcií

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.

Syntax príkazu SELECT a poradie spracovania

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.

Operátori porovnávania údajov

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á.

PÁČI SA MI TO

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ý.

CASE

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.

Operátori definície údajov

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.

DROP TABLE

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.

VYTVORIŤ INDEX

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.

ALTER TABLE

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;

VYTVORIŤ ZOBRAZENIE

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.

Trochu o funkciách

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.

Ďalší operátori

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.

Záver

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.

SELECT na výber stĺpcov tabuľky

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ť.

Pomocou predikátov SELECT a IN, OR, BETWEEN, LIKE

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.

Napíšte SQL dotazy s predikátmi SELECT a IN, NOT IN, BETWEEN a potom si pozrite riešenia

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".

SELECT a ORDER BY - triedenie (poradie) riadkov

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:


SELECT a DISTINCT - odstránenie duplicitných riadkov

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:


SELECT v poddotazoch SQL

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

1.1. Jednoduché otázky

Ž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.

Ak si všimnete chybu, vyberte časť textu a stlačte Ctrl + Enter
ZDIEĽAM: