begin for i in (select 'drop table '||table_name||' cascade constraints' tbl from user_tables) loop execute immediate i.tbl; end loop; end; CREATE TABLE kniha ( id INTEGER NOT NULL, nazev VARCHAR2(30 CHAR) NOT NULL ) LOGGING; ALTER TABLE kniha ADD CONSTRAINT kniha_pk PRIMARY KEY ( id ); CREATE TABLE vypujcka ( datum DATE NOT NULL, kniha_id INTEGER NOT NULL, zakaznik_id INTEGER NOT NULL ) LOGGING; ALTER TABLE vypujcka ADD CONSTRAINT vypujcka_pk PRIMARY KEY ( kniha_id,zakaznik_id,datum ); CREATE TABLE zakaznik ( id INTEGER NOT NULL, jmeno VARCHAR2(30 CHAR) NOT NULL, vek integer ) LOGGING; ALTER TABLE zakaznik ADD CONSTRAINT zakaznik_pk PRIMARY KEY ( id ); ALTER TABLE vypujcka ADD CONSTRAINT vypujcka_kniha_fk FOREIGN KEY ( kniha_id ) REFERENCES kniha ( id ) NOT DEFERRABLE; ALTER TABLE vypujcka ADD CONSTRAINT vypujcka_zakaznik_fk FOREIGN KEY ( zakaznik_id ) REFERENCES zakaznik ( id ) NOT DEFERRABLE; select id, vek, (id * vek) as nasobeni from zakaznik; select id, vek, (id * vek) as nasobeni from zakaznik where vek is not null; --vyfiltrujeme řádky select id, vek, (id * coalesce (vek,0)) as nasobeni from zakaznik; -- nahradí nulové hodnoty za výchozí parametr create table zakaznik2 ( id integer not null, jmeno varchar (30 char) not null ); select * from zakaznik; select * from zakaznik2; insert into zakaznik2 select id, jmeno from zakaznik where mod (id, 2) = 0; drop table zakaznik2; create or replace view zakaznik2 as select id, jmeno from zakaznik where mod (id, 2) = 0; --view je dočasné, nevytváření reálná data, změny se přenáší mezi view a tabulkou update zakaznik2 set jmeno = 'strasidlo' where id = 0; update zakaznik set jmeno = 'bilapani' where id = 2; drop view zakaznik2; select * from zakaznik where vek between 25 and 35; select * from zakaznik where vek in (25, 30, 40); select * from kniha where nazev like 'sve__'; select * from kniha where nazev like 'sve%';