Obsah obrázku voda, exteriér, budova, vsedě Popis byl vytvořen automaticky Z3104 GEODATABÁZE – LEKCE 3 Mgr. Martina Klocová OBSAH HODINY •Připojení – kontrola připojení •Trocha opakování ☺ •Trocha teorie – série a cizí klíč •Praxe – úprava tabulek INSTALACE A PŘIPOJENÍ •Ptejte se ☺ OPÁČKO •NOT NULL •Musíte zadat do tabulky primární klíč? •DROP/DELETE SÉRIE CREATE TABLE student ( id SERIAL PRIMARY KEY, jmeno VARCHAR(32), prijmeni VARCHAR(64) ); Automatické přidání id, není již potřeba zadávat ručně. INSERT INTO student (jmeno, prijmeni) VALUES ('Jan', 'Novák'); REFERENCES – ODKAZ NA CIZÍ KLÍČ CREATE TABLE autor ( id SERIAL PRIMARY KEY, jmeno VARCHAR(32), prijmeni VARCHAR(64) ); CREATE TABLE kniha ( isbn INT PRIMARY KEY, nazev VARCHAR(64), autor_id INT REFERENCES autor(id) ); •Pokud chceme kontrolovat cizí klíč - primární klíč jiné tabulky VKLÁDÁNÍ ZÁZNAMU S CIZÍM KLÍČEM INSERT INTO autor (jmeno, prijmeni) VALUES ('Jan','Novák‘); Zjistit ID vloženého autora: SELECT * FROM autor; Vložit záznam knihy INSERT INTO kniha VALUES (123456, 'Super kniha 1', 100); PŘEJMENOVÁNÍ TABULKY ALTER TABLE jmeno_tabulky RENAME TO nove_jmeno_tabulky; Příkaz ALTER slouží obecně k úpravě DDL příkazů. POJMENOVÁNÍ PRIMÁRNÍHO KLÍČ CREATE TABLE lide ( jmeno TEXT CONSTRAINT jedinecne_jmeno PRIMARY KEY, vek INT ); POJMENOVÁNÍ CHECK A UNIQUE CREATE TABLE lide ( jmeno TEXT, vek INT CONSTRAINT uz_asi_po_smrti CHECK( vek < 150) ); CREATE TABLE lide ( jmeno TEXT CONSTRAINT jedinecne_jmeno UNIQUE, vek INT ); PŘIDÁNÍ DO SLOUPCE ALTER TABLE jmeno_tabulky ADD CONSTRAINT jmeno_PK PRIMARY KEY (jmeno_sloupce); ALTER TABLE jmeno_tabulky ADD CONSTRAINT jmeno_omezeni UNIQUE (jmeno_sloupce); ALTER TABLE jmeno_tabulky ADD CONSTRAINT jmeno_omezeni CHECK (podmínka); ODSTRANĚNÍ ALTER TABLE jmeno_tabulky DROP CONSTRAINT jmeno_omezeni; PŘIDÁNÍ/ODSTRANĚNÍ NOT NULL ALTER TABLE jmeno_tabulky ALTER COLUMN jmeno_sloupce SET NOT NULL; ALTER TABLE jmeno_tabulky ALTER COLUMN jmeno_sloupce DROP NOT NULL; DALŠÍ ZMĚNY •Změna datového typu sloupce ALTER TABLE nazev_tabulky ALTER COLUMN nazev_sloupce TYPE novy_datovy_typ; •Přejmenování sloupce ALTER TABLE nazev_tabulky RENAME COLUMN nazev_sloupce TO novy_nazev_sloupce; •Odstranění sloupce ALTER TABLE nazev_tabulky DROP COLUMN nazev_sloupce; A TEĎ VY! ÚKOL 3 – Z MINULA Navrhněte tabulky pro evidenci autopůjčovny •Použijte vhodné datové typy •Dodržuje 3. normální formu •Zvolte vhodný primární klíč •Vložte hodnoty •Jan Novák r.č. 810212/001 ř.p. 1234532 - červená Škoda Octavia (3T6 8211) rv. 2004 •Jan Novák r.č. 810212/001 ř.p. 1234532 - zelená Honda Acord (4B8 1234) rv. 1998 •Jiří Lunák r.č. 530422/535 ř.p. 1828402 - modrá Hundai Tiburon (2L5 4532) rv. 2000 •Pavlína Konečná r.č. 955107/888 ř.p. 8763214 – růžová Renault Laguna (1A5 7979) rv. 2002 Propojte pomocí příkazů SERIAL a REFERENCES •CVIČENÍ SE OBJEVÍ NA ŠKOLNÍM SERVERU ÚKOL 1 Vytvořte tabulku pro údaje o městech s následujícími atributy •název •NUTS5 (LAU2) kód •počet obyvatel •rozloha •zda se jedná o hlavní město •nejnižší nadm. výška •Nejvyšší nadm. Výška Do tabulky vložte aspoň 3 města •CVIČENÍ SE OBJEVÍ NA ŠKOLNÍM SERVERU ÚKOL 2 Upravte tabulku z úkolu 1. •Přidejte omezení UNIQUE na název města •Přidejte omezení NOT NULL na NUTS5 kód •Přidejte omezení CHECK na počet obyvatel a rozlohu tak, aby bylo nutné zadat kladné číslo •Z tabulky smažte právě jedno město podle NUTS5 kódu •Do tabulky vložte další 3 města •Upravte název jednoho města pomocí příkazu UPDATE •CVIČENÍ SE OBJEVÍ NA ŠKOLNÍM SERVERU DĚKUJI ZA POZORNOST