All pastes #210081 Raw Edit

Rv

public sql v1 · immutable
#210081 ·published 2006-10-19 14:28 UTC
rendered paste body
--tworzymy tabele kntCREATE TABLE knt( nknt number(10) not null, --pole o nazwie nkt typu number o maksymalnej dlugosci 10 (nie moze byc puste) nazw varchar(100) not null, misc varchar(30), ulic varchar(30), kodp varchar(6), telf varchar(20), CONSTRAINT knt_pk primary key (nknt));--tworzymy sekwencje zaczynającą się od 1, inkrementacja o 1, minimalna wartosc 1 :-)CREATE SEQUENCE KNT_SEQ START WITH 1 INCREMENT BY 1 MINVALUE 1 NOCACHE NOCYCLE NOORDER;---- dodanie klucza glownego do stworzonej uprzednio tabeli-- -- alter table knt add constraint knt_pk primary key (nknt)--(powyższe zapytanie nie zostanie wykonanie gdyż linia zaczyna sie od znaku komentarza --)-- tworzymy tabele uslugiCREATE TABLE USG( NUSG NUMBER(10) NOT NULL, nazw varchar(100) not null, cena number(6,2) not null, rodz char(1) not null constraint usg_rodz_chk check (rodz in ('J','M')) --ograniczenie - rodz musi nalezec do zbioru);--dodanie klucza podstawowego o nazwie usg_pk do tabeli usg na pole nusg. (aby zadzialalo tabela usg musi zostac wcześniej stworzona)ALTER TABLE usg add constraint usg_pk PRIMARY KEY (nusg);--znow sekwencjaCREATE SEQUENCE USG_SEQ START WITH 1 INCREMENT BY 1 MINVALUE 1 NOCACHE NOCYCLE NOORDER;--tworzymy tabele umoCREATE TABLE umo( numo number(10) not null, nknt number(10) not null, dtod date not null, dtdo date, constraint umo_pk primary key (numo), --klucz podstawowy constraint umo_knt_fk foreign key (nknt) REFERENCES knt (nknt)  -- klucz obcy);--tworzymy sekwencje umo_seq dla tabeli umo który bedzie wykorzystany przy wstawianiu (INSERT) rekordów do tabeliCREATE SEQUENCE UMO_SEQ START WITH 1 INCREMENT BY 1 MINVALUE 1 NOCACHE NOCYCLE NOORDER;--tworzymy index na kluczy obcym w tabeli umoCREATE INDEX umo_knt_fk_i ON umo(nknt);-- tworzymy tabele ump deklarując jednocześnie klucz glowny (primary) oraz trzy klucze obce (foreign)CREATE table ump( numo number(10) not null, pozc number(5) not null, nusg number(10) not null, nknt number(10) not null, ilos number(3) not null, cena number(6,2) not null, constraint ump_pk primary key (numo, pozc), constraint ump_umo_fk foreign key (numo) references umo (numo), constraint ump_knt_fk foreign key (nknt) references knt (nknt), constraint ump_usg_fk foreign key (nusg) references usg (nusg));--tworzymy indexy na kluczach obcych w tabeli umpCREATE INDEX ump_knt_fk_i ON ump(nknt);CREATE INDEX ump_usg_fk_i ON ump(nusg);--wstawiamy rekord do tabeli usgINSERT INTO usg (NUSG, NAZW, CENA, RODZ) VALUES (usg_seq.nextval, 'Dostêp do internetu 512', 50,'M');--wstawiamy rekord do tabeli kntINSERT INTO knt (NKNT, NAZW, MISC, ULIC, KODP, TELF)  VALUES (knt_seq.nextval, 'Jan Nowak', 'Bytom','Krakowska','41-902','123123');-- wstawienie do tabeli umo nowego rekordu (umo_seq.nextval pobiera za sekwencji umo_seq aktualna wartosc sekwencji powiekszona o 1 :-)INSERT INTO umo (NUMO, NKNT, DTOD, DTDO)  VALUES (umo_seq.nextval, 1,'2006-10-01', null);--wylistowanie wszystkich rekordow z tabeli usgSELECT * FROM usg;--zapis do bazy danychCOMMIT;