Задача 1:
Есть таблица, в которой хранится количество очков игрока.
CREATE TABLE user_scores ( user_id INTEGER, score INTEGER )
Сервис принимает входящие запросы и для каждого запроса делает следующее:
SELECT score FROM user_scores WHERE user_id = $1UPDATE user_scores SET score = $1 WHERE user_id = $2
Какие проблемы могут возникнуть в таком подходе? Каким образом можно их исправить?Задача 2:
Есть таблица, в которой хранится список сотрудников, где id - идентификатор сотрудника name - имя сотрудника, boss_id - идентификатор начальника для этого сотрудника, boss_id ссылается на сотрудника из этой же таблицы.
CREATE TABLE employees ( id INTEGER, name text, boss_id INTEGER, PRIMARY KEY(id), CONSTRAINT fk_boss_id FOREIGN KEY(boss_id) REFERENCES employees(id) )
Напишите sql запрос, который вернет всех сотрудников у которых нет подчиненных.
Задача 3:
Напишите SQL-запрос, который вернет имя и сумму бонуса каждого сотрудника с бонусом менее 1000.
Таблица: Employee
+-------------+---------+
| Column Name | Type |
+-------------+---------+
| empId | int |
| name | varchar |
| supervisor | int |
| salary | int |
+-------------+---------+
empId — это столбец с уникальными значениями для этой таблицы. В каждой строке этой таблицы указаны имя и идентификатор сотрудника, а также его зарплата и идентификатор его руководителя.
Таблица: Bonus
+-------------+------+
| Column Name | Type |
+-------------+------+
| empId | int |
| bonus | int |
+-------------+------+
empId — столбец уникальных значений для этой таблицы. empId — это внешний ключ (справочный столбец) для empId из таблицы «Employee». Каждая строка этой таблицы содержит идентификатор сотрудника и соответствующий бонус.
Задача 4:
Есть такая БД:
`CREATE TABLE cities ( id serial PRIMARY KEY, name text NOT NULL );
INSERT INTO cities (name) VALUES ("Париж"), ("Лондон"), ("Нью-Йорк");
create table users ( id serial PRIMARY KEY, name text NOT NULL, city_id int NOT NULL REFERENCES cities(id) );
INSERT INTO users(name, city_id) VALUES ("Вася", 1), ("Петя", 1), ("Коля", 2);`