-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPractise_3.sql
More file actions
50 lines (34 loc) · 2.61 KB
/
Practise_3.sql
File metadata and controls
50 lines (34 loc) · 2.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
-- #1. Создание и работа с таблицей
CREATE TABLE employees ( -- Создаем таблицу employees
id SERIAL primary key,
name varchar(100),
position varchar(100),
salary numeric(20,2)
);
SELECT * FROM employees;
INSERT INTO employees (name, position, salary) VALUES -- Добавляем сотрудников в таблицу
('Vladimir Antonov', 'System_administrator', 100000),
('Anna Semakova', 'Tester', 90000),
('Alexey Perogov', 'Programmer', 120000),
('Anton Korotkov', 'Tester', 100000),
('Nikolay Chernov', 'Web-designer', 100000),
('Mikhail Dobronravov', 'Web-designer', 100000),
('Alexander Smolyakov', 'Manager', 100000),
('Tatyana Ozernaya', 'Tester', 90000),
('Anna Shigalina', 'IT_department_Head', 150000),
('Alexey Kropotkin', 'Tester', 90000);
SELECT * FROM employees; -- Отображаем всех сотрудников
SELECT position, array_agg(name) as job_title FROM employees GROUP BY position; -- Делаем группировку по должности
SELECT position,COUNT(position) as "Number_of_Employees" FROM employees GROUP BY position HAVING COUNT(position)>2; -- Делаем фильтр группы с количеством сотрудников больше 2
UPDATE employees
SET salary = salary * 1.5
WHERE position = 'IT_department_Head'; -- Изменяем зарплату для Руководителя IT Департамента
DELETE FROM employees WHERE name = 'Tatyana Ozernaya'; -- Татьяна переводится в другой Департамент
SELECT * FROM employees; -- Отображаем всех оставшихся сотрудников
-- #2. Связи между таблицами
CREATE TABLE departments (id SERIAL, name varchar(100) primary key); --Создаем таблицу departments
INSERT INTO departments (name) VALUES ('IT'); -- добавляем название Департамента в таблицу departments
SELECT * FROM departments; -- Отображаем список департаментов
ALTER TABLE employees ADD COLUMN department varchar(50) REFERENCES departments(name); -- связь таблиц по полю departments.name
UPDATE employees SET department = 'IT' WHERE department IS NULL; --заполняем название Департамента для всех сотрудников Департамента IT
SELECT employees.name, departments.name as dept from employees JOIN departments ON employees.department = departments.name; -- Запрос данных из основной таблицы вместе с данными из связанной таблицы