-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrequests.sql
More file actions
83 lines (83 loc) · 4.47 KB
/
Copy pathrequests.sql
File metadata and controls
83 lines (83 loc) · 4.47 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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
-- Отримати всі завдання певного користувача
-- Використайте SELECT для отримання завдань конкретного користувача за його user_id
SELECT title, description
FROM tasks
WHERE user_id = 5;
-- Вибрати завдання за певним статусом
-- Використайте підзапит для вибору завдань з конкретним статусом, наприклад, 'new'
SELECT id, title, description
FROM tasks
WHERE status_id = (
SELECT id
FROM status
WHERE name = 'new');
-- Оновити статус конкретного завдання
-- Змініть статус конкретного завдання на 'in progress' або інший статус
UPDATE tasks SET status_id = (
SELECT id
FROM status
WHERE name ='in progress')
WHERE id = 10;
-- Отримати список користувачів, які не мають жодного завдання
-- Використайте комбінацію SELECT, WHERE NOT IN і підзапит
SELECT id, fullname
FROM users u
WHERE id NOT IN(
SELECT user_id
FROM tasks);
-- Додати нове завдання для конкретного користувача
-- Використайте INSERT для додавання нового завдання
INSERT INTO tasks (title, description, status_id, user_id)
VALUES ('Complete your homework', 'Do something, that you weren''t asked for at first', (SELECT id FROM status WHERE name = 'new'), 1);
-- Отримати всі завдання, які ще не завершено
-- Виберіть завдання, чий статус не є 'завершено'
SELECT id, title
FROM tasks
WHERE status_id IN (
SELECT id
FROM status
WHERE name = 'in progress' OR name = 'new');
-- Видалити конкретне завдання
-- Використайте DELETE для видалення завдання за його id
DELETE FROM tasks WHERE id = 3;
-- Знайти користувачів з певною електронною поштою
-- Використайте SELECT із умовою LIKE для фільтрації за електронною поштою
SELECT id, fullname, email
FROM users
WHERE email LIKE '%@example.com';
-- Оновити ім'я користувача
-- Змініть ім'я користувача за допомогою UPDATE
UPDATE users SET fullname = 'Elon Musk' WHERE fullname = 'Christian Lopez';
-- Отримати кількість завдань для кожного статусу
-- Використайте SELECT, COUNT, GROUP BY для групування завдань за статусами
SELECT status_id, COUNT(id) as total_tasks
FROM tasks
GROUP BY status_id;
-- Отримати завдання, які призначені користувачам з певною доменною частиною електронної пошти
-- Використайте SELECT з умовою LIKE в поєднанні з JOIN, щоб вибрати завдання, призначені користувачам,
-- чия електронна пошта містить певний домен (наприклад, '%@example.com')
SELECT t.id, t.title
FROM tasks t
JOIN users u ON u.id = t.user_id
WHERE u.email LIKE '%@example.com';
-- Отримати список завдань, що не мають опису
-- Виберіть завдання, у яких відсутній опис
-- Тут я точно не знав, чи це про пустий рядок взагалі, чи NULL також мається на увазі
SELECT id, title
FROM tasks
WHERE description = '' OR description IS NULL;
-- Вибрати користувачів та їхні завдання, які є у статусі 'in progress'
-- Використайте INNER JOIN для отримання списку користувачів та їхніх завдань із певним статусом
SELECT t.id, t.title, u.fullname
FROM tasks t
JOIN users u ON u.id = t.user_id
WHERE status_id = (
SELECT id
FROM status
WHERE name = 'in progress');
-- Отримати користувачів та кількість їхніх завдань
-- Використайте LEFT JOIN та GROUP BY для вибору користувачів та підрахунку їхніх завдань
SELECT u.id, u.fullname, COUNT(t.id)
FROM users u
LEFT JOIN tasks t ON t.user_id = u.id
GROUP BY u.id, u.fullname;