SQL cобеседования – Telegram
SQL cобеседования
777 subscribers
97 photos
181 links
Подготовка к собеседованиям в IT

Еще больше разобранных вопросов для подготовки на сайте https://frontview-it.ru

Backend - @frontview_backend
Frontend - @frontview_it
Все IT вакансии - @frontview_all_vacancies
Download Telegram
1️⃣ CURRENT_DATE и CURRENT_TIME: возвращают текущую дату и время.

2️⃣ DATEADD: добавляет интервал к дате. Пример: DATEADD(day, 5, '2025-01-01') добавляет 5 дней.

3️⃣ DATEDIFF: вычисляет разницу между двумя датами. Пример: DATEDIFF(day, '2024-10-01', '2024-10-10') возвращает 9.

4️⃣ FORMAT: форматирует дату. Пример: FORMAT('2025-01-24', 'dd/MM/yyyy') возвращает '24/01/2025'.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥2
1️⃣ Индексы: Создание индексов на столбцах, участвующих в соединении, может ускорить выполнение запроса. Это особенно важно для столбцов, которые часто используются в условиях соединения.

2️⃣ Тип JOIN: Использование INNER JOIN вместо OUTER JOIN, если это возможно, так как INNER JOIN обычно быстрее, поскольку возвращает только совпадающие записи.

3️⃣ Фильтрация данных: Применение условий фильтрации в WHERE или ON до выполнения JOIN. Это уменьшает объем данных, обрабатываемых в соединении.

4️⃣ Избегание SELECT: Выбор только необходимых столбцов вместо использования SELECT уменьшает объем данных, передаваемых в результате.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
SQL cобеседования pinned «ℹ️Подписывайся на наши новые каналы! 🖥 JS собеседования 🖥 Backend собеседования»
📌 EXISTS используется для проверки наличия строк, возвращаемых подзапросом. Он возвращает TRUE, если подзапрос возвращает хотя бы одну строку, и FALSE, если нет. Запрос ниже выбирает всех сотрудников, у которых есть связанные заказы.

SELECT employee_id, employee_name
FROM employees e
WHERE EXISTS (
SELECT 1
FROM orders o
WHERE o.employee_id = e.employee_id
);


Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8💯1
Определение необходимых индексов для таблицы — важный шаг в оптимизации производительности базы данных.

😎 Анализ запросов: Изучение часто выполняемых запросов, особенно тех, которые содержат WHERE, JOIN, ORDER BY и GROUP BY.

😎 Идентификация колонок: Определение колонок, которые часто используются в фильтрах и соединениях.

😎 Использование EXPLAIN: Применение команды EXPLAIN для анализа плана выполнения запросов и выявления узких мест.

😎 Учет уникальности: Создание уникальных индексов для колонок с уникальными значениями может улучшить производительность.

😎 Балансировка: Избегание избыточных индексов, которые могут замедлить операции вставки и обновления.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81
➡️ PARTITION BY используется для разделения набора данных на группы, к которым затем применяются аналитические функции. Это позволяет выполнять вычисления, такие как агрегирование, ранжирование или вычисление скользящих средних, в пределах каждой группы, не сворачивая весь набор данных.

SELECT employee_id, department_id, salary,
RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) AS rank
FROM employees;


PARTITION BY разделяет данные по department_id, и функция RANK() вычисляет ранг зарплаты в пределах каждого отдела.


Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1
💡 Для удаления индекса из таблицы используется команда DROP INDEX, за которой следует имя индекса. Важно помнить, что удаление индекса может повлиять на производительность запросов, поэтому стоит оценить необходимость этого действия перед его выполнением.

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2
🟢Для группировки данных по нескольким столбцам в SQL используется оператор GROUP BY. Он позволяет агрегировать данные по указанным столбцам, что полезно для получения сводной информации.


SELECT department, role, COUNT(*)
FROM employees
GROUP BY department, role;


🟢Этот запрос подсчитывает количество сотрудников в каждой комбинации "отдел-роль".

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101🔥1
Подзапросы — это запросы, вложенные внутри другого запроса, которые используются для получения промежуточных данных, необходимых для выполнения основного запроса. Они могут находиться в различных частях основного запроса, таких как SELECT, FROM или WHERE, и помогают выполнять более сложные операции с данными.

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2
Полнотекстовый поиск — это метод поиска текстовой информации в базе данных, который позволяет находить строки, содержащие определенные слова или фразы, с учетом их формы и порядка. Этот подход эффективен для работы с большими объемами текстовых данных, такими как статьи или документы.

В SQL полнотекстовый поиск реализуется с помощью индексов. Например, в PostgreSQL можно использовать tsvector и tsquery:

-- Создание полнотекстового индекса
CREATE INDEX idx_fts ON articles USING gin(to_tsvector('english', content));

-- Поиск по ключевым словам
SELECT * FROM articles WHERE to_tsvector('english', content) @@ to_tsquery('search & term');


Этот код создает индекс и выполняет поиск по ключевым словам "search" и "term".

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9💯2
▶️ UNION используется для объединения результатов двух или более SELECT-запросов в один набор данных. Все запросы должны иметь одинаковое количество столбцов с совместимыми типами данных.


-- Первый запрос выбирает имена из таблицы employees
SELECT name FROM employees

UNION

-- Второй запрос выбирает имена из таблицы customers
SELECT name FROM customers;


▶️ UNION по умолчанию удаляет дубликаты. Для сохранения всех записей, включая дубликаты, используется UNION ALL.


SELECT name FROM employees

UNION ALL

SELECT name FROM customers;


UNION помогает объединять данные из разных источников в одном запросе.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Для улучшения производительности при работе с подзапросами стоит использовать коррелированные подзапросы только в случае необходимости, так как они выполняются для каждой строки основного запроса. Вместо этого, можно использовать JOIN или временные таблицы, которые часто работают быстрее и эффективнее.

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
🪅 NATURAL JOIN автоматически объединяет таблицы по всем столбцам с одинаковыми именами и типами данных, что может привести к неожиданным результатам, если в таблицах есть столбцы с одинаковыми именами, но разным смыслом.

🪅 Обычный JOIN (INNER JOIN) требует явного указания условий соединения через ключевые слова ON или USING, предоставляя больше контроля над тем, какие столбцы использовать для объединения таблиц. Пример использования INNER JOIN:


SELECT * FROM table1
INNER JOIN table2 ON table1.id = table2.foreign_id;


Этот подход позволяет точно определить, какие столбцы использовать для соединения, избегая потенциальных ошибок NATURAL JOIN.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71🤔1
Индексы создаются с помощью команды CREATE INDEX, которая улучшает скорость выполнения запросов, позволяя быстрее находить строки в таблице. Индексы могут быть созданы на одном или нескольких столбцах таблицы, что оптимизирует операции поиска и сортировки.

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1
🟠 Необходимость нормализации таблицы определяется наличием избыточности данных и аномалий при обновлении, удалении или вставке. Если таблица содержит повторяющиеся группы данных или зависимые атрибуты, нормализация помогает структурировать данные, минимизируя дублирование и улучшая целостность данных.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
Эффективная выборка данных достигается за счет использования индексов, которые ускоряют доступ к строкам таблицы. Также важно оптимизировать запросы, избегая использования подзапросов, если возможно, и применяя агрегатные функции и группировку для уменьшения объема возвращаемых данных.

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
GROUP BY используется в SQL для агрегирования данных по одному или нескольким столбцам. Это позволяет выполнять операции, такие как COUNT, SUM, AVG, MAX, MIN, на сгруппированных данных.

Пример: подсчет количества заказов по каждому клиенту.


SELECT customer_id, COUNT(order_id) AS order_count
FROM orders
GROUP BY customer_id;


✔️ Этот запрос группирует заказы по идентификатору клиента и считает количество заказов для каждого клиента. Результат — таблица с клиентами и количеством их заказов.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
Нормализация до третьей нормальной формы (3NF) включает удаление транзитивных зависимостей, что требует сначала приведения таблицы к первой нормальной форме (1NF) с устранением повторяющихся групп и ко второй нормальной форме (2NF) с устранением частичных зависимостей. В 3NF каждая неключевая колонка должна зависеть только от первичного ключа, а не от других неключевых колонок.

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2
Добавление данных в таблицу SQL выполняется с помощью команды INSERT INTO. Эта команда позволяет вставить одну или несколько строк в таблицу.

Пример добавления одной строки:

INSERT INTO employees (name, position, salary)
VALUES ('Иван Иванов', 'Менеджер', 210000);


В этом примере данные добавляются в таблицу employees в столбцы name, position и salary.

Для добавления нескольких строк используется следующий синтаксис:

INSERT INTO employees (name, position, salary)
VALUES
('Анна Смирнова', 'Аналитик', 260000),
('Петр Петров', 'Разработчик', 270000);


Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101
INNER JOIN возвращает только те строки, которые имеют совпадения в обеих объединяемых таблицах, обеспечивая пересечение данных. OUTER JOIN, включая LEFT, RIGHT и FULL, возвращает все строки из одной или обеих таблиц, заполняя отсутствующие совпадения NULL значениями, что позволяет сохранить все данные из одной или обеих таблиц.

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
💡 ALTER TABLE — это команда, используемая для изменения структуры существующей таблицы в базе данных. Она позволяет добавлять, удалять или изменять столбцы, а также управлять ограничениями.

Пример добавления нового столбца:


ALTER TABLE employees ADD COLUMN birthdate DATE;
-- Добавляет столбец birthdate типа DATE в таблицу employees


Пример изменения типа данных столбца:


ALTER TABLE employees ALTER COLUMN salary TYPE DECIMAL(10, 2);
-- Изменяет тип данных столбца salary на DECIMAL с точностью 10 и 2 знаками после запятой


Пример удаления столбца:


ALTER TABLE employees DROP COLUMN birthdate;
-- Удаляет столбец birthdate из таблицы employees


Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10💯1