SQL для начинающих. Функции и операторы.

SQL для начинающих. Функции и операторы.

@stoic_ftr

Агрегатные функции

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

  • COUNT(): Считает количество строк. Например, COUNT(*) вернёт общее количество строк в таблице, а COUNT(столбец) — количество строк, где значение столбца не равно NULL.
  • SUM(): Суммирует значения в определённом столбце. Полезно для суммирования числовых данных, таких как доходы или продажи. Пример:
SELECT SUM(цена)
FROM заказы;
  • AVG(): Находит среднее значение числового столбца.
SELECT AVG(зарплата)
FROM сотрудники;
  • MAX() и MIN(): Возвращают максимальное или минимальное значение. Это может быть полезно для определения наибольшего или наименьшего значения в наборе данных.
SELECT MAX(возраст)
FROM сотрудники;

Функции работы со строками и датами

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

  • CONCAT(): Объединяет несколько строк в одну. Например, вы можете объединить фамилию и имя сотрудников в одну строку.
SELECT CONCAT(имя, ' ', фамилия) AS ФИО
FROM сотрудники;
  • SUBSTRING(): Извлекает часть строки. Используется для получения подстроки из строки по индексу.
SELECT SUBSTRING(телефон, 1, 3) AS код_страны
FROM клиенты;
  • DATEDIFF(): Возвращает разницу между двумя датами.
SELECT DATEDIFF(сегодняшняя_дата, дата_начала)
FROM проект;

Операторы сравнения и логические операторы

Эти операторы помогают фильтровать данные по различным критериям, создавая гибкие и мощные запросы.

  • Операторы сравнения (=, <>, >, <, >=, <=): Они позволяют сравнивать значения в SQL запросах. Например, можно выбрать всех сотрудников с зарплатой больше 50 000:
SELECT * FROM сотрудники
WHERE зарплата > 50000;
  • BETWEEN: Проверяет, попадает ли значение в заданный диапазон.
SELECT * FROM продукты
WHERE цена BETWEEN 100 AND 500;
  • LIKE: Ищет схожие строки по шаблону с использованием символов подстановки, таких как %.
SELECT * FROM клиенты
WHERE имя LIKE 'А%';
  • AND, OR, NOT: Логические операторы помогают комбинировать условия.
SELECT * FROM сотрудники
WHERE отдел = 'Продажи' AND зарплата > 30000;


ТОП-5 вопросов на собеседовании по SQL:

1.Напишите SQL-запрос, который возвращает только уникальные значения из столбца данных в таблице.

Чтобы вернуть уникальные значения из столбца, используется ключевое слово DISTINCT. Оно убирает дублирующиеся значения из результата запроса.

SELECT * FROM сотрудники
WHERE отдел = 'Продажи' AND зарплата > 30000;

Этот запрос вернёт все уникальные значения из столбца column_name таблицы table_name.


2. Как найти дубликат записи? Опишите процесс для дублирования записей с одним и несколькими полями.

Для поиска дубликатов можно использовать группировку данных и функцию COUNT. Рассмотрим процесс поиска дубликатов для одного поля и для нескольких полей:

  • Для одного поля: Если нужно найти дубликаты по одному столбцу, например, по email:
SELECT email, COUNT(*)
FROM users
GROUP BY email
HAVING COUNT(*) > 1;

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

  • Для нескольких полей: Если нужно найти дубликаты по комбинации столбцов, например, по first_name и last_name:
SELECT first_name, last_name, COUNT(*)
FROM users
GROUP BY first_name, last_name
HAVING COUNT(*) > 1;

Этот запрос покажет, если несколько строк имеют одинаковые значения в полях first_name и last_name.


3. Что такое булевое значение в SQL?

Булевое значение в SQL — это значение, которое может быть либо TRUE, либо FALSE. SQL также поддерживает третий вариант — NULL, который означает неопределённое или отсутствующее значение.

Булевы значения обычно используются в условиях запросов, например:

SELECT * FROM users
WHERE is_active = TRUE;

Этот запрос вернёт все строки, где значение столбца is_active равно TRUE.

Однако, не во всех базах данных SQL существует явный тип данных BOOLEAN. Например, в MySQL можно использовать TINYINT(1), где 1 считается TRUE, а 0FALSE.


4. Как получить последний id без использования функции max?

Чтобы получить последний добавленный идентификатор (ID), можно использовать функции, предоставляющие доступ к последнему вставленному значению.

Если нужно получить последнюю запись, можно использовать сортировку по ID:

SELECT id
FROM table_name
ORDER BY id DESC
LIMIT 1;


5. Чем отличаются DISTINCT и UNIQUE?
  • DISTINCT — это ключевое слово, используемое в SELECT для возвращения уникальных значений. Оно работает на уровне результата запроса.

Пример:

SELECT DISTINCT column_name
FROM table_name;

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

  • UNIQUE — это ограничение, которое накладывается на столбец или группу столбцов в таблице при её создании. Это ограничение гарантирует, что значения в этом столбце будут уникальными для каждой строки.
CREATE TABLE users ( id INT PRIMARY KEY, email VARCHAR(255) UNIQUE );

Здесь UNIQUE гарантирует, что каждый адрес электронной почты будет уникальным для каждой записи в таблице users.

Таким образом, DISTINCT используется в запросах для фильтрации дубликатов, а UNIQUE — это ограничение на уровне таблицы, которое предотвращает дублирование данных при вставке.


Report Page