Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
BulgaraCeha slovacaCroataEnglezaEstonaFinlandezaFranceza
GermanaItalianaLetonaLituanianaMaghiaraOlandezaPoloneza
SarbaSlovenaSpaniolaSuedezaTurcaUcraineana

BiologieBudovaChemieEkologieEkonomieElektřinaFinanceFyzikální
GramatikaHistorieHudbaJídloKnihyKomunikaceKosmetikaLékařství
LiteraturaManagementMarketingMatematikaObchodPočítačůPolitikaPrávo
PsychologieRůznéReceptySociologieSportSprávaTechnikaúčetní
VzděláníZemědělstvíZeměpisžurnalistika

Dotazovací jazyk SQL

počítačů



+ Font mai mare | - Font mai mic



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ů:

SELECT * FROM studenti

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ě

SELECT COUNT(*) FROM studenti

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, ‘Brno’)

Vloží do tabulky studenti nového studena Jana Nováka, 22 let starého a z Brna

UPDATE studenti SET jmeno=’Jan’ WHERE jmeno=’Honza’

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

DELETE studenti

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



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 545
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved