Команда 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 года.
Практические примеры
-
Вывести всех студентов группы ИС-21:
sql SELECT full_name FROM Students WHERE group_id = 101; -
Вывести студентов, у которых не указана дата рождения:
sql SELECT full_name FROM Students WHERE birth_date IS NULL; -
Вывести студентов старше 18 лет (по году рождения):
sql SELECT full_name, birth_date FROM Students WHERE birth_date < '2007-01-01'; -
Вывести всех студентов, чьё имя начинается на «А»:
sql SELECT full_name FROM Students WHERE full_name LIKE 'А%';
Итоги
- Команда
SELECTиспользуется для извлечения данных из базы данных. - Ключевое слово
WHEREпозволяет фильтровать записи, выбирая только те, которые соответствуют заданным условиям. - Основные средства отбора:
- сравнение (
=,>,<,<>и др.); - диапазоны (
BETWEEN); - множества (
IN); - шаблоны (
LIKE); - проверка на пустые значения (
IS NULL).
- сравнение (
Эти инструменты составляют основу анализа данных в SQL.
Следующим шагом будет изучение сортировки (ORDER BY), группировки (GROUP BY) и объединения таблиц (JOIN).