Príkaz SQL SELECT

SQL (Structured Query Language) je programovací jazyk 4. generácie a the Jazyk pre nastavenie, správu a dopytovanie relačných databáz. Bola vyvinutá spoločnosťou IBM ako súčasť výskumného projektu a medzinárodne štandardizovaná v roku 1987. (Takmer) všetky databázové systémy pracujú s týmto jazykom.

select

Klasifikácia funkcií SQL

Príkazy SQL sú rozdelené do troch tried:

DDL - jazyk definície údajov
Príkazy na definovanie tabuliek a iných dátových štruktúr

DCL - jazyk riadenia údajov
Príkazy na kontrolu prístupových práv

DML - jazyk pre manipuláciu s údajmi
Príkazy na manipuláciu s údajmi a dotazy na ne

super DDL DCL DML
Príklady Vytvoriť databázu
VYTVORIŤ DATABÁZU
Udeliť prístupové práva
GRANT
Dopytová tabuľka
VYBERTE
Vytvorte tabuľku
VYTVORIŤ TABUĽKU
Odvolať prístupové práva
ODVOLAŤ
Odstrániť riadok tabuľky
ODSTRÁNIŤ
Zmeniť štruktúru tabuľky
ZMENIŤ TABUĽKU
Vložte riadok tabuľky
VLOŽTE
Odstrániť tabuľku
TABUĽKA DROP
Zmena údajov tabuľky
AKTUALIZÁCIA
Premenovať tabuľku
PREJMENOVAŤ
Vytvorte virtuálnu tabuľku
VYTVORIŤ ZOBRAZENIE

Príkaz DML SELECT

Dotaz SQL sa vykonáva príkazom SELECT, ktorý špecifikuje až šesť komponentov. Všeobecná syntax má formu:

VYBERTE [VŠETKY | ODLIŠNÝ]
Z tabuľky [alias] [tabuľka [alias]] .
[KDE]
[Rozdeliť SKUPINU PODĽA [HAVING]]
[OBJEDNAŤ PODĽA stĺpcov [ASC | DESC]. ];

Zložitú syntax môžeme chápať takto:

doložka Vysvetlenie
VYBERTE [DISTINCT] Vyberte si hodnoty zo stĺpca (stĺpcov) [viac záznamov iba raz].
ZO . von stôl alebo stoly .
KDE . v ktorom podmienka (podmienky) by mali byť splnené .
SKUPINA PODĽA . a skupina výstup všetkých riadkov s rovnakou hodnotou atribútu do jedného .
MAJÚCI . byť v tom musia/musia platiť nasledujúce dodatočné podmienky .
OBJEDNAŤ [ASC/DESC] . a zoradiť podľa stĺpcov [vzostupne alebo zostupne].

Príkazy SQL majú dĺžku až 256 znakov a musia byť ukončené bodkočiarkou. Identifikátory atribútov, ktoré obsahujú medzery alebo interpunkčné znamienka, musia byť umiestnené v hranatých zátvorkách.

Výber v SQL

Od stola Študent mali by byť vybrané všetky riadky, ktoré obsahujú názov "Mьller".
Výber má formu: SName = 'Mьller' (študent)

Prevod v SQL je: SELECT * FROM student WHERE Name = 'Mueller';

Doložka WHERE preto poskytuje výber. Na zobrazenie toho, že vo výstupnej tabuľke by sa mali zobraziť všetky stĺpce, sa používa žolík - symbol percenta alebo v MS-ACCEES symbol hviezdy -.

Teraz chcete od stola Študent mali by byť vybrané všetky riadky, ktoré obsahujú meno "Mьller" a ktorých meno začína na "O".
Výber má formu: SName = 'Mьller' A krstné meno začína na 'O' (žiak)

Implementácia v jazyku SQL je: SELECT * FROM pupil WHERE name = 'Müller' A meno LIKE 'O%';

Podmienky je možné použiť s AND, OR a NIE odkaz. Symbol hviezdy stojí ako zástupný symbol pre ľubovoľnú postupnosť znakov. Ak sa má skryť jeden znak, otáznik sa použije ako zástupný znak. PÁČI SA MI TO sa používa v zmysle „TAK AKO“.

operátor Vysvetlenie
= => <>porovnáva jednu hodnotu atribútu s inou alebo konštantou
Rovnosť, nerovnosť menšia, menšia alebo rovná, väčšia alebo rovná, väčšia ako
MEDZI. A . porovnáva, či hodnota atribútu leží medzi dvoma limitmi
IN (.)porovnáva, či je hodnota atribútu prvkom množiny
PÁČI SA MI TOporovnanie reťazcov používajúcich operátory podobnosti s rozdielom medzi malými a veľkými písmenami:
%: Zástupný symbol pre ľubovoľný znak (v programe MS Access: *)
_: Zástupný znak pre znak (v MS-Access:?)
NIE JE (NIE) NULLSkontroluje, či je (ne) hodnota atribútu nedefinovaná

Projekcia v SQL

Od stola Študent všetky stĺpce s atribútom „Názov“ by mali byť premietnuté.
Projekcia má formu: PNname (student)

Implementácia v jazyku SQL je: VYBERTE Meno OD študenta;

Na rozdiel od projekcie podľa relačnej algebry zobrazuje SQL všetky viaceré položky. Aby sa tomu zabránilo, musí sa do príkazu SELECT pridať atribút DISTINCT.

Implementácia v jazyku SQL je: SELECT DISTINCT Name FROM student;

Klauzula SELECT preto poskytuje projekciu.

Vykonávanie projekcie a výberu jeden po druhom

Od stola Študent mali by sa zobraziť krstné mená všetkých študentov, ktorých priezvisko je Müller.
Dotaz má nasledujúcu formu: PVorname (SName = 'Mьller' (študent))

Implementácia v jazyku SQL je: VYBERTE krstné meno OD ŽIAKA KDE meno = 'Müller';

Spracovanie príkazu SQL sa vždy vykonáva zvnútra, t.j. H. najskôr výber, potom projekcia.

Pripojte sa k SQL

Z tabuliek pre študentov a kurzy by mala byť vytvorená tabuľka. Spoločným atribútom je SNr.

Implementácia v SQL je:
VYBERTE *
OD študentov VNÚTORNÉ PRIPOJTE sa ku kurzom ON students.no = courses.no
OBJEDNÁVKA podľa kurzov. Zmeškané hodiny DESC;

Výsledkom je a VNÚTORNÉ PRIPOJENIE, Výsledná tabuľka je zoradená zostupne podľa absentujúcich hodín. Takýto výsledok bude i. d. Spravidla sa nechce. Často stačí iba niekoľko stĺpov kompozitu - PRÍRODNÉ SPOJENIE.