create table tTanar (tAzon NUMBER NOT NULL, Nev VARCHAR(20), CONSTRAINT pk_tanar PRIMARY KEY (tAzon) ) CREATE TABLE tDiak (Dazon NUMBER NOT NULL, Nev VARCHAR(20), Kor NUMBER default 14 NOT NULL, Ofo NUMBER NOT NULL, CONSTRAINT pk_Diak PRIMARY KEY(Dazon), CONSTRAINT fk_Diak_Tanar FOREIGN KEY (Ofo)REFERENCES tTanar(Tazon), CONSTRAINT uq_Diak UNIQUE (Nev), CONSTRAINT ck_Diak CHECK (Kor>10 AND Kor<24) ) CREATE TABLE tTanitas (Tazon NUMBER NOT NULL, Dazon NUMBER NOT NULL, Tantargy VARCHAR(20) NOT NULL, CONSTRAINT pk_Tanitas PRIMARY KEY(Tazon, Dazon, Tantargy), CONSTRAINT fk_tTanar_Tazon FOREIGN KEY (Tazon)REFERENCES tTanar(Tazon), CONSTRAINT fk_tDiak_Dazon FOREIGN KEY (Dazon)REFERENCES tDiak(Dazon) ) INSERT INTO tDiak (dazon,nev,kor,ofo) VALUES (13,'Nagy Helga',14,2) INSERT INTO tTanar (TAzon,Nev) VALUES (1,'Kovács Eszter') update tdiak set ofo=2 (minden diák ofo-je a 2-es lesz, 'where' medadásával cellák tartalma módosíthatóak) update tdiak set kor=kor+1 (mindenki 1 évvel idősebb lett) update tdiak set kor=kor+1, ofo=1 (egyszerre több dolog) update tdiak set ofo=1 where ofo=2 vagy pl. update tdiak set ofo=1 where kor=15 vagy pl. update tdiak set ofo=4 where ofo=2 and kor=15 (feltételhez kötött módosítások) delete from tdiak (minden sor törlése) delete from tdiak where kor>=15 (speciális törlés) alter table ttanar add kor number default 23 not null ('KOR' oszlop felvétele) alter table tdiak modify kor number default 10 null (kort nem kötelező kitölteni) alter table ttanar drop column kor (oszlop eldobása) alter table tdiak drop constraint ck_diak alter table tdiak drop constraint uq_diak (enged két ugyanazon nevű embert beilleszteni, ezután viszont nem lehet különböző nevű megszorítást kiadni) update ttanar set cim='Budapest' where tazon=2 (cellák tartalmának módosítása) CREATE TABLE tSzuloDiak (Szazon NUMBER NOT NULL, Dazon NUMBER NOT NULL, CONSTRAINT pk_SzuloDiak PRIMARY KEY(Szazon,Dazon), CONSTRAINT fk_tSzulodiak_szulo FOREIGN KEY (Szazon) REFERENCES tSzulo(Szazon), CONSTRAINT fk_tSzulodiak_diak FOREIGN KEY (Dazon) REFERENCES tDiak(Dazon) ) create table tSzulo (szazon NUMBER NOT NULL, Nev VARCHAR(20), Telefon NUMBER, CONSTRAINT pk_szulo PRIMARY KEY (szazon) ) ***** LEKÉRDEZÉSEK ***** egyszerű lekérdezések: select * from tdiak vagy select * from ttanar vagy SELECT * FROM tdiak,ttanar order by nev (névsor szerinti rendezés) minden diák és (ofo) tanárai tulajd: SELECT * FROM tdiak,ttanar where ofo=tazon vegyük ki az egyik azonosítót SELECT dazon, tdiak.nev, kor, tazon, ttanar.nev FROM tdiak,ttanar where ofo=tazon vagy hivatkozással (a mező elé írjuk a táblát is): SELECT dazon, d.nev, kor, tazon, t.nev FROM tdiak d, ttanar t where ofo=tazon Speciális mezőnév megadása: SELECT dazon, d.nev as "Diák neve", kor, tazon, t.nev FROM tdiak d, ttanar t where ofo=tazon Speciális számolások (kor+1 kellene): SELECT dazon, d.nev as "Diák neve", kor+1, tazon, t.nev FROM tdiak d, ttanar t where ofo=tazon (szöveg normál módon vagy szókoz estén "Ozstály neve") SELECT dazon, d.nev as "Diák neve", kor+1 as "Növelt kor", tazon, t.nev FROM tdiak d, ttanar t where ofo=tazon Konstansok megadása (hello, 5): SELECT dazon, d.nev as "Diák neve", kor+1 as "Növelt kor", tazon, t.nev,'Hello',5 FROM tdiak d, ttanar t where ofo=tazon Milyen korúak a diákok?: SELECT distinct (=egy érték csak egyszer) kor from tdiak A 2-es tanár diákjai (névsorban): SELECT nev from tdiak where ofo=2 Kinek nincs ofo mezője?: select * from tdiak where ofo is null (nem ofo=null !!!) Nagy nevű diákok: select * from tdiak where nev like '%Nagy%' (nem nev=Nagy !!!) Ősszetett feltétel: select * from tdiak where nev like '%Nagy%' and kor=14 select * from tdiak where nev like '%Nagy%' or nev like '%Kiss%' select * from tdiak where nev like '%Nagy%' or nev like '%Kiss%' and kor=14 (14 éves kiss-ek és nagy-ok) Agregátorfüggvények select count(ofo) vagy count(*) from tdiak select round(sum(kor)/count(kor),2) as "Korátlag" from tdiak (round=kerekít(mit, hányra) select round(avg(kor),2)as "Korátlag" from tdiak select min(kor), max(kor) from tdiak select min(kor) || '-' || max(kor) as Korosztály from tdiak Kiss nevű tanár 14 évesnél idősebb diákjai: select dazon, tdiak.nev, kor, ttanar.nev from tdiak, ttanar where ofo=tazon (ne párosítson mindenkit mindenkivel, csak a megfelelőeket) and ttanar.nev like '%Kiss%' and kor>=15 order by tdiak.nev A 2-es tanár osztályában hány 18-nál fiatalabb van? select count(*) as Osztálylétszám from tdiak where ofo=2 and kor<18 Azon tanárok akiknél van idősebb tanítvány: select distinct tazon, ttanar.nev from tdiak, ttanar where tdiak.ofo=ttanar.tazon and tdiak.kor>ttanar.kor Kik a metektanárok? select distinct ttanar.tazon, nev from ttanitas, ttanar, where ttanitas.tazon=ttanar.tazon and tantargy='matematika'