Zad Zapytanie SQL 1 CREATE TABLE projekty ( id_projektu

Transkrypt

Zad Zapytanie SQL 1 CREATE TABLE projekty ( id_projektu
Zad
1
Zapytanie SQL
CREATE TABLE projekty (
id_projektu NUMBER(4)PRIMARY KEY,
opis_projektu VARCHAR(20) NOT NULL UNIQUE,
data_rozpoczecia DATE DEFAULT sysdate,
data_zakonczenia DATE,
fundusz NUMBER(7, 2),
CONSTRAINT ogr_data CHECK(data_zakonczenia > data_rozpoczecia),
CONSTRAINT ogr_fundusz CHECK(fundusz >= 0)
);
CREATE TABLE przydzialy (
id_projektu NUMBER(4) NOT NULL,
nr_pracownika NUMBER(4) NOT NULL,
od DATE DEFAULT sysdate,
do DATE,
stawka NUMBER(7, 2) CHECK(stawka > 0),
rola VARCHAR(20) CHECK(rola IN ('KIERUJACY', 'PROGRAMISTA', 'ANALITYK')),
2
3
4
CONSTRAINT ogr_data2 CHECK(do > od),
CONSTRAINT klucz
FOREIGN KEY (id_projektu) REFERENCES projekty (id_projektu),
FOREIGN KEY (nr_pracownika) REFERENCES pracownicy (id_prac),
PRIMARY KEY (id_projektu, nr_pracownika)
);
ALTER TABLE przydzialy
ADD godizny NUMBER
COMMENT ON TABLE projekty IS 'Lista projektów prowadzonych przez pracowników';
COMMENT ON TABLE przydzialy IS 'Informacje o przydziale poszczególnych pracowników do projektów';
SELECT * FROM USER_TAB_COMMENTS
WHERE table_name in ('PROJEKTY', 'PRZYDZIALY');
SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE, SEARCH_CONDITION FROM USER_CONSTRAINTS
WHERE TABLE_NAME = 'PRZYDZIALY'
5
ALTER TABLE projekty
DISABLE UNIQUE (opis_projektu)
6
ALTER TABLE projekty
MODIFY opis_projektu NUMBER(30)
7
CREATE TABLE pracownicy_zespoly AS
SELECT p.nazwisko, p.etat AS posada, p.placa_pod*12+NVL(p.placa_dod, 0) AS roczna_placa, z.nazwa AS
zespol, z.adres as adres_pracy
FROM pracownicy p JOIN zespoly z USING (id_zesp);