Documente Academic
Documente Profesional
Documente Cultură
Chișinău 2018
1. Scopul lucrarii
Crearea tabelelor și a constrângerilor, precum și completarea tabelelor în Oracle APEX.
2. Sarcina
Utilizând limbajul SQL creați și completați următoarele tabele:
Tabelul nr. 1: „Raioane” (5)
Denumire Tip de date Restricție Exemplu Exemplu Valori
Rai_ID Caracter (2) Cheie Primară CH UN Câte 2 litere
Rai_Den Car. Var. (40) Nu Vid Chișinău Ungheni Raion/ Munic.
Tara_ID Caracter (3) MDA MDA ID Țara
SQL (de la numele englez Structured Query Language - limbaj de interogare structurat - care se pronunță [es
kiu el]) este un limbaj de programare specific pentru manipularea datelor în sistemele de manipulare a bazelor de date
relaționale (RDBMS), iar la origine este un limbaj bazat pe algebra relațională. Acesta are ca scop inserarea datelor,
interogații, actualizare și ștergere, modificarea și crearea schemelor, precum și controlul accesului la date. A devenit
un standard în domeniu (standardizat ANSI-ISO), fiind cel mai popular limbaj utilizat pentru crearea, modificarea,
regăsirea și manipularea datelor de către SGBD-urile (Sistemele de Gestiune a Bazelor de Date) relaționale. Pe lângă
versiunile standardizate ale limbajului, există o mulțime de dialecte și variante, unele proprietare, fiind specifice
anumitor SGBD-uri și de asemenea conținând extensii pentru a suporta SBD-urile (Sistemele de Baze de Date)
obiectuale (obiectual-relaționale). SQL permite atât accesul la conținutul bazelor de date, cât și la structura acestora.
Oricărei coloane (sau câmp) dintr-un tabel SQL îi este asignat un tip de dată, la fel ca în toate celelalte limbaje de
programare. Tipurile de date sunt următoarele:
4. Mersul lucrarii
4.1 Codul SQL
Crearea tabelelor
CREATE TABLE `angajat` (
`angajat_id` int(6) NOT NULL, CREATE TABLE `raioane` (
`prenume` varchar(20) DEFAULT NULL, `rai_id` char(2) NOT NULL,
`nume` varchar(25) NOT NULL, `rai_den` varchar(40) NOT NULL,
`email` varchar(25) NOT NULL, `tara_id` char(3) DEFAULT NULL
`telefon` varchar(14) DEFAULT NULL, )
`data_ang` date NOT NULL,
`func_id` varchar(10) NOT NULL, CREATE TABLE `tari` (
`salariu` double(8,2) DEFAULT NULL, `tara_id` char(3) NOT NULL,
`imp_proc` double(2,2) DEFAULT NULL, `tara_den` varchar(40) NOT NULL
`man_id` int(6) DEFAULT NULL, )
`dep_id` int(4) DEFAULT NULL
) ALTER TABLE `angajat`
ADD PRIMARY KEY (`angajat_id`),
CREATE TABLE `departamente` ( ADD KEY `func_id` (`func_id`),
`dep_id` int(4) NOT NULL, ADD KEY `dep_id` (`dep_id`),
`dep_den` varchar(30) NOT NULL, ADD KEY `man_id` (`man_id`);
`man_id` int(6) DEFAULT NULL,
`loc_id` int(4) DEFAULT NULL ALTER TABLE `departamente`
) ADD PRIMARY KEY (`dep_id`),
ADD KEY `loc_id` (`loc_id`),
CREATE TABLE `functii` ( ADD KEY `man_id` (`man_id`);
`func_id` varchar(10) NOT NULL,
`func_den` varchar(35) NOT NULL, ALTER TABLE `functii`
`sal_min` int(6) DEFAULT NULL, ADD PRIMARY KEY (`func_id`);
`sal_max` int(6) DEFAULT NULL
) ALTER TABLE `istorie_functii`
ADD PRIMARY KEY (`angajat_id`,`data_ang`),
CREATE TABLE `istorie_functii` ( ADD KEY `func_id` (`func_id`),
`angajat_id` int(6) NOT NULL, ADD KEY `dep_id` (`dep_id`);
`data_ang` date NOT NULL,
`data_conc` date DEFAULT NULL, ALTER TABLE `localitati`
`func_id` varchar(10) NOT NULL, ADD PRIMARY KEY (`loc_id`),
`dep_id` int(4) DEFAULT NULL ADD KEY `rai_id` (`rai_id`);
)
ALTER TABLE `raioane`
CREATE TABLE `localitati` ( ADD PRIMARY KEY (`rai_id`),
`loc_id` int(4) NOT NULL, ADD KEY `raioane_ibfk_1` (`tara_id`);
`strada` varchar(40) DEFAULT NULL,
`cod_postal` varchar(12) DEFAULT NULL, ALTER TABLE `tari`
`loc_den` varchar(30) NOT NULL, ADD PRIMARY KEY (`tara_id`);
`rai_id` char(2) DEFAULT NULL)
Crearea constringeri:
ALTER TABLE `angajat` ADD CONSTRAINT `angajat_ibfk_3` FOREIGN KEY
ADD CONSTRAINT `angajat_ibfk_1` FOREIGN KEY (`man_id`) REFERENCES `departamente` (`man_id`);
(`func_id`) REFERENCES `functii` (`func_id`) ON
UPDATE NO ACTION, ALTER TABLE `departamente`
ADD CONSTRAINT `angajat_ibfk_2` FOREIGN KEY
(`dep_id`) REFERENCES `departamente` (`dep_id`),
ADD CONSTRAINT `departamente_ibfk_1` FOREIGN
KEY (`loc_id`) REFERENCES `localitati` (`loc_id`) ON ALTER TABLE `raioane`
UPDATE NO ACTION; ADD CONSTRAINT `raioane_ibfk_1` FOREIGN KEY
(`tara_id`) REFERENCES `tari` (`tara_id`) ON UPDATE
ALTER TABLE `istorie_functii` NO ACTION;
ADD CONSTRAINT `istorie_functii_ibfk_1` FOREIGN
KEY (`angajat_id`) REFERENCES `angajat` (`angajat_id`), ALTER TABLE `angajat` ADD FOREIGN KEY
ADD CONSTRAINT `istorie_functii_ibfk_2` FOREIGN (`data_ang`) REFERENCES `istorie_functii`(`data_ang`)
KEY (`func_id`) REFERENCES `functii` (`func_id`), ON DELETE RESTRICT ON UPDATE RESTRICT;
ADD CONSTRAINT `istorie_functii_ibfk_3` FOREIGN
KEY (`dep_id`) REFERENCES `departamente` (`dep_id`); ALTER TABLE `departamente` ADD CONSTRAINT
`departamente_ibfk_2` FOREIGN KEY (`man_id`)
ALTER TABLE `localitati` REFERENCES `angajat`(`angajat_id`) ON DELETE
ADD CONSTRAINT `localitati_ibfk_1` FOREIGN KEY RESTRICT ON UPDATE NO ACTION;
(`rai_id`) REFERENCES `raioane` (`rai_id`);
Completarea tabelelor :
INSERT INTO `tari` (`tara_id`, `tara_den`) VALUES (31, 'Str. Mihai Eminescu, nr. 2', '305170', 'Buzia?', 'TI'),
('MD', 'MOLDOVA'), ('RO', 'ROMANIA'), ('UA', (32, 'Pia?a Pompierilor nr. 1', '305270', 'Deta', 'TI'),
'UCRAINA'); (33, 'Calea Lugojului, nr. 13', '305370', 'F?get', 'TI'),
(34, 'Strada Blaga Lucian nr. 1', '300001', 'Timisoara', 'TI'),
INSERT INTO `raioane` (`rai_id`, `rai_den`, `tara_id`) (35, 'Strada Radu Negru nr. 90', '300055', 'Timisoara', 'TI'),
VALUES (36, 'Stefan cel Mare 150', 'MD-2100', 'Chisinau', 'CH');
('BS', 'BASARABEASCA', 'MD'),
('BU', 'BUCURESTI', 'RO'), INSERT INTO `functii` (`func_id`, `func_den`, `sal_min`,
('CH', 'CHISINAU', 'MD'), `sal_max`) VALUES
('CO', 'CONSTANTA', 'RO'), ('IT-1', 'Operator PC', 3000, 8000),
('CR', 'CRIMEA', 'UA'), ('IT-2', 'QA Enginer', 10000, 20000),
('DK', 'KIROVOHRADSKA', 'UA'), ('IT-3', 'WEB DEV(PHP)', 10000, 15000),
('KV', 'KIEV', 'UA'), ('IT-4', 'PHP DEV', 10000, 17000),
('OC', 'OCNITA', 'MD'), ('IT-5', '.NET DEV', 10000, 22000),
('SV', 'STEFAN VODA', 'MD'), ('IT-6', 'Data Analist', 8000, 14000),
('TI', 'TIMISOARA', 'RO'); ('IT-7', 'Designer', 11000, 13000),
('IT-8', 'Automation Software DEV', 12000, 18000),
INSERT INTO `localitati` (`loc_id`, `strada`, `cod_postal`, ('IT-9', 'Manager Marketing', 8000, 14000),
`loc_den`, `rai_id`) VALUES ('IT-10', 'Android DEV', 15000, 25000),
(1, 'str.Vladimir Lenin', 'MD-6701', 'Basarabeasca', 'BS'), ('IT-11', 'iOS DEV', 16000, 28000),
(2, 'str.Lev Tolstoi', 'MD-6702', 'Albaclia', 'BS'), ('IT-12', 'Front End DEV', 8000, 13000),
(3, 'str.31 August 1989', 'MD-6703', 'Sadaclia', 'BS'), ('IT-13', 'Back End DEV', 8000, 13000),
(4, 'L631', 'MD-6704', 'Bascalia', 'BS'), ('IT-14', 'Technical Support Enginer', 9000, 10000),
(5, 'str.Florilor', 'MD-4201', 'Stefan Voda', 'SV'), ('IT-15', 'ASP .NET DEV', 10000, 25000),
(6, 'srt.Slobozia', 'MD-4202', 'Slobozia', 'SV'), ('IT-16', 'JAVA DEV', 12000, 15000),
(7, 'str.Stefanesti', 'MD-4203', 'Stefanesti', 'SV'), ('IT-17', 'Back end DEV: Python', 9000, 20000),
(8, 'L514', 'MD-4203', 'Volintiri', 'SV'), ('IT-18', 'Designer operator', 6000, 16000),
(9, 'str.50 ani biruinte', 'MD-7101', 'Acnita', 'OC'), ('IT-19', 'Ruby/RoR DEV', 13000, 21000),
(10, 'str.Libertatii', 'MD-7102', 'Lipnic', 'OC'), ('IT-20', '3dsMax Visualizer', 15000, 30000),
(11, 'str.30 August 1988', 'MD-7103', 'Lipnic', 'OC'), ('IT-21', 'DATABASE Administrator', 9000, 17000),
(12, 'str.dingeava', 'MD-7104', 'Dingeni', 'OC'), ('IT-22', 'Redactor', 7000, 14000),
(13, 'str.Myru ', '0101-0401', 'Kiev', 'KV'), ('IT-23', 'WinCC Enginer', 12000, 22000);
(14, 'str.Haharina ', '0102-0402', 'Troieschina', 'KV'),
(15, 'str.Lisivyl ', '0103-0403', 'Voskresenka', 'KV'), INSERT INTO `departamente` (`dep_id`, `dep_den`,
(16, 'str.Artema', '83001', 'Donetsk', 'DK'), `man_id`, `loc_id`) VALUES
(17, 'str.Ionova', '83002', 'Leninskii', 'DK'), (1, 'Finante', 1, 36),
(18, 'str.Prokofieva', '83003', 'Pokrovsk', 'DK'), (2, 'Resurse Umane', 2, 36),
(19, 'str.Soborna, 22 B', '25001', 'Kirovohradska', 'CR'), (3, 'Marketing', 3, 14),
(20, 'str. Myru,2', '28514', 'Dolinskii', 'CR'), (4, 'Mangement', 4, 24),
(21, 'str. Lenina, 25', '28325', 'Petrivskii', 'CR'), (5, 'Enginerie', 5, 25),
(22, 'str. Stalin, 40', '28326', 'Petrivskii', 'CR'), (6, 'IT- Tehnologii informationale', 6, 13);
(23, 'Calea Victoriei 91', '014820', 'Bucuresti', 'BU'),
(24, 'Str. Bucure?tii Noi, 64', '014930', 'Bucuresti', 'BU'), INSERT INTO `angajat` (`angajat_id`, `prenume`, `nume`,
(25, 'Calea Doroban?ilor, 152', '014950', 'Bucuresti', 'BU'), `email`,`telefon`,`data_ang`,`func_id`,`salariu`,`imp_proc`,`
(26, 'Calea Plevnei, 46', '014910', 'Bucuresti', 'BU'), man_id`,`dep_id`) VALUES
(27, 'Str. Recoltei, 52', '905870', 'Negru Vod?', 'CO'), (1, 'Viktor', 'Guminiuc', 'ktor@gmail.com', '07888888',
(28, '?os. Na?ional?, nr. 96A', '905970', 'Ovidiu', 'CO'), '2016-01-01', 'IT-1', 6000, '0.2', '6', '6'),
(29, 'Str. Trandafirilor, nr. 11', '907035', 'B?neasa', 'CO'), (2, 'Ion', 'Primius', 'ionprm@gmail.com', '079888777', '2011-
(30, 'Str. Ovidiu, nr. 13A', '905270', 'Cernavod?', 'CO'), 01-01', 'IT-2', 12000, '0.2', '6', '6'),
(3, 'Roman', 'Pruna', 'prunaroma@mail.ru', '068999222', (20, 'Matei', 'Cornel', 'cmat@gmail.com', '079224556',
'2000-01-29', 'IT-3', 10000, '0.2', '6', '6'), '2018-01-11', 'IT-16', 13400, '0.2', '6', '6'),
(4, 'Sergiu', 'Persic', 'persicsg@gmail.com', '069777444', (21, 'Nelea', 'Costanta', 'costnel@gmail.com', '079188299',
'2001-12-01', 'IT-4', 13000, '0.2', '6', '6'), '2017-03-04', 'IT-17', 12800, '0.2', '6', '6'),
(5, 'Maria', 'Sandu', 'sandumaria@gmail.com', '079123444', (22, 'Adam', 'Moldovanu', 'ma19@gmail.com', '078009008',
'2002-12-12', 'IT-5', 11000, '0.2', '6', '6'), '2016-04-04', 'IT-18', 7000, '0.2', '6', '6'),
(6, 'Cristina', 'Pavel', 'cpavel@gmail.com', '076777444', (23, 'Victoria', 'Vulture', 'vul22@gmail.com', '076332331',
'1999-11-11', 'IT-6', 9000, '0.2', '6', '6'), '2011-10-19', 'IT-19', 14000, '0.2', '6', '6'),
(7, 'Semion', 'Lipan', 'lipansm@gmail.com', '079333123', (24, 'Maria', 'Bonnia', 'mab12@hotmail.com', '079199188',
'1998-12-01', 'IT-6', 11000, '0.2', '6', '6'), '2012-12-31', 'IT-20', 28000, 0.3, '6', '6'),
(8, 'Leu', 'Sergiu', 'leus@gmail.com', '078333222', '1996-02- (25, 'Georgeta', 'Ionela', 'ionelka11@gmail.com',
01', 'IT-7', 13000, 0.3, '6', '6'), '079188877', '2012-08-30', 'IT-21', 9700, '0.2', '6', '6'),
(9, 'Marius', 'Yorba', 'mariusy@gmail.com', '067234567', (26, 'Constantin', 'Armanov', 'armancc@gmail.com',
'2009-01-30', 'IT-7', 12000, '0.2', '6', '6'), '078356456', '2018-01-20', 'IT-22', 10500, '0.2', '6', '6'),
(10, 'Cristian', 'Vernic', 'vcris@gmail.com', '079189178', (27, 'Viorica', 'Musteata', 'mustvr22@hotmail.com',
'2008-08-11', 'IT-8', 13000, 0.3, '6', '6'), '069478889', '2018-01-19', 'IT-23', 12000, '0.2', '6', '6'),
(11, 'Boris', 'Butoi', 'bb@yahoo.com', '078155166', '2007-09- (28, 'Cristofor', 'Anatoliev', 'cris99@gmail.com',
11', 'IT-9', 8000, '0.2', '6', '6'), '076339447', '2010-09-29', 'IT-3', 13500, '0.2', '6', '6'),
(12, 'Loreta', 'Gri', 'loraxxx@gmail.com', '079177388', (29, 'Amadeus', 'Mozzhart', 'amdeusmm@gmail.com',
'2001-11-11', 'IT-10', 15000, '0.2', '6', '6'), '069333999', '1999-12-01', 'IT-4', 15500, '0.2', '6', '6'),
(13, 'Ramona', 'Vina', 'vira@gmail.com', '067266377', '1980- (30, 'Nicolai', 'Numetalskii', 'metalfyeah@gmail.com',
12-11', 'IT-10', 16000, '0.2', '6', '6'), '069230230', '2008-05-05', 'IT-7', 12800, '0.2', '6', '6'),
(14, 'Natalia', 'Roma', 'natroma@mail.ru', '068366277', (31, 'Stefan', 'Rockinskii', 'stfanel@yahoo.com',
'1999-12-01', 'IT-12', 13000, '0.2', '6', '6'), '078558449', '2005-04-05', 'IT-2', 17000, '0.2', '6', '6');
(15, 'Viktor', 'Eremia', 'vker@gmail.com', '078177388',
'1999-11-11', 'IT-13', 14000, '0.2', '6', '6'), INSERT INTO `istorie_functii` (`angajat_id`, `data_ang`,
(16, 'Mihai', 'Estima', 'estima1@gmail.com', '079188377', `data_conc`, `func_id`, `dep_id`) VALUES
'2017-09-11', 'IT-14', 9000, '0.2', '6', '6'), (1, '2016-01-01', '2018-01-19', 'IT-1', '6'),
(17, 'Vitalie', 'Tuna', 'tunav@gmail.com', '078177277', (2, '2011-01-01', '2015-05-05', 'IT-2', '6'),
'2009-12-04', 'IT-14', 9500, '0.2', '6', '6'), (3, '2000-01-29', '2010-01-05', 'IT-3', '6'),
(18, 'Norman', 'Winston', 'winnor@gmail.com', '079188377', (4, '2001-12-01', '2005-04-05', 'IT-4', '6'),
'2015-02-02', 'IT-15', 11500, '0.2', '6', '6'), (5, '2002-12-12', '2007-06-09', 'IT-5', '6'),
(19, 'Darius', 'Furis', 'furisd@hotmail.com', '079122477', (6, '1999-11-11', '2000-11-12', 'IT-6', '6'),
'1998-07-01', 'IT-16', 12400, '0.2', '6', '6'), (7, '1998-12-01', '2000-11-12', 'IT-6', '6');