OBP - LV8 uvod
unknown
sql
3 years ago
5.7 kB
17
Indexable
/*Primjer 1 Kreiranje tabele projekti */ CREATE TABLE projekti ( projekat_id NUMBER, naziv VARCHAR2(100), broj_zaposlenih NUMBER, status_projekta CHAR(1), datum_pocetka DATE, datum_kraja DATE, odgovorna_osoba VARCHAR2(50) ); --Struktura tabele projekti SELECT column_name, data_type, data_length, nullable FROM all_tab_columns WHERE table_name='PROJEKTI'; SELECT * FROM projekti; /* Primjer 2. Neka je potrebno kreirati tabelu naziva numericki_tip koja posjeduje ukupno 7 kolona, naziva kolonai, i =1,...,7. Neka su tipovi podataka kolona respektivno: NUMBER, NUMBER(*,1), NUMBER(9), NUMBER(9,2), NUMBER(9,1), NUMBER(6), NUMBER(7,-2). U tabelu unijeti ukupno 7 zapisa, pri cemu i-ti zapis u i-tu kolonu unosi broj 7,456,123.89, a u ostale kolone broj 0. */ CREATE TABLE numericki_tip ( kolona1 NUMBER, kolona2 NUMBER(*,1), kolona3 NUMBER(9), kolona4 NUMBER(9,2), kolona5 NUMBER(9,1), kolona6 NUMBER(6), kolona7 NUMBER(7,-2) ); --Struktura tabele numericki_tip SELECT column_name, data_type, data_length, nullable, data_precision, data_scale FROM all_tab_columns WHERE table_name='NUMERICKI_TIP'; SELECT * FROM numericki_tip; --Unos redova u tabelu numericki_tip --OK INSERT INTO numericki_tip VALUES(7456123.89,0,0,0,0,0,0); --OK INSERT INTO numericki_tip VALUES(0,7456123.89,0,0,0,0,0); --OK INSERT INTO numericki_tip VALUES(0,0,7456123.89,0,0,0,0); --OK INSERT INTO numericki_tip VALUES(0,0,0,7456123.89,0,0,0); --OK INSERT INTO numericki_tip VALUES(0,0,0,0,7456123.89,0,0); --Greska! INSERT INTO numericki_tip VALUES(0,0,0,0,0,7456123.89,0); --OK INSERT INTO numericki_tip VALUES(0,0,0,0,0,0,7456123.89); SELECT * FROM numericki_tip; --Kreiranje tabela upotrebom podupita /* Primjer 3. Neka je potrebno kreirati novu tabelu zaposlenih koja ce sadrzavati sifru zaposlenog, naziv zaposlenog, platu, sifru odjela, naziv odjela, sifru posla i naziv posla svih zaposlenih koji dobivaju dodatak na platu. */ CREATE TABLE zaposleni ( sifra_zaposlenog, naziv_zaposlenog, plata, sifra_odjela, naziv_odjela, sifra_posla, naziv_posla) AS SELECT e.employee_id, e.first_name || ' ' || e.last_name, e.salary, d.department_id, d.department_name, j.job_id, j.job_title FROM employees e, departments d, jobs j WHERE e.department_id = d.department_id AND e.job_id = j.job_id AND e.commission_pct IS NOT NULL; SELECT * FROM zaposleni; SELECT Count(*) FROM employees WHERE commission_pct IS NOT NULL; SELECT * FROM employees WHERE department_id IS NULL; --Umjesto da smo nazive kolona precizirali u CREATE TABLE dijelu, moguce je samo navesti odgovarajuce alijase za kolone u podupitu CREATE TABLE zaposleni2 AS SELECT e.employee_id sifra_zaposlenog, e.first_name || ' ' || e.last_name naziv_zaposlenog, e.salary plata, d.department_id sifra_odjela, d.department_name naziv_odjela, j.job_id sifra_posla, j.job_title naziv_posla FROM employees e, departments d, jobs j WHERE e.department_id = d.department_id AND e.job_id = j.job_id AND e.commission_pct IS NOT NULL; SELECT * FROM zaposleni2; --ALTER TABLE iskaz /* Primjer 4. Neka je potrebno izvrsiti odredjene modifikacije nad prethodno kreiranom tabelom projekti: a) Dodati novu kolonu naziva opis koja je tipa VARCHAR2(150). b) Promijeniti kolonu odgovorna_osoba tako da bude tipa NUMBER. c) Obrisati kolonu naziv. d) Proglasiti kolonu status projekta neupotrebljivom, a onda obrisati tu kolonu. e) Preimenovati tabelu projekti u company_projects. f) Obrisati kompletnu tabelu company_projects. */ SELECT * FROM projekti; SELECT column_name, data_type, data_length, nullable FROM all_tab_columns WHERE table_name='PROJEKTI'; --a) ALTER TABLE projekti ADD (opis VARCHAR2(150)); --b) ALTER TABLE projekti MODIFY (odgovorna_osoba NUMBER); --c) ALTER TABLE projekti DROP COLUMN naziv; --d) ALTER TABLE projekti SET unused (status_projekta); --Prikaz broja kolona koje su oznacene kao neupotrebljive SELECT * FROM user_unused_col_tabs; ALTER TABLE projekti DROP unused COLUMNS; --e) RENAME projekti TO company_projects; SELECT * FROM company_projects; --f) DROP TABLE company_projects; --Komentari za tabele i kolone /* Primjer 5. Neka je potrebno dodati komentar za tabelu zaposlenih 'Tabela svih zaposlenih u korporaciji XYZ', i za kolonu sifra_zaposlenog komentar 'Kolona koja jednoznacno odredjuje sve ostale atribute tabele'. */ COMMENT ON TABLE zaposleni IS 'Tabela svih zaposlenih u korporaciji XYZ'; COMMENT ON COLUMN zaposleni.sifra_zaposlenog IS 'Kolona koja jednoznacno odredjuje sve ostale atribute u tabeli'; --Prikaz svih komentara za kolone SELECT * FROM all_col_comments; --Prikaz korisnicki definiranih komentara za kolone SELECT * FROM user_col_comments; --Prikaz svih komentara za tabele SELECT * FROM all_tab_comments; --Prikaz korisnicki definiranih komentara za tabele SELECT * FROM user_tab_comments; --Prikaz svih korisnicki definiranih tabela SELECT * FROM user_tables; SELECT * FROM user_catalog; --Prikaz svih korisnicki definiranih objekata baze podataka SELECT * FROM user_objects; --NULL vrijednost u kolonama /* Primjer 6. Neka je potrebno kreirati novu tabelu informacija sa kolonom info koja ne smije sadrzavati NULL vrijednost. */ CREATE TABLE informacije ( info VARCHAR2(100) NOT NULL ); SELECT column_name, data_type, data_length, nullable FROM all_tab_columns WHERE table_name='INFORMACIJE';
Editor is loading...