PORTÁLOVÉ SYSTÉMY Přednáška č. 9 Jan Górecki gorecki@opf.slu.cz > SQL – Structured Query Language •Vytvoření tabulky • CREATE TABLE [název_tabulky] • (název_sloupce1 typ • [, název_sloupce2 typ, název_sloupce3 typ, …]) •Příklad: • CREATE TABLE telefony ( • id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, jmeno VARCHAR(40), • telefon VARCHAR(14), • email VARCHAR(60), • pracoviste INT) • • Vytvoření tabulky v dané databázi •Vytvoření tabulky tabulka v databázi databaze • CREATE TABLE databaze.tabulka (název_sloupce1 typ • [, název_sloupce2 typ, název_sloupce3 typ, …]) • SQL – Structured Query Language •Vložení záznamu do tabulky • • INSERT INTO [název_tabulky] (sloupec, ...) VALUES (hodnota, ...) • •Příklad • INSERT INTO telefony (jmeno, telefon, email, pracoviste) VALUES ('Jan Novák', '+420212131415', 'novak@email.cz'‚ '25' ) • • SQL – Structured Query Language •Výběr záznamů z databáze • SELECT [co vybrat (které sloupce)] FROM [z jaké tabulky nebo tabulek] WHERE [podmínka] GROUP BY [podle čeho seskupit] ORDER BY [seřazení podle něčeho] •Příklad – výběr celé tabulky: • SELECT * FROM telefony SQL – Structured Query Language •Změna hodnot v tabulce: • UPDATE tabulka SET sloupec=hodnota [,jiný sloupec=hodnota...] WHERE neco='neco‚ • •Příklad: • UPDATE telefony SET pracoviste=26 WHERE pracoviste=25 SQL – Structured Query Language •Smazání záznamů v tabulce: • DELETE FROM název_tabulky WHERE název_sloupce=hodnota •Příklad: • DELETE FROM telefony WHERE pracoviste=26 • • Data ve více tabulkách id nazev_domu mesto pocet_pokoju 1 Penzion Aldo Karviná 15 2 Hotel Clarion Ostrava 30 3 Hotel Hilton Praha 200 id jméno vlastni bydli_v 1 Jan Górecki - - 2 Kamil Rychlý - 1 3 Emil Sklář - 3 4 Jan Novák 1 2 5 Petr Koukal 2 3 6 Richard Hilton 3 3 Tabulka dum Tabulka osoba ERD diagram Dům Osoba Vlastní Bydlí v Bydlí v i vlastní Příkaz SELECT pro více tabulek •SELECT dum.id, osoba.id FROM dum, osoba •- kartézský součin tabulek dum a osoba – 18 řádků dum.id Osoba.id 1 1 1 2 1 3 … 1 6 2 1 … 3 6 Realizace vazby Vlastní •SELECT dum.id, osoba.id, dum.nazev_domu, osoba.jmeno, osoba.vlastni FROM dum, osoba WHERE dum.id = osoba.vlastni • dum.id osoba.id dum.nazev_domu osoba.jmeno osoba.vlastni 1 4 Penzion Aldo Jan Novák 1 2 5 Hotel Clarion Petr Koukal 2 3 6 Hotel Hilton Richard Hilton 3 Realizace vazby Vlastní Realizace vazby Bydlí v •SELECT dum.id, osoba.id, dum.nazev_domu, osoba.jmeno, osoba.bydli_v FROM dum, osoba WHERE dum.id = osoba.bydli_v • dum.id osoba.id dum.nazev_domu osoba.jmeno osoba.bydli_v 1 2 Penzion Aldo Kamil Rychlý 1 3 3 Hotel Hilton Emil Sklář 3 2 4 Hotel Clarion Jan Novák 2 3 5 Hotel Hilton Petr Koukal 3 3 6 Hotel Hilton Richard Hilton 3 Realizace vazby Bydlí v Realizace vazby Bydlí v i Vlastní •SELECT dum.id, osoba.id, dum.nazev_domu, osoba.jmeno, osoba.vlastni, osoba.bydli_v FROM dum, osoba WHERE dum.id = osoba.vlastni AND dum.id = osoba.bydli_v • • • •- pouze pan Hilton bydlí ve svém vlastním domě • dum.id osoba.id dum.nazev_domu osoba.jmeno osoba.vlastni osoba.bydli_v 3 6 Hotel Hilton Richard Hilton 3 3