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
🔥 Как работают агрегатные функции COUNT, SUM, AVG, MAX, MIN?

Агрегатные функции в SQL используются для выполнения вычислений над набором значений и возвращают одно значение.

1. COUNT: Подсчитывает количество строк в наборе данных. Может использоваться с DISTINCT для подсчета уникальных значений.


SELECT COUNT(*) FROM employees;


2. SUM: Вычисляет сумму значений в столбце. Обычно используется с числовыми данными.


SELECT SUM(salary) FROM employees;


3. AVG: Вычисляет среднее значение в столбце. Применяется к числовым данным.


SELECT AVG(salary) FROM employees;


4. MAX: Возвращает максимальное значение в столбце.


SELECT MAX(salary) FROM employees;


5. MIN: Возвращает минимальное значение в столбце.


SELECT MIN(salary) FROM employees;


Эти функции часто используются с GROUP BY для агрегирования данных по группам. Например, чтобы получить среднюю зарплату по отделам, можно использовать AVG с GROUP BY department.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍92
🔥 Что такое схема базы данных?

Схема базы данных — это структурированное описание базы данных, которое определяет, как данные организованы и как они связаны друг с другом. Она включает в себя таблицы, столбцы, типы данных, ключи и отношения между таблицами. Схема служит основой для проектирования и управления базой данных, обеспечивая целостность и согласованность данных.

В реляционных базах данных схема обычно представлена в виде диаграммы, где каждая таблица изображается как прямоугольник, а связи между таблицами — как линии. Первичные ключи (Primary Keys) и внешние ключи (Foreign Keys) играют ключевую роль в установлении этих связей.

Схема базы данных может быть логической и физической. Логическая схема описывает структуру данных на концептуальном уровне, а физическая — на уровне хранения данных в системе управления базами данных (СУБД).

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81🔥1
🔥 Каковы основные типы данных существуют в SQL?

Основные типы данных в SQL делятся на несколько категорий, каждая из которых предназначена для хранения определенного типа информации.

Числовые типы данных включают INT для целых чисел, FLOAT и DOUBLE для чисел с плавающей запятой, а также DECIMAL для точных числовых значений.

Строковые типы данных включают CHAR для строк фиксированной длины и VARCHAR для строк переменной длины. Для хранения больших текстов используется TEXT.

Дата и время представлены типами DATE, TIME, DATETIME, TIMESTAMP и YEAR, которые позволяют хранить даты и временные метки.

Логические значения хранятся в типе BOOLEAN, который может принимать значения TRUE или FALSE.

Также существуют специальные типы данных, такие как BLOB для бинарных данных и ENUM для перечислений. Выбор подходящего типа данных важен для оптимизации производительности и хранения данных.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям на сайте 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥1💯1
💡В реляционных базах данных связь "один ко многим" реализуется с помощью внешнего ключа. В таблице, представляющей "многие", создается столбец, который ссылается на первичный ключ таблицы, представляющей "один".

Например, в таблице "Orders" может быть столбец "customer_id", который является внешним ключом, ссылающимся на "id" в таблице "Customers". Это позволяет каждой записи в "Customers" соответствовать нескольким записям в "Orders", обеспечивая связь "один ко многим".

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

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍112
🔖 SELF JOIN — это техника, позволяющая соединять таблицу с самой собой. Это полезно, когда необходимо сравнить строки внутри одной таблицы. Например, можно использовать SELF JOIN для нахождения сотрудников, которые работают в одном отделе.

SELECT e1.name AS Employee1, e2.name AS Employee2
FROM employees e1
JOIN employees e2 ON e1.department_id = e2.department_id
WHERE e1.id <> e2.id;

Этот запрос выбирает пары сотрудников из одной таблицы, работающих в одном отделе, исключая совпадения с самим собой.

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

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥1
ℹ️Подписывайся на наши новые каналы!

🖥 JS собеседования
🖥 Backend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
✏️ Для выбора всех строк из таблицы в SQL используется оператор SELECT. Он позволяет извлечь данные из одной или нескольких таблиц базы данных. Чтобы выбрать все строки и все столбцы из таблицы, применяется следующая команда:

SELECT * FROM table_name;


➡️ Здесь table_name — это имя таблицы, из которой необходимо извлечь данные. Символ * обозначает выбор всех столбцов. Эта команда возвращает все строки таблицы в том порядке, в котором они хранятся.

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

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1011
💡Реализация связи "многие ко многим" требует создания промежуточной таблицы, которая связывает две другие таблицы. Например, для связи студентов и курсов создается таблица student_courses с внешними ключами student_id и course_id, которые ссылаются на таблицы students и courses.

CREATE TABLE students (
student_id INT PRIMARY KEY,
name VARCHAR(100)
);

CREATE TABLE courses (
course_id INT PRIMARY KEY,
noscript VARCHAR(100)
);

CREATE TABLE student_courses (
student_id INT,
course_id INT,
PRIMARY KEY (student_id, course_id),
FOREIGN KEY (student_id) REFERENCES students(student_id),
FOREIGN KEY (course_id) REFERENCES courses(course_id)
);

Эта структура позволяет одному студенту записываться на несколько курсов и одному курсу иметь нескольких студентов.

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

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10💯1
Подзапросы можно использовать в JOIN двумя основными способами:

1⃣ В условии соединения (ON):
SELECT e.name, d.dept_name
FROM employees e
JOIN departments d ON e.dept_id = (
SELECT dept_id
FROM dept_locations
WHERE location = 'New York'
)


2⃣ В качестве присоединяемой таблицы:
SELECT e.name, s.avg_salary
FROM employees e
JOIN (
SELECT dept_id, AVG(salary) as avg_salary
FROM employees
GROUP BY dept_id
) s ON e.dept_id = s.dept_id


Второй способ особенно полезен, когда нужно соединить основную таблицу с агрегированными данными или предварительно отфильтрованным набором записей.

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

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥2👨‍💻1
ROLLUP — это оператор, который используется для создания агрегированных данных на нескольких уровнях иерархии. Он позволяет автоматически добавлять промежуточные итоги и общий итог в результат запроса. Это особенно полезно для отчетов, где необходимо видеть как детализированные, так и суммарные данные.

SELECT department, product, SUM(sales) AS total_sales
FROM sales_data
GROUP BY ROLLUP(department, product);


Этот запрос вернет общие продажи по каждому продукту в каждом отделе, а также общие продажи по отделам и общую сумму продаж.

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

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10👀21
Оператор CASE используется для выполнения логических условий и возврата значений на основе этих условий. Он позволяет создавать условные выражения, которые могут быть полезны для формирования более сложных запросов.

Синтаксис CASE включает в себя условия WHEN, которые проверяются последовательно. Если условие истинно, возвращается значение, указанное после THEN. Если ни одно из условий не истинно, возвращается значение после ELSE (если оно указано).

SELECT 
product_name,
CASE
WHEN price < 100 THEN 'Дешево'
WHEN price BETWEEN 100 AND 500 THEN 'Средне'
ELSE 'Дорого'
END AS price_category
FROM products;


Этот запрос классифицирует товары по ценовым категориям.

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

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

🪅 CUBE полезен для анализа данных, когда необходимо получить сводные данные по нескольким параметрам одновременно.

SELECT 
department,
product,
SUM(sales) AS total_sales
FROM sales_data
GROUP BY CUBE(department, product);


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

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

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

Например, в таблице с миллионами записей поиск по неиндексированному столбцу может занять много времени, так как требуется последовательный просмотр каждой записи. Однако, если на столбец установлен индекс, поиск будет происходить значительно быстрее, так как индекс позволяет напрямую перейти к нужным данным.

Индексы особенно полезны для операций SELECT, JOIN и WHERE, но могут замедлять INSERT, UPDATE и DELETE, так как требуют обновления индексов.

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

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81
Нормализация — это процесс организации данных в базе данных для минимизации избыточности и обеспечения целостности данных.

Основные преимущества нормализации включают в себя:

1️⃣ Уменьшение избыточности данных, что снижает объем хранимой информации и упрощает управление данными.
2️⃣ Обеспечение целостности данных, так как изменения в одном месте автоматически отражаются в других связанных местах.
3️⃣ Улучшение производительности запросов за счет уменьшения количества дублирующихся данных.

Однако нормализация имеет и недостатки:

1️⃣ Усложнение структуры базы данных, что может затруднить понимание и поддержку.
2️⃣ Увеличение количества таблиц и, как следствие, сложности запросов, что может замедлить выполнение сложных операций.
3️⃣ Потребность в дополнительных соединениях (JOIN) при выполнении запросов, что может негативно сказаться на производительности в некоторых случаях.

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

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

Чтобы тонко управлять включением или исключением записей с NULL, используются условия в секциях ON или WHERE. Например:

SELECT t1.col1, t2.col2
FROM Table1 t1
LEFT JOIN Table2 t2 ON t1.key = t2.key OR t1.key IS NULL;


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

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

SELECT column1, column2 FROM table1
UNION
SELECT column1, column2 FROM table2;


Для сохранения всех дубликатов используется UNION ALL.

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

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7💯2
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