CATEGORII DOCUMENTE |
Bulgara | Ceha slovaca | Croata | Engleza | Estona | Finlandeza | Franceza |
Germana | Italiana | Letona | Lituaniana | Maghiara | Olandeza | Poloneza |
Sarba | Slovena | Spaniola | Suedeza | Turca | Ucraineana |
DOCUMENTE SIMILARE |
|
TERMENI importanti pentru acest document |
|
Dotazovací jazyk SQL
Jazyk SQL je v současné době nejrozšířenějším rozhraním, pomocí kterého je možné komunikovat s DB servery. Jedná se neprocedurální jazyk, tzn. Nejde v něm vytvářet nějaké smyčky, cykly apod., takže v podstatě funguje tak, že DB serveru pošleme nějaký příkaz a on vrátí buď požadovaná data nebo potvrzení o provedení akce. SQL vychází z běžné hovorové angličtiny a proto je pro člověka zápis SQL příkazu srozumitelný.
Při nejjednodušším pohledu jsou v SQL nejdůležitější tyto příkazy:
SELECT – umožňuje zobrazovat data uložená v DB
INSERT – umožňuje data vkládat do DB
UPDATE – umožňuje modifikovat data
DELETE – umožňuje mazat data
Příklad elementárních dotazů:
Vypíše všechny informace o všech studentech z tabulky studenti
SELECT jméno, příjmení FROM studenti WHERE vek>22 AND bydliste = ‘Brno’
Vypíše jméno a přijímení studentů starších jak 22 let a bydlících v Brně
Vypíše počet všch studentů
SELECT COUNT(*) FROM studenti WHERE vek>22 AND bydliste = ‘Brno’
Vypíše počet všch studentů starších jak 22 let a bydlících v Brně
INSERT INTO studenti(jméno,
přijímení, věk, bydliště) VALUES (‘Jan’, ‘Novák’, 22, ‘
Vloží do tabulky studenti nového studena Jana Nováka, 22 let starého a z Brna
Upraví jména všech studentů mající ve jméně zadáno Honza na správné Jan.
DELETE studenti WHERE bydliště=’Brno’
Smaže z tabulky studenti všechny bydlící v Brně.
Smaže všechny studenty.
Pozn.:
Funkce COUNT z výše uvedených příkladů spočítá počet záznamů. Stejně tak existuje celá řada dalších funkcí, např. AVG(sloupec_s_číslem) pro průměrnou hodnotu, MAX(sloupec_s_číslem) pro maximum, SUM(sloupec_s_číslem) pro sumu apod. Je toho celá řada, ale to všechno je v manuálech.
Ukázkové příklady jsou velmi jednoduché dotazy pracující s jednou tabulkou a SQL server pak ví, že třeba položka jméno patří tabulce studenti, protože nikde jinde patřit nemůže, když pracujeme s jednou tabulkou. Složitější SQL dotazy mohou obsahovat více tabulek, resp. provádět jejich spojování atd.. V těchto případech se může stát, že se sejdou 2 tabulky, kde budou mít sloupce v různých tabulkách stejné označení. Např. jméno studenta v tabulce studenti a jméno učitele v tabulce učitelů. V takovém případě se v SQL dotazu používá tečková konvence (znáte z Dephi).
studenti.jméno - identifikuje jednoznačně sloupec jméno v tabulce studenti
učitelé.jméno - identifikuje jednoznačně sloupec jméno v tabulce učitelé
V následujících příkladech je tato tečková konvence použita. Dochází rovněž ke spojování tabulek a řazení podle abecedy atd.
UČITELÉ(č-uč, jméno, příjmení, č-odboru)
ODBORY(č-odboru, název-odboru)
Dotazem SQL zjistit názvy všech odborů a počty učitelů na nich zařazení
SELECT odbory.název-odboru, COUNT(učitelé.č.uč)
FROM UČITELÉ, ODBORY
WHERE učitelé.č-odboru=odbory.č-odboru
GROUP BY odbory.název-odboru
ZAMĚSTNANCI(rodné-č, jméno, příjmení)
DĚTI(rodné-č-rodiče, jméno-dítěte)
Dotazem SQL zjistit všechny bezdětné zaměstnance
SELECT zaměstnanci.jméno, zaměstnanci.příjmení
WHERE zaměstnanci.rodné-č NOT IN (děti.rodné-č-rodiče)
FROM zaměstnanci, děti
PRODEJCI(č-prodejce, jméno, příjmení)
FAKTURY(č-faktury, č-zboží, počet-kusů, datum, č-prodejce)
ZBOŽÍ(č-zboží, cena-za-kus)
Dotazem SQL zjistit všechny prodejce a celkové částky, které jim byly vyfakturovány.
SELECT prodejci.příjmení, SUM(faktury.počet-kusů*zboží.cena-za-kus)
FROM prodejci, faktury, zboží
WHERE prodejci.č-prodejce=faktury.č-prodejce AND zboží.č-zboží=faktury.č-zboží
GROUP BY prodejci.příjmení
HEREC(č-herce, jméno, příjmení)
REPERTOÁR(č-hry, název-hry)
OBSAZENÍ(č-herce, č-hry)
Dotazem SQL určit, kolik herců je obsazeno ve hře Hamlet.
SELECT COUNT(*)
FROM repertoár, obsazení
WHERE repertoár.č-hry=obsazení.č-hry AND repertoár.název-hry LIKE ‘Hamlet’
HEREC(č-herce, jméno, příjmení)
REPERTOÁR(č-hry, název-hry)
OBSAZENÍ(č-herce, č-hry)
Dotazem SQL určit všechny herce (jejich jména a příjmení), kteří hrají ve hře Hamlet a uspořádat je v abecedním pořadí.
SELECT herec.jméno, herec.příjmení
FROM herec, repertoár, obsazení
WHERE repertoár.č-hry=obsazení.č-hry AND repertoár.název-hry LIKE ‘Hamlet’
ORDER BY herec.příjmení, herec.jméno ASC
SKLAD(č-skladu, adresa, …)
MNOŽSTVÍ(č-skladu, č-součástky, počet-kusů)
Dotazem SQL zjistit adresy všech skladů, kde mají součástku 10 alespoň ve 20 kusech.
SELECT sklad.adresa
FROM sklad, množství
WHERE sklad.č-skladu=množství.č-skladu AND množství.počet-kusů >= 20 AND množství.č-součástky=10
MAJITEL(rodné-č, jméno, příjmení)
BARVA(kód-barvy, barva)
TYP(kód-typu, název-typu)
MÁ-AUTO(rodné-č, SPZ, kód-typu, kód-barvy)
Dotazem SQL zjistit jména a příjmení všech majitelů modré Felicie
SELECT majitel.jméno, majitel.příjmení
FROM majitel, barva, typ, má-auto
WHERE majitel.rodné-č=má-auto.rodné-č AND barva.kód-barvy = má-auto.kód-barvy AND typ.kód-typu=má-auto.kód.barvy AND barva.barva = ‘modrá‘ AND typ.název-typu = ‘Felicie‘
LÉKAŘ(č-licence, specializace)
PACIENT(rodné-č, jméno, příjmení)
NÁVŠTĚVA(rodné-č, č-licence, datum)
Dotazem SQL zjistit specializace lékařů, jejichž pomoc vyhledal pacient s rodným číslem 600101/111
SELECT DISTINCT lékař.specializace
FROM lékař, návštěva
WHERE lékař.č-licence=návštěva.č-licence AND návštěva.rodné-č=’600101/111’
LÉKAŘ(č-licence, specializace)
PACIENT(rodné-č, jméno, příjmení)
NÁVŠTĚVA(rodné-č, č-licence, datum)
Dotazem SQL zjistit datum všech návštěv pacienta s rodným číslem 600101/111
SELECT návštěva.datum FROM návštěva WHERE návštěva.rodné-č=‘600101/111‘
UČITEL(os-číslo, jméno, příjmení)
PŘEDMĚT(kód-př, název-předmětu)
CO-UČÍ(os-číslo, kód-př)
Dotazem SQL zjistit názvy všech předmětů, které učí učitel Karásek. (Předpokládejme, že neexistují 2 učitelé se stejným jménem)
SELECT předmět.název-předmětu
FROM učitel, předmět, co-učí
WHERE učitel.os-číslo=co-učí.os-číslo AND předmět.kód-př=co-učí.kód-př AND učitel.příjmení=’Karásek‘
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 589
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved