mirror of
https://github.com/ada-dmitry/DB.mephi_ada.git
synced 2026-09-23 23:50:16 +00:00
added insert for 6
This commit is contained in:
@@ -0,0 +1,163 @@
|
||||
DROP TABLE bd6_employees IF EXISTS;
|
||||
|
||||
-- CREATE TABLE bd6_departments(
|
||||
-- id integer PRIMARY KEY,
|
||||
-- name varchar(64),
|
||||
-- postal_code varchar(6),
|
||||
-- street varchar(64),
|
||||
-- building varchar(16),
|
||||
-- city varchar(32)
|
||||
-- );
|
||||
CREATE TABLE
|
||||
bd6_employees (
|
||||
id integer PRIMARY KEY,
|
||||
last_name varchar(64) NOT NULL,
|
||||
first_name varchar(64) NOT NULL,
|
||||
phone_number varchar(18),
|
||||
email varchar(32),
|
||||
department_id integer REFERENCES bd6_departments (id) NOT NULL,
|
||||
manager_id integer REFERENCES bd6_employees (id),
|
||||
salary_in_euro numeric(8, 2) DEFAULT 0 NOT NULL,
|
||||
UNIQUE (last_name, first_name, department_id)
|
||||
);
|
||||
|
||||
-- INSERT INTO bd6_departments
|
||||
-- VALUES(10, 'Administration', '109658', 'Leningradskoe shosse', '1', 'Moscow'),
|
||||
-- (20, 'Marketing', '107701', 'Lenina', '22a', 'Volgograd'),
|
||||
-- (30, 'Purchasing', '109901', 'Mikluho-Maklaya', '8', 'Bryansk'),
|
||||
-- (40, 'Human Resources', '10967', '5-ya parkovaya', '16', 'Moscow'),
|
||||
-- (50, 'Shipping', '109659', '38 Bakinskih komissarov', '77', 'Moscow'),
|
||||
-- (60, 'IT', '109902', 'Pervomajskaya', '33', 'Kirov');
|
||||
INSERT INTO
|
||||
bd6_employees
|
||||
VALUES
|
||||
(
|
||||
1,
|
||||
'Radygin',
|
||||
'Victor',
|
||||
'8-(495)-567-7788',
|
||||
'vr@e.mail.mephi.ru',
|
||||
10,
|
||||
NULL,
|
||||
8000
|
||||
),
|
||||
(
|
||||
2,
|
||||
'Kuprijanov',
|
||||
'Dmitrij',
|
||||
'8-(495)-567-7794',
|
||||
'kd@e.mail.mephi.ru',
|
||||
60,
|
||||
1,
|
||||
6534.33
|
||||
),
|
||||
(
|
||||
3,
|
||||
'Ivanov-Skladovskij',
|
||||
'Ivan',
|
||||
'8-(495)-567-7799',
|
||||
'ii1@mail.mephi.ru',
|
||||
20,
|
||||
1,
|
||||
4404.14
|
||||
),
|
||||
(
|
||||
4,
|
||||
'Petrov',
|
||||
'Petr',
|
||||
'8-(495)-567-7794',
|
||||
'petrovpetr@m.gmail.ru',
|
||||
60,
|
||||
2,
|
||||
3456.43
|
||||
),
|
||||
(
|
||||
5,
|
||||
'kozlov',
|
||||
'Konstantin',
|
||||
'8-(495)-567-7794',
|
||||
'kkozlov@mephi.ru',
|
||||
60,
|
||||
2,
|
||||
2300
|
||||
),
|
||||
(
|
||||
6,
|
||||
'Abramov',
|
||||
'Abram',
|
||||
'8-(495)-567-7794',
|
||||
'abramova@k75.mephi.ru',
|
||||
60,
|
||||
2,
|
||||
2200.11
|
||||
),
|
||||
(
|
||||
7,
|
||||
'IvanovпїЅ-SkladovskпїЅya-Petrova',
|
||||
'Ivanka',
|
||||
'8-(495)-567-7794',
|
||||
'ii2@mail.mephi.ru',
|
||||
60,
|
||||
4,
|
||||
3756.33
|
||||
),
|
||||
(
|
||||
8,
|
||||
'Petrov',
|
||||
'Ivan',
|
||||
'8-(495)-567-7799',
|
||||
'petrovivan@m.gmail.ru',
|
||||
20,
|
||||
3,
|
||||
4850
|
||||
),
|
||||
(
|
||||
9,
|
||||
'kozlov',
|
||||
'Ivan',
|
||||
'8-(495)-567-7799',
|
||||
'ikozlov@mephi.ru',
|
||||
20,
|
||||
3,
|
||||
3460
|
||||
),
|
||||
(
|
||||
10,
|
||||
'Abramov',
|
||||
'Moisej',
|
||||
'8-(495)-567-7794',
|
||||
'abramovm@k75.mephi.ru',
|
||||
60,
|
||||
4,
|
||||
2345
|
||||
),
|
||||
(
|
||||
11,
|
||||
'Petrov',
|
||||
'Alex',
|
||||
'8-(495)-567-7799',
|
||||
'petroval@m.gmail.ru',
|
||||
20,
|
||||
3,
|
||||
2465
|
||||
),
|
||||
(
|
||||
12,
|
||||
'kozlov',
|
||||
'Maxim',
|
||||
'8-(495)-567-7799',
|
||||
'mkozlov@mephi.ru',
|
||||
20,
|
||||
3,
|
||||
2788
|
||||
),
|
||||
(
|
||||
13,
|
||||
'Abramov',
|
||||
'Isyaslav',
|
||||
'8-(495)-567-7738',
|
||||
'abramovi@k75.mephi.ru',
|
||||
30,
|
||||
1,
|
||||
6500
|
||||
);
|
||||
@@ -9,7 +9,7 @@ b) Напишите программу на языке PL/SQL, печатающ
|
||||
и имя сотрудника с идентификатором 1 и всех его подчинённых, как
|
||||
прямых, так и подчинённых более низкого ранга. */
|
||||
|
||||
CREATE OR REPLACE PROCEDURE department_names() AS
|
||||
CREATE OR REPLACE PROCEDURE department_names() AS $$
|
||||
DECLARE d_attrs RECORD;
|
||||
BEGIN
|
||||
|
||||
@@ -25,7 +25,7 @@ SELECT * FROM tmp
|
||||
LOOP
|
||||
RAISE INFO ' % % ', d_attrs.first_name, d_attrs.last_name;
|
||||
END LOOP;
|
||||
END LANGUAGE plpgsql;
|
||||
END $$ LANGUAGE plpgsql;
|
||||
CALL department_names();
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ employees в порядке возрастания заработной плат
|
||||
увеличивается на остаток от округления, полученный от предыдущего
|
||||
сотрудника, а затем округляется до сотен в меньшую сторону. */
|
||||
|
||||
CREATE OR REPLACE PROCEDURE print_employees() RETURNS VOID AS $$
|
||||
CREATE OR REPLACE PROCEDURE print_employees() AS $$
|
||||
DECLARE
|
||||
current_salary INTEGER;
|
||||
m_salary INTEGER;
|
||||
@@ -64,7 +64,7 @@ mod_salary := current_salary - m_salary;
|
||||
END LOOP;
|
||||
END $$ LANGUAGE plpgsql;
|
||||
|
||||
SELECT print_employees();
|
||||
CALL print_employees();
|
||||
|
||||
-- Task 3 --
|
||||
/* Напишите программу на языке PL/SQL, удаляющую 10 сотрудников с
|
||||
@@ -116,7 +116,7 @@ DECLARE d_attrs RECORD;
|
||||
BEGIN
|
||||
|
||||
FOR d_attrs IN WITH RECURSIVE tmp AS (
|
||||
SELECT 1+i5 AS f1, 2+i5 AS f2, 3+i5 AS f3, 4+i5 AS f4,5+i*5 AS f5
|
||||
SELECT 1+i*5 AS f1, 2+i*5 AS f2, 3+i*5 AS f3, 4+i*5 AS f4,5+i*5 AS f5
|
||||
FROM generate_series(0,199) i)
|
||||
|
||||
SELECT * FROM tmp
|
||||
|
||||
Reference in New Issue
Block a user