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
Подзапросы — это запросы, вложенные внутри другого запроса, которые используются для получения промежуточных данных, необходимых для выполнения основного запроса. Они могут находиться в различных частях основного запроса, таких как 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
Индекс — это структура данных, которая улучшает скорость выполнения операций поиска в таблице базы данных, аналогично указателю в книге. Индексы используются для ускорения выполнения запросов, таких как SELECT, и могут значительно повысить производительность при правильном применении, но также увеличивают время вставки и обновления данных.

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍92
💥 ACID — это набор свойств, обеспечивающих надежность транзакций в базах данных.

1️⃣ Atomicity (Атомарность): Транзакция выполняется полностью или не выполняется вовсе. Если часть транзакции не удалась, все изменения отменяются.

2️⃣ Consistency (Согласованность): Транзакция переводит базу данных из одного согласованного состояния в другое, соблюдая все правила и ограничения.

3️⃣ Isolation (Изоляция): Параллельные транзакции не влияют друг на друга. Промежуточные состояния одной транзакции невидимы для других.

4️⃣ Durability (Устойчивость или Долговечность): После завершения транзакции изменения сохраняются, даже в случае сбоя системы.

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

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

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72
🟢 Команда INSERT INTO в SQL используется для добавления новых строк в таблицу базы данных. Она позволяет вставлять данные в указанные столбцы.

INSERT INTO table_name (column1, column2, column3)
VALUES (value1, value2, value3);


🟠 В этом примере данные value1, value2 и value3 вставляются в column1, column2 и column3 таблицы table_name. Если значения вставляются во все столбцы, можно опустить их перечисление:

INSERT INTO table_name
VALUES (value1, value2, value3);


🟡 Команда INSERT INTO поддерживает вставку нескольких строк за один запрос, что повышает эффективность работы с данными.

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

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
Представление (VIEW) — это виртуальная таблица, созданная на основе результата запроса, которая не хранит данные самостоятельно, а отображает их из других таблиц. Использование представлений упрощает сложные запросы, улучшает безопасность данных и обеспечивает абстракцию уровня доступа к данным.

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

Подзапросы могут быть:

1⃣ В SELECT: для вычисления значений.

SELECT name, (SELECT COUNT(*) FROM orders WHERE customer_id = customers.id) AS order_count FROM customers;


2⃣ В WHERE: для фильтрации данных.

SELECT name FROM employees WHERE salary > (SELECT AVG(salary) FROM employees);


3️⃣ В FROM: как временные таблицы.

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

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

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

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥2
📌 Использование оператора WHERE позволяет фильтровать данные в запросах, выбирая только те строки, которые соответствуют заданным условиям. Это мощный инструмент для работы с базами данных, который помогает извлекать только нужные данные.

🔴 Пример использования WHERE:

SELECT * FROM employees
WHERE department = 'Sales';


Этот запрос выбирает всех сотрудников из таблицы employees, которые работают в отделе продаж.

🔴 Можно комбинировать несколько условий с помощью операторов AND и OR:

SELECT * FROM employees
WHERE department = 'Sales' AND salary > 100000;


Этот запрос выбирает сотрудников из отдела продаж с зарплатой выше 100000.

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

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