Postgre SQL www.postgresql.org psql login: orion pass: osobní číslo velkými databáze: jako login $psql -h students.kiv.zcu.cz (defaultne localhost) -p 5432 -d databáze -U uživatel \h \? \l \u \du \dt -seznam tabulek \i \d tabulka pgAdmin III host: students.kiv.zcu.cz Maintenance DB: kalwi ---------- Oracle SQL Developer Network alias: zmena na STUDENTS !!! 15) select s.jmeno, count (cs.id_osoby) from skupiny s, clenove_skupin cs where s.id_skupiny = cs.id_skupiny group by s.jmeno having count(cs.id_osoby) >= all(select count(id_osoby) from clenove_skupin group by id_skupiny); select s.jmeno from skupiny s, clenove_skupin cs where s.id_skupiny = cs.id_skupiny group by s.jmeno having count(cs.id_osoby) >= all(select count(id_osoby) from clenove_skupin group by id_skupiny); having nemuze pouzivat alias jedna z úloh přes union 9) select s.jmeno, count(cs.id_osoby) as pocet from skupiny s, clenove_skupin cs where s.id_skupiny = cs.id_skupiny group by s.jmeno order by 2 desc; 7) select s.jmeno, count(cs.id_osoby) from skupiny s, clenove_skupin cs where s.id_skupiny = cs.id_skupiny group by s.jmeno order by jmeno; 6) select o.jmeno, o.prijmeni from osoby o, skupiny s, clenove_skupin cs where o.id_osoby = cs.id_osoby and cs.id_skupiny = s.id_skupiny and s.jmeno = 'Udrzbari'; 5) select o.id_osoby, nvl(k.pin, 0) as pin from osoby o, karty k where o.id_karty = k.id_karty(+); 4) select o.id_osoby, k.pin from osoby o, karty k where o.id_karty = k.id_karty; 3) select count(*) from karty where id_karty not in (select id_karty from osoby where id_karty is not null); select count(*) from karty where not exists (select * from osoby where karty.id_karty = osoby.id_karty); 2) select count(*) from osoby where id_karty is NULL; 1) select count(*) from osoby; select * from osoby; -------------------- PL/SQL: INTO - lze použít, pokud je dotazem vrácena jen jedna n-tice / - spustit proceduru (resp. uložit, pokud je def. jako uložená) %TYPE - specifická vlastnost Oracle, u ostatních DB rtfm || - operátor zřetězení set serveroutput on - aby se vypisovaly výsledky tabulka dual - jeden radek, jeden sloupec, snese jakoukoliv hodnotu --- SELECT FROM INTO - funguje, jen pokud WHERE vraci jeden radek ------- pripojeni z koleje: host: students.kiv.zcu.cz port: 1521 service name: STUDENTS ------------------- test 60 minut 10 otázek bez materiálů hodnocena myšlenka rozsah 1. - 8. cv.