user_objects
zawiera
komunikaty na temat wszystkich obiektów należących do bieżącego użytkownika,
również składowanych
podprogramów
describe
user_views;
select * from user_views;
--select *
from user_constraints;
--desc kierowcy;
--desc user_objects;
--desc user_views;
--desc user_updatable_columns;
--desc user_indexes;
select * from user_views;
1. Do tabeli kierowcy
dodac trzy wiersze(bedzie
konflikt o cos bedziesz wpisywal
zle musisz zobaczyc user_constraints)
2. stworz dwie table i
razem z trzecia zrob z niej sensowna baze danych (u mnie to byly
tabele pojazdy i przewozy) (ograniczenia do tabel podawala)
3. dodaj po dwa wiersze do nowo stworzonych tabel
4. stworz perspektywe info z danymi o pojezdzie typu
towarowy, ktory w bierzacym
okresie zarobil ponad 2500zl
create table kierowcy
(
id number(4) constraint
pr_ky Primary Key,
nazwisko varchar2(30) check(nazwisko=initcap(nazwisko)),
imie
varchar2(30) not null,
kategoria char(1) check(kategoria
in('A','B','C','D'))
);
select * from user_constraints;
desc
kierowcy;
insert into kierowcy values(1, 'Frączkowski','Piotr','A');
insert into kierowcy values(2,'Jakubik','Krzysztof','C');
insert into kierowcy values(3,'Frączek','Roman','D');
select * from kierowcy;
create table pojazdy
(
nr_rej varchar2(8) constraint pr_p_key Primary Key,
typ varchar2(8) check (typ in('OSOBOWY','TOWAROWY')),
cena_za_km number(3,2),
data_prod number(4) check(data_prod>1990)
);
desc
pojazdy;
insert into pojazdy(nr_rej,typ)values('sc1233','TOWAROWY');
insert into pojazdy values('sc1234','OSOBOWY','2','1999');
SELECT * FROM POJAZDY;
create table przewozy1
(
id number(4) constraint
id_p_key primary key,
nr_sam varchar2(8) references pojazdy(nr_rej),
kierowca number(4) references kierowcy(id),
data_wyj date default
sysdate,
data_powrotu date,
constraint ch_dat check(data_wyj<=data_powrotu)
)
insert into przewozy (id,nr_sam,kierowca) values
(1,'sc1234',2);
insert into przewozy values (2,'sc1233',2,sysdate,sysdate);
select * from przewozy
//-------------------------------
KLUCZE
--select * from cat;
--create table prac2 as (select * from pracownicy);
--desc prac2;
--desc user_constraints;
--select CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME from user_constraints where TABLE_NAME in ('PRAC2','PRACOWNICY');
--alter table PRAC2 add constraint nr_akt_pk primary key (nr_akt);
--select * from PRACOWNICY;
--create table d0odatki(
--lp number(3),
--nr_akt number(4) primary key,
--placa number(7,2) );
--desc d0odatki;
--alter table d0odatki add constraint nr_akt_fk foreign key (nr_akt)
--references prac2(nr_akt)
--on delete cascade;
--alter table d0odatki modify placa not null;
--insert into d0odatki values (1,9235,12211);
--insert into d0odatki values (2,8913,12214);
--insert into d0odatki values (3,9731,1214);
--update prac2 p set placa=(select placa from d0odatki d )where p.nr_akt=d.NR_AKT;?????????
--select * from prac2;
--select * from d0odatki;
--rollback;
--select * from prac2;
--update prac2 set placa=(placa + 150) where 3<=(select count(*) from prac2 p where p.NR_AKT=KIEROWNIK ); ????????
--select * from prac2;
//---------------------------------------
KOPIOWANIE TABELI
--select * from cat;
--create table prac2 as (select * from pracownicy);
--desc prac2;
--desc user_constraints;
select CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME from user_constraints where TABLE_NAME in ('PRAC2','PRACOWNICY');
--alter table PRAC2 add constraint nr_akt_pk primary key (nr_akt);
--select * from PRACOWNICY;
//--------------------------------
SEKWENCJE
--CREATE TABLE KLIENT (
--NIP NUMBER(12) PRIMARY KEY,
--NAZWISKO VARCHAR(20) NOT NULL,
--IMIE VARCHAR(20) NOT NULL,
--ADRES VARCHAR(40) NOT NULL);
--CREATE TABLE TOWAR (
--SYMBOL NUMBER(12) PRIMARY KEY,
--NAZWA VARCHAR(20) NOT NULL,
--CENA NUMBER(4,2),
--IL_SZTUK NUMBER(4) NOT NULL,
--CHECK (CENA>0));
--CREATE TABLE SPRZEDAZ (
--LP NUMBER(4) constraint sp_lp_pk PRIMARY KEY,
--SYMBOL NUMBER(12) constraint sp_id_fk REFERENCES TOWAR(SYMBOL),
--NIP NUMBER(12) constraint sp_ni_fk REFERENCES KLIENT(NIP),
--ILE NUMBER(4),
--DATA DATE);
--create SEQUENCE sp_lp_seq
--INCREMENT BY 1
--START WITH 1;
--INSERT INTO KLIENT VALUES (562, 'aaaa' , 'aaaa' , 'as' );
--INSERT INTO KLIENT VALUES (745, 'bbbb' , 'bbbb' , 'df' );
--INSERT INTO KLIENT VALUES (856, 'cccc' , 'cccc' , 'gh' );
--INSERT INTO KLIENT VALUES (785, 'dddd' , 'dddd' , 'hj' );
--INSERT INTO KLIENT VALUES (741, 'eeee' , 'eeee' , 'jk' );
--INSERT INTO TOWAR VALUES (100, 'alkohol' , 2.24 , 1000 );
--INSERT INTO TOWAR VALUES (101, 'fajki' , 5.75 , 1000 );
--INSERT INTO TOWAR VALUES (102, 'kondomy' , 7.26 , 1000 );
--INSERT INTO SPRZEDAZ VALUES (sp_lp_seq.nextval, '100' ,562 , 50, sysdate );
--INSERT INTO SPRZEDAZ VALUES (sp_lp_seq.nextval, '102' ,562 , 20, sysdate );
--INSERT INTO SPRZEDAZ VALUES (sp_lp_seq.nextval, '100' ,785 , 50, sysdate );
--INSERT INTO SPRZEDAZ VALUES (sp_lp_seq.nextval, '101' ,785 , 10, sysdate );