Перейти к содержанию

Команда SELECT, Условие отбора WHERE

Введение

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

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

Команда SELECT — одна из самых важных и часто используемых в SQL, поскольку именно с её помощью пользователь извлекает данные для анализа, отчётов и отображения в приложениях.


Команда SELECT

Назначение

Команда SELECT предназначена для выборки данных из таблицы базы данных.

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

Общий синтаксис

SELECT список_столбцов
FROM имя_таблицы
[WHERE условие];
  • SELECT — определяет, какие столбцы нужно отобразить;
  • FROM — указывает таблицу, из которой будут получены данные;
  • WHERE — задаёт условие фильтрации (необязательно).

Простой пример

SELECT full_name, group_id
FROM Students;

Этот запрос выводит имена студентов и их группы из таблицы Students.

Выбор всех столбцов

Чтобы вывести все поля таблицы, используется символ *:

SELECT * FROM Students;

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

Присвоение псевдонимов

Можно переименовать столбцы в результатах запроса с помощью AS:

SELECT full_name AS "ФИО", group_id AS "Группа"
FROM Students;

Псевдонимы делают вывод более понятным, особенно в отчётах.


Условие отбора WHERE

Назначение

Ключевое слово WHERE используется для отбора строк, которые соответствуют определённым условиям.

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

Общий синтаксис

SELECT столбцы
FROM имя_таблицы
WHERE условие;

Примеры простых условий

Пример Описание
WHERE group_id = 101 выбирает студентов из группы 101
WHERE birth_date > '2005-01-01' выбирает студентов, родившихся после 1 января 2005
WHERE full_name = 'Иванов Иван' выбирает студентов с указанным ФИО

Логические операторы

Условия можно объединять логическими операторами AND, OR, NOT.

Оператор Назначение Пример
AND истина, если верны оба условия WHERE group_id = 101 AND birth_date > '2005-01-01'
OR истина, если верно хотя бы одно условие WHERE group_id = 101 OR group_id = 102
NOT инвертирует условие WHERE NOT group_id = 101

AND имеет приоритет выше, чем OR, поэтому при сложных выражениях рекомендуется использовать скобки.

Операторы сравнения

Оператор Значение Пример
= равно WHERE age = 18
<> или != не равно WHERE group_id <> 105
> больше WHERE score > 70
< меньше WHERE score < 50
>= больше или равно WHERE score >= 4
<= меньше или равно WHERE age <= 20

Проверка диапазона: BETWEEN

SELECT full_name, score
FROM Students
WHERE score BETWEEN 60 AND 80;

Выводит всех студентов, чей балл находится в диапазоне от 60 до 80 включительно.

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

SELECT full_name, group_id
FROM Students
WHERE group_id IN (101, 102, 103);

Условие верно, если значение входит в указанный список.

Поиск по шаблону: LIKE

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

  • % — любое количество символов;
  • _ — ровно один символ.

Примеры:

WHERE full_name LIKE 'Ив%';      -- все, кто начинается на 'Ив'
WHERE full_name LIKE '%ова';     -- все, кто оканчивается на 'ова'
WHERE full_name LIKE '_им%';     -- все, у кого вторая буква — 'и'

Проверка на пустые значения: IS NULL / IS NOT NULL

WHERE email IS NULL;
WHERE phone IS NOT NULL;

Позволяет находить записи, где значение отсутствует или заполнено.

Комбинирование условий

SELECT full_name, group_id, birth_date
FROM Students
WHERE (group_id = 101 OR group_id = 102)
  AND birth_date > '2005-01-01';

Этот запрос выводит студентов групп 101 и 102, родившихся после 2005 года.


Практические примеры

  1. Вывести всех студентов группы ИС-21:

    sql SELECT full_name FROM Students WHERE group_id = 101;

  2. Вывести студентов, у которых не указана дата рождения:

    sql SELECT full_name FROM Students WHERE birth_date IS NULL;

  3. Вывести студентов старше 18 лет (по году рождения):

    sql SELECT full_name, birth_date FROM Students WHERE birth_date < '2007-01-01';

  4. Вывести всех студентов, чьё имя начинается на «А»:

    sql SELECT full_name FROM Students WHERE full_name LIKE 'А%';


Итоги

  • Команда SELECT используется для извлечения данных из базы данных.
  • Ключевое слово WHERE позволяет фильтровать записи, выбирая только те, которые соответствуют заданным условиям.
  • Основные средства отбора:
    • сравнение (=, >, <, <> и др.);
    • диапазоны (BETWEEN);
    • множества (IN);
    • шаблоны (LIKE);
    • проверка на пустые значения (IS NULL).

Эти инструменты составляют основу анализа данных в SQL.

Следующим шагом будет изучение сортировки (ORDER BY), группировки (GROUP BY) и объединения таблиц (JOIN).