mirror of
https://github.com/ada-dmitry/DB.mephi_ada.git
synced 2026-09-24 08:00: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 и всех его подчинённых, как
|
и имя сотрудника с идентификатором 1 и всех его подчинённых, как
|
||||||
прямых, так и подчинённых более низкого ранга. */
|
прямых, так и подчинённых более низкого ранга. */
|
||||||
|
|
||||||
CREATE OR REPLACE PROCEDURE department_names() AS
|
CREATE OR REPLACE PROCEDURE department_names() AS $$
|
||||||
DECLARE d_attrs RECORD;
|
DECLARE d_attrs RECORD;
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ SELECT * FROM tmp
|
|||||||
LOOP
|
LOOP
|
||||||
RAISE INFO ' % % ', d_attrs.first_name, d_attrs.last_name;
|
RAISE INFO ' % % ', d_attrs.first_name, d_attrs.last_name;
|
||||||
END LOOP;
|
END LOOP;
|
||||||
END LANGUAGE plpgsql;
|
END $$ LANGUAGE plpgsql;
|
||||||
CALL department_names();
|
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
|
DECLARE
|
||||||
current_salary INTEGER;
|
current_salary INTEGER;
|
||||||
m_salary INTEGER;
|
m_salary INTEGER;
|
||||||
@@ -64,7 +64,7 @@ mod_salary := current_salary - m_salary;
|
|||||||
END LOOP;
|
END LOOP;
|
||||||
END $$ LANGUAGE plpgsql;
|
END $$ LANGUAGE plpgsql;
|
||||||
|
|
||||||
SELECT print_employees();
|
CALL print_employees();
|
||||||
|
|
||||||
-- Task 3 --
|
-- Task 3 --
|
||||||
/* Напишите программу на языке PL/SQL, удаляющую 10 сотрудников с
|
/* Напишите программу на языке PL/SQL, удаляющую 10 сотрудников с
|
||||||
@@ -116,7 +116,7 @@ DECLARE d_attrs RECORD;
|
|||||||
BEGIN
|
BEGIN
|
||||||
|
|
||||||
FOR d_attrs IN WITH RECURSIVE tmp AS (
|
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)
|
FROM generate_series(0,199) i)
|
||||||
|
|
||||||
SELECT * FROM tmp
|
SELECT * FROM tmp
|
||||||
|
|||||||
Reference in New Issue
Block a user