Создайте таблицу:
CREATE TABLE сотр (
id_сотр INT PRIMARY KEY,
имя VARCHAR(50) NOT NULL,
долж VARCHAR(50) NOT NULL,
id_руков INT,
дата_при DATE,
зарп NUMERIC(10,2),
комис NUMERIC(10,2),
id_отдел INT
);
Добавьте данные к этому таблицу:
INSERT INTO сотр (id_сотр, имя, долж, id_руков, дата_при, зарп, комис, id_отдел)
VALUES
(7369, 'СМИТ', 'СОТРУДНИК', 7902, '1980-12-17', 800, NULL, 20),
(7499, 'АЛЛЕН', 'ПРОДАЖНИК', 7698, '1981-02-20', 1600, 300, 30),
(7521, 'УОРД', 'ПРОДАЖНИК', 7698, '1981-02-22', 1250, 500, 30),
(7566, 'ДЖОНС', 'РУКОВОДИТЕЛЬ', 7839, '1981-04-02', 2975, NULL, 20),
(7654, 'МАРТИН', 'ПРОДАЖНИК', 7698, '1981-09-28', 1250, 1400, 30),
(7698, 'БЛЕЙК', 'РУКОВОДИТЕЛЬ', 7839, '1981-05-01', 4250, NULL, 30),
(7782, 'КЛАРК', 'РУКОВОДИТЕЛЬ', 7839, '1981-06-09', 2450, 200, 10),
(7788, 'СКОТТ', 'АНАЛИТИК', 7566, '1982-12-09', 3000, NULL, 20),
(7839, 'КИНГ', 'ДИРЕКТОР', NULL, '1981-11-17', 5000, NULL, 10),
(7844, 'ТЁРНЕР', 'ПРОДАЖНИК', 7698, '1981-09-08', 1500, 10, 30),
(7876, 'АДАМС', 'СОТРУДНИК', 7788, '1983-01-12', 1100, NULL, 20),
(7900, 'ДЖЕЙМС', 'СОТРУДНИК', 7698, '1981-12-03', 950, NULL, 30),
(7902, 'ФОРД', 'АНАЛИТИК', 7566, '1981-12-03', 3000, 700, 20),
(7934, 'МИЛЛЕР', 'СОТРУДНИК', 7782, '1982-01-23', 1300, 600, 10),
(8001, 'КУК', 'РУКОВОДИТЕЛЬ', 7839, '1981-06-09', 3800, NULL, 50),
(8002, 'ХАРТ', 'ПРОДАЖНИК', 8001, '1982-05-09', 1600, 200, 50),
(8003, 'ВУЛФ', 'СОТРУДНИК', 8001, '1983-04-09', 1000, NULL, 50);
Выведите все данные из таблицы сотр (сотрудники):
SELECT * FROM сотр;
Эта таблица хранит данные про сотрудников которые рабают в одной компании.
Имя таблицы: сотр (сотрудники)
id_сотр: id номер сотрудника
имя: имя сотрудника
долж: должность сотрудника
id_руков: id номер
руководителя этого сотрудника
дата_при: дата приема, когда этот сотрудник начал работать в этой компании
зарп: зарплата этого сотрудника в долларах
комис: сколько комиссий этот сотрудник получает от каждой прибыли
id_отдел: id номер отдела где сотрудник работает
Задачи 1 (WHERE, <>=, AND, OR, NULL, DISTINCT, BETWEEN, ORDER BY, DESC, ASC)
1. Выведите сотрудников, у которых зарплата больше 2800 (WHERE, >)
2. Выведите сотрудников, работающих в отделе 10 или 20 (WHERE, OR)
3. Выведите сотрудников, у которых комиссия больше 600 (WHERE, >)
4. Выведите сотрудников, у которых комиссия меньше 600 (WHERE, >)
5. Выведите сотрудников, у которых комиссия неизвестна (IS NULL)
6. Выведите должности (долж) сотрудников (с повторениями / без повторений) (DISTINCT)
7. Выведите сотрудников, у которых нет руководителя (id_руков) (IS NULL)
8. Выведите сотрудников, у которых зарплата между 2000 и 3000 (BETWEEN, AND)
9. Выведите имя и зарплату сотрудников, отсортировав по зарплате (ORDER BY)
10. Выведите имя и зарплату сотрудников, отсортировав по зарплате по убыванию
Задачи 2 (SQL функции, MAX, MIN, AVG, COUNT, SUM, AS)
1. Выведите максимальную зарплату (MAX)
2. Выведите минимальную зарплату (MIN)
3. Выведите сумму всех зарплат и назовите результат "Сумма зарплат" (SUM, AS)
4. Выведите сумму всех зарплат отдела 20 (SUM, WHERE)
5. Выведите среднюю зарплату отдела 20 (AVG, WHERE)
6. Выведите среднюю зарплату отдела 20 и округлите (AVG, ROUND, WHERE)
7. Выведите среднюю зарплату, сумму всех зарплат отдела 20 (AVG, SUM, WHERE)
8. Сколько сотрудников у нас имеются в таблице? (COUNT)
9. Сколько должностей есть в таблице сотрудников? (COUNT, DISTINCT)
10. Выведите количество сотрудников, у которых зарплата больше 2000
Ответы
Задача 1
1. Выведите сотрудников, у которых зарплата больше 2800 (WHERE, >)
SELECT * FROM сотр
WHERE зарп > 2800;
2. Выведите сотрудников, работающих в отделе 10 или 20 (WHERE, OR)
SELECT * FROM сотр
WHERE id_отдел=10 OR id_отдел=20;
3. Выведите сотрудников, у которых комиссия больше 600 (WHERE, >)
SELECT * FROM сотр
WHERE комис>600;
4. Выведите сотрудников, у которых комиссия меньше 600 (WHERE, >)
SELECT * FROM сотр
WHERE комис<600;
5. Выведите сотрудников, у которых комиссия неизвестна (IS NULL)
SELECT * FROM сотр
WHERE комис IS NULL;
6. Выведите должности (долж) сотрудников (с повторениями / без повторений) (DISTINCT)
SELECT DISTINCT долж FROM сотр;
7. Выведите сотрудников, у которых нет руководителя (id_руков) (IS NULL)
SELECT * FROM сотр
WHERE id_руков IS NULL;
8. Выведите сотрудников, у которых зарплата между 2000 и 3000 (BETWEEN, AND)
SELECT * FROM сотр
WHERE зарп BETWEEN 2000 AND 3000;
SELECT * FROM сотр
WHERE зарп>=2000 AND зарп<=3000;
9. Выведите имя и зарплату сотрудников, отсортировав по зарплате (ORDER BY)
SELECT имя, зарп FROM сотр
ORDER BY зарп;
10. Выведите имя и зарплату сотрудников, отсортировав по зарплате по убыванию
SELECT имя, зарп FROM сотр
ORDER BY зарп DESC;
Задача 2
1. Выведите максимальную зарплату (MAX)
SELECT MAX(зарп) FROM сотр;
2. Выведите минимальную зарплату (MIN)
SELECT MIN(зарп) FROM сотр;
3. Выведите сумму всех зарплат и назовите результат "Сумма зарплат" (SUM, AS)
SELECT SUM(зарп) AS "Сумма зарплат"
FROM сотр;
4. Выведите сумму всех зарплат отдела 20 (SUM, WHERE)
SELECT SUM(зарп) AS "Сумма зарплат отдела 20"
FROM сотр
WHERE id_отдел=20;
5. Выведите среднюю зарплату отдела 20 (AVG, WHERE)
SELECT AVG(зарп) AS "Средняя зарплат"
FROM сотр;
6. Выведите среднюю зарплату отдела 20 и округлите (AVG, ROUND, WHERE)
SELECT ROUND(AVG(зарп)) AS "Средняя зарплат"
FROM сотр;
7. Выведите среднюю зарплату, сумму всех зарплат отдела 20 (AVG, SUM, WHERE)
SELECT ROUND(AVG(зарп)), SUM(зарп)
FROM сотр
WHERE id_отдел=20;
8. Сколько сотрудников у нас имеются в таблице? (COUNT)
SELECT COUNT(*)
FROM сотр;
9. Сколько должностей есть в таблице сотрудников? (COUNT, DISTINCT)
SELECT COUNT(DISTINCT долж)
FROM сотр;
SELECT DISTINCT долж
FROM сотр;
SELECT долж
FROM сотр;
10. Выведите количество сотрудников, у которых зарплата больше 2000
SELECT COUNT(*)
FROM сотр
WHERE зарп > 2000;
Top comments (0)