ZADANIE 4
Spoiler:
--1
insert into test_pracownicy.dbo.pracownicy(
[nr_akt],[nazwisko],[stanowisko],[kierownik],[data_zatr],[placa],[id_dzialu])
values(9781,'PARMOWSKI','AKWIZYTOR',9235,GETDATE(),1150,70);
GO
--2
insert into test_pracownicy.dbo.pracownicy(
[nr_akt],[nazwisko],[stanowisko],[kierownik],[data_zatr],[placa],[id_dzialu])
values(9782,'CIESZKOWSKI','LABORANT',9332,GETDATE()+12,1200,50);
GO
--3
insert into test_pracownicy.dbo.STANOWISKA(
[STANOWISKO],[PLACA_MIN],[PLACA_MAX])
values(
'GLOWNY_OPERATOR',1700,3000);
GO
insert into test_pracownicy.dbo.STANOWISKA(
[STANOWISKO],[PLACA_MIN],[PLACA_MAX])
values(
'GLOWNY_LOGISTYK',1700,3000);
GO
insert into test_pracownicy.dbo.STANOWISKA(
[STANOWISKO],[PLACA_MIN],[PLACA_MAX])
values(
'GLOWNY_TECHNOLOG',2500,3500);
GO
--4
update test_pracownicy.dbo.pracownicy
set stanowisko='LABORANT', PLACA=PLACA*1.1,ID_DZIALU=50
WHERE STANOWISKO='PRAKTYKANT';
GO
--5
update test_pracownicy.dbo.pracownicy
set DOD_FUNKCYJNY=DOD_FUNKCYJNY+(SELECT MIN(PLACA)*0.1 FROM test_pracownicy.dbo.pracownicy)
WHERE STANOWISKO='DYREKTOR';
GO
--6
DELETE FROM test_pracownicy.dbo.pracownicy
WHERE STANOWISKO='PRAKTYKANT';
GO
--7
DELETE FROM test_pracownicy.dbo.pracownicy WHERE
DATA_ZATR=(SELECT MAX(DATA_ZATR) FROM test_pracownicy.dbo.pracownicy WHERE STANOWISKO='LOGISTYK');
GO
--8
CREATE TABLE test_pracownicy.dbo.pracownice (
nr_akt int,
nazwisko VARCHAR(20),
stanowisko VARCHAR(18),
kierownik int CONSTRAINT prac_self_key1 REFERENCES pracownicy (nr_akt),
data_zatr DATETIME,
data_zwol DATETIME,
placa MONEY,
dod_funkcyjny MONEY,
prowizja MONEY,
id_dzialu INT,
CONSTRAINT prac_primary_key1 PRIMARY KEY (nr_akt),
CONSTRAINT prac_foreign_key1 FOREIGN KEY (id_dzialu) REFERENCES dzialy (id_dzialu)
);
GO
insert into test_pracownicy.dbo.PRACOWNICE(
[nr_akt],[nazwisko],[stanowisko],[kierownik],[data_zatr],[placa],[DOD_FUNKCYJNY],[id_dzialu])
SELECT nr_akt,nazwisko,stanowisko,kierownik,data_zatr,placa,DOD_FUNKCYJNY,id_dzialu FROM test_pracownicy.dbo.PRACOWNICY
WHERE NAZWISKO LIKE '%SKA';
GO
select * from test_pracownicy.dbo.PRACOWNICE;
GO
--9
DROP TABLE test_pracownicy.dbo.PRACOWNICE;
GO
--10
CREATE TABLE test_pracownicy.dbo.projekty(
id_projektu varchar(5) CONSTRAINT unikalny unique,
nazwa varchar(100),
budzet money,
termin_zak datetime,
nr_kierownika int references pracownicy(nr_akt),
);
go
alter table test_pracownicy.dbo.projekty with nocheck
add constraint cyfry check(id_projektu like '[0-9][0-9][0-9][0-9][0-9]');
--11
ALTER TABLE test_pracownicy.dbo.projekty ADD typ varchar(20) not null;
go
ALTER TABLE test_pracownicy.dbo.projekty ADD opis varchar(500);
go
ALTER TABLE test_pracownicy.dbo.projekty ADD data_roz datetime;
go
--12
ALTER TABLE projekty
ADD CONSTRAINT DEFAULT_data_roz DEFAULT GETDATE() FOR data_roz;
go
--13
ALTER TABLE test_pracownicy.dbo.projekty DROP CONSTRAINT unikalny;
ALTER TABLE test_pracownicy.dbo.projekty DROP CONSTRAINT cyfry;
ALTER TABLE test_pracownicy.dbo.projekty
ALTER COLUMN id_projektu char(5) NOT NULL;
ALTER TABLE test_pracownicy.dbo.projekty
ADD CONSTRAINT unikalny UNIQUE(id_projektu);
ALTER TABLE test_pracownicy.dbo.projekty
ADD PRIMARY KEY(id_projektu);
--14
ALTER TABLE test_pracownicy.dbo.projekty ADD CONSTRAINT daty
CHECK (data_roz < termin_zak);
--16
ALTER TABLE test_pracownicy.dbo.pracownicy DROP COLUMN prowizja;
--17
ALTER TABLE test_pracownicy.dbo.pracownicy DROP CONSTRAINT prac_foreign_key;
ALTER TABLE test_pracownicy.dbo.pracownicy ADD CONSTRAINT KEY_CASCADE
FOREIGN KEY (id_dzialu) REFERENCES dzialy(id_dzialu) ON DELETE CASCADE;
--18
DELETE FROM test_pracownicy.dbo.dzialy WHERE id_dzialu=30;
--19
ALTER TABLE test_pracownicy.dbo.pracownicy
DROP CONSTRAINT prac_self_key;
DELETE FROM test_pracownicy.dbo.pracownicy WHERE nr_akt = 8902;
--20
INSERT INTO test_pracownicy.dbo.prac_archiw
SELECT * FROM test_pracownicy.dbo.pracownicy WHERE nr_akt = 8902;
--21
UPDATE test_pracownicy.dbo.pracownicy
SET kierownik=8903 WHERE kierownik=8902;
--22
CREATE INDEX INDEX_nazwisko ON test_pracownicy.dbo.pracownicy (nazwisko);
--23
CREATE INDEX INDEX_placa ON test_pracownicy.dbo.stanowiska(placa_min, placa_max);
--24
DROP INDEX test_pracownicy.dbo.stanowiska.INDEX_placa;
DROP INDEX test_pracownicy.dbo.pracownicy.INDEX_nazwisko;
Offline