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


SELECT
employee_id,
salary,
-- Применение CASE для определения уровня зарплаты
CASE
WHEN salary > 200000 THEN 'High'
WHEN salary BETWEEN 100000 AND 200000 THEN 'Medium'
ELSE 'Low'
END AS salary_level
FROM employees;


Этот запрос классифицирует сотрудников по уровню зарплаты, используя CASE для определения категории.

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

✈️ SQL собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍134👨‍💻2
Шифрование данных в SQL используется для защиты конфиденциальной информации, хранящейся в базе данных, путем преобразования данных в зашифрованный формат, который может быть прочитан только с использованием ключа дешифрования. Это достигается с помощью встроенных функций шифрования, таких как TDE (Transparent Data Encryption) для шифрования всего хранилища или функций для шифрования отдельных столбцов, что обеспечивает дополнительный уровень безопасности данных.

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

Синтаксис команды:


UPDATE имя_таблицы
SET имя_столбца1 = новое_значение1, имя_столбца2 = новое_значение2
WHERE условие;


Важный аспект использования UPDATE — это указание условия в блоке WHERE. Без него все записи в таблице будут обновлены, что может привести к нежелательным изменениям.

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

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