cwiczenia tworzenie tabel1


--a) Napisz polecenia służące do utworzenia tabel STANOWISKA i KANDYDACI zgodnie z poniższym diagramem.
CREATE TABLE stanowiska
(
id NUMBER(4) CONSTRAINT stanowiska_idPK PRIMARY KEY,
nazwa VARCHAR2(64) UNIQUE NOT NULL
);
CREATE TABLE kandydaci
(
id NUMBER(4) CONSTRAINT kandydaci_imiePK PRIMARY KEY,
imie VARCHAR2(32) NOT NULL,
nazwisko VARCHAR2(32) NOT NULL,
data_ur DATE NOT NULL,
plec CHAR(1) NOT NULL CONSTRAINT kandydaci_plecCH CHECK(plec = 'K' OR plec = 'M'),
pesel NUMBER(11) NOT NULL,
numer_tel VARCHAR2(10) NOT NULL,
email VARCHAR2(256) NOT NULL,
oczekiwana_pensja NUMBER(9) NOT NULL CONSTRAINT kandydaci_oczekiwana_pensjaCH CHECK(oczekiwana_pensja >= 0),
opis_kariery VARCHAR2(300),
id_stanowiska NUMBER(4) NOT NULL CONSTRAINT kandydaci_id_stanowiskaFK REFERENCES stanowiska(id)
);

--b) Utwórz indeks o nazwie NAZWISKO na kolumnie NAZWISKO w tabeli KANDYDACI.
CREATE INDEX kandydaci_nazwiskoINDEX ON kandydaci(nazwisko);

--c) Napisz polecenia, które umożliwiłyby wstawienie do tabeli STANOWISKA następujących danych
INSERT INTO stanowiska
VALUES (1,'sekretarka');
INSERT INTO stanowiska
VALUES (2,'grafik');
INSERT INTO stanowiska
VALUES (3,'kierownik dzialu sprzedazy');

--d) Utwórz sekwencję i wykorzystaj ją do wstawienia do tabeli KANDYDACI następujących danych
CREATE SEQUENCE kandydaci_idSEQ
START WITH 1
INCREMENT BY 1;
INSERT INTO kandydaci
VALUES(kandydaci_idSEQ.NEXTVAL,'Jan','Kowalski',TO_DATE('05/11/1967','DD/MM/YYYY'),'M',67110512816,'612345678','jan_k@wp.pl',2800,NULL,2);
INSERT INTO kandydaci
VALUES(kandydaci_idSEQ.NEXTVAL,'Zofia','Nowak',TO_DATE('19/09/1981','DD/MM/YYYY'),'K',81091907823,'42-6123456','zofia_nowak@onet.pl',2000,'3 miesięczny staż w dziekanacie',1);
INSERT INTO kandydaci
VALUES(kandydaci_idSEQ.NEXTVAl,'Zofia','Mazurek',TO_DATE('25/04/1976','DD/MM/YYYY'),'K',76042479821,'42-6333333','zofia_m@gmail.com',3500,'5 lat pracy na podobnym stanowisku w firmie ABC',3);

e) Zmień nazwę stanowiska z grafik na grafik komputerowy.
UPDATE stanowiska
SET nazwa = 'grafik komputerowy'
WHERE id = 2;

--f) Zmień datę urodzenia osoby o numerze PESEL: 76042479821 na poprawną, czyli taką, jaka wynika z jej numeru PESEL.
UPDATE kandydaci
SET data_ur = TO_DATE('24/04/1976','DD/MM/YYYY')
WHERE pesel = 76042479821;

--g) Dopisz panu Janowi Kowalskiemu opis dotychczasowej kariery: praca w małej, prywatnej firmie reklamowej.
UPDATE kandydaci
SET opis_kariery = 'praca w małej, prywatnej firmie reklamowej'
WHERE UPPER(imie) = 'JAN' AND UPPER(nazwisko) = 'KOWALSKI';

--h) Spraw, aby kolumna OPIS_DOTYCHCZASOWEJ KARIERY mogła przechowywać 500 znaków.
ALTER TABLE kandydaci
MODIFY opis_kariery VARCHAR2(500);

--i) Usuń informacje dotyczące osoby o numerze pesel 76042479821.
DELETE FROM kandydaci
WHERE pesel = 76042479821;

--j) Stwórz kopię tabeli KANDYDACI o nazwie KANDYDACI2 i wyświetl jej zawartość. Jakie więzy ma nowo utworzona tabela?
CREATE TABLE kandydaci2
AS SELECT *
FROM kandydaci;
SELECT *
FROM kandydaci2;

--k) Stwórz tabelę KANDYDACI3 o takiej samej strukturze co KANDYDACI2, ale bez danych.
CREATE TABLE kandydaci3
AS SELECT *
FROM kandydaci2
WHERE 1=2;

--l) Usuń wszystkie wiersze z tabeli KANDYDACI2.
DELETE FROM kandydaci2;

--m) Usuń tabele KANDYDACI2 i KANDYDACI3.
DROP TABLE kandydaci2;
DROP TABLE kandydaci3;

--n) Usuń pozostałe tabele.
DROP SEQUENCE kandydaci_idSEQ;
DROP INDEX kandydaci_nazwiskoINDEX;
DROP TABLE kandydaci;
DROP TABLE stanowiska;

Wyszukiwarka