SQL и Базы Данных – Telegram
SQL и Базы Данных
4.2K subscribers
165 photos
5 videos
183 links
Задачи по базам данных и SQL

Основы языка SQL, задачи и решения к ним.

Админ: @anothertechrock
Download Telegram
В SQL инструкция SELECT * FROM R, S эквивалентна_________
Anonymous Quiz
13%
Select * from R natural join S
28%
Select * from R cross join S
23%
Select * from R union join S
37%
Select * from R inner join S
Если мы хотим удалить дубликаты, мы используем в этом агрегатном выражении ключевое слово ______
Anonymous Quiz
90%
Distinct
4%
Count
2%
Avg
4%
Primary key
Трюк дня. Улучшить производительность запроса к таблице с индексом

В таблице test в столбце signup_date содержатся данные типа date. Для этого стоблца существует индекс.

Следующий SQL запрос не будет использовать существующий индекс, что может приводить к потере производительности:

SELECT
*
FROM test
WHERE DATEPART (YEAR, signup_date) = '2021';

Перепишите запрос так, чтобы существующий индекс стал использоваться.

Решение будет вечером.
👍1
Трюк дня. Улучшить производительность запроса к таблице с индексом. Решение

При использовании функции DATEPART происходит неявное преобразование типа данных. И индекс не будет использован.

Поэтому для лучшей производительности запрос лучше писать следующим образом:

*
FROM test
WHERE signup_date >= '20210101'
AND signup_date < '20220101';
Устраивают ли вас таск-менеджеры, которые вы используете? Хотели бы что-то в них изменить? Не все готовые решения отвечают запросам пользователей, а писать что-то с нуля — муторно и сложно. Ребята из low-code конструктора Ozma рассказали и показали, как создать свой таск-трекер и настроить его под себя.

https://habr.com/ru/post/673874/
👍1
Вопрос с собеседования.

Даны таблицы workers и departments. Найдите все департаменты без единого сотрудника.
Ответ на "Даны таблицы workers и departments. Найдите все департаменты без единого сотрудника."

SELECT department_name
FROM workers w
RIGHT JOIN departments d ON (w.department_id = d.department_id)
WHERE first_name IS NULL;
👍2
Трюк дня. Проверка уникальности имени и фамилии

Напишите SQL запрос, который проверит уникальность комбинации name и surname таблицы customers при отсутствии первичных ключей:

name surname
Alex Kruis
Tim Boils
Tom Andreas
Tim Boils

Вариант решения будет вечером.
👍2
Трюк дня. Проверка уникальности имени и фамилии. Решение

SELECT
COUNT (*),
COUNT (DISTINCT name || surname)
FROM customers;
👍4
Какого строкового типа данных нет в SQL:
Anonymous Quiz
5%
VARCHAR
57%
STRING
11%
CHAR
21%
TEXT
5%
Посмотреть ответ
Вопрос с собеседования.

Перечислите способы получить количество записей в таблице?
Ответ на "Перечислите способы получить количество записей в таблице?"

Для подсчета количества записей в таблице вы можете использовать следующие запросы:

SELECT * FROM table1;

SELECT COUNT(*) FROM table1;

SELECT rows FROM sysindexes WHERE id = OBJECT_ID(table1) AND indid < 2;
👍3👎2
Сколько записей вернет следующий PostgreSQL запрос:
VALUES (11), (22), (33) INTERSECT VALUES (55), (33), (33);
Anonymous Quiz
31%
1
20%
2
14%
3
13%
Ничего из перечисленного
22%
Посмотреть ответ
Вопрос с собеседования.

В чем разница между Full Outer Join и Cross Join?
👍4
Задача на мышление и логику.

Решение будет вечером.

#логика
👍2
😁11👎3🤣3👍1
Вопрос с собеседования.

Отработает ли данный период запрос или упадёт с ошибкой?

UPDATE table_1 SET field1 = ROW_NUMBER () FROM table_1;
👍3
Ответ на "Отработает ли данный период запрос или упадёт с ошибкой?"

Нет, не отработает. Опытный инженер знает, что ROW_NUMBER() — это часть аналитической функции, которая не может быть применена сама по себе. Аналитические функции используются только в конcтрукциях SELECT или ORDER BY.
👍4