Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Фильтрация данных Основы SQL

Представим, что нам нужно выбрать из нашей таблицы users всех пользователей с идентификаторами больше 60. Мы могли бы с помощью оператора SELECT вывести всю таблицу, а затем вручную отобрать интересующие записи. Но это делать долго и неудобно. В языке SQL для того, чтобы отобрать записи по требуемому условию, используют оператор WHERE. Его мы изучим в этом уроке.

Как работать с условиями выборки

Чтобы выбрать строки, которые нам нужны используют оператор WHERE. В запросе SELECT его нужно добавить и после него задать нужное нам условие. Идентификатор пользователя хранится в поле id, значит нас интересуют те строки, у которых id > 60. Запрос будет выглядеть так:

SELECT * FROM users WHERE id > 60;

View on DB Fiddle

Этот запрос выведет пользователей, чей идентификатор больше 60.

Можно заметить, что SQL-запросы можно читать как законченные предложения на английском языке. Запрос выше переводится так:

«Выбрать все столбцы из таблицы users, и строки, в которых значение в столбце id больше 60»

В условиях мы можем использовать и другие операторы сравнения:

  • = — равно

  • != — не равно

  • > — больше

  • < — меньше

  • >= — больше либо равно, не меньше

  • <= — меньше либо равно, не больше

Так эти операторы будут выглядеть в запросе:

SELECT * FROM users WHERE id = 1;

View on DB Fiddle

Этот запрос выберет всех пользователей из таблицы users, чей идентификатор равен единице.

Такая формулировка звучит странно: мы выбираем по уникальному идентификатору, поэтому и запись должна быть одна.

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

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

Если нам нужны все пользователи кроме того, чей идентификатор равен трём, то воспользуемся оператором неравенства:

SELECT * FROM users WHERE id != 3;

View on DB Fiddle

Теперь попробуем вывести пользователей с именем Johan:

SELECT * FROM users WHERE first_name = Johan;

View on DB Fiddle

В таком виде запрос выдаст ошибку. Мы говорили, что в каждом столбце могут храниться данные только определенного типа. И обращаться к разным типам данных нужно по-разному.

В столбце id таблицы users хранятся числа, а в столбце first_name - текст.

Текст в SQL должен записываться в одинарных кавычках. Правильный запрос будет выглядеть так:

SELECT * FROM users WHERE first_name = 'Johan';

View on DB Fiddle

Работе со строками мы посвятим отдельный урок.

Еще один тип данных, с которым мы уже столкнулись - дата. Как и текст, она должна быть оформлена в одинарные кавычки.

Следующий запрос выберет все курсы онлайн-школы, созданные начиная с 15 июня 2022 года:

SELECT name, created_at FROM courses WHERE created_at > '2022-06-14';

View on DB Fiddle

Выводы

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

При использовании WHERE нужно помнить про тип данных столбца, по которому задается условие. Это важно, потому что для разных типов данных устанавливаются разные правила оформления: например, строки и даты должны быть заключены в одинарные кавычки.


Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

Об обучении на Хекслете

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы
профессия
Обучитесь разработке бэкенда сайтов и веб-приложений — серверной части, которая отвечает за логику и базы данных
10 месяцев
с нуля
Старт 7 ноября
профессия
Выполняйте ручное тестирование веб-приложений, находите ошибки в продукте. Узнайте все о тест-дизайне.
4 месяца
с нуля
Старт 7 ноября
профессия
Научитесь разработке веб-приложений, сайтов и программного обеспечения на языке Java, программируйте и используйте структуры данных
10 месяцев
с нуля
Старт 7 ноября
профессия
новый
Собирайте, анализируйте и интерпретируйте данные, улучшайте бизнес-процессы и продукт компании. Обучитесь работе с библиотеками Python
9 месяцев
с нуля
Старт 7 ноября
профессия
Занимайтесь созданием сайтов, веб-приложений, сервисов и их интеграцией с внутренними бизнес-системами на бекенд-языке PHP
10 месяцев
с нуля
Старт 7 ноября
профессия
Обучитесь разработке визуальной части сайта — фронтенда, а также реализации серверной — бэкенда. Освойте HTML, CSS, JavaScript
16 месяцев
с нуля
Старт 7 ноября
профессия
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 7 ноября
профессия
новый
Организовывайте процесс автоматизации тестирования на проекте, обучитесь языку программирования JavaScript, начните управлять процессом тестирования
8 месяцев
c опытом
Старт 7 ноября

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»