В одной из предыдущих статей мы узнали, как извлечь все записи из таблицы или столбцов таблицы. Но в реальном сценарии нам обычно нужно выбирать, обновлять или удалять только те записи, которые соответствуют определенным условиям, например, пользователи, принадлежащие к определенной возрастной группе или стране и т.д.
Ключевое слово WHERE используется с SELECT, UPDATE и DELETE. Тем не менее, вы увидите использование этого предложения с другими утверждениями в следующих статьях.
Синтаксис
Ключевое слово WHERE используется с оператором SELECT для извлечения только тех записей, которые удовлетворяют указанным условиям. Основной синтаксис может быть задан с помощью:
SELECT column_list FROM table_name WHERE condition;
Здесь column_list - это имена столбцов/полей, таких как имя, возраст, страна и т.д. таблицы базы данных, значения которой вы хотите получить. Однако, если вы хотите получить значения всех столбцов, доступных в таблице, вы можете использовать следующий синтаксис:
SELECT * FROM table_name WHERE condition;
Теперь давайте рассмотрим несколько примеров, которые демонстрируют, как это на самом деле работает.
Предположим, у нас есть таблица с именем сотрудников в нашей базе данных со следующими записями:
+--------+--------------+------------+--------+---------+ | emp_id | emp_name | hire_date | salary | dept_id | +--------+--------------+------------+--------+---------+ | 1 | Vasya Pupkin | 2001-05-01 | 5000 | 4 | | 2 | Vanya Pupkin | 2002-07-15 | 6500 | 1 | | 3 | Petya Pupkin | 2005-10-18 | 8000 | 5 | +--------+--------------+------------+--------+---------+
Фильтрация записей с помощью условия WHERE
Следующая команда SQL возвращает всех сотрудников из таблицы сотрудников, чья зарплата превышает 6000. Ключевое слово WHERE просто отфильтровывает нежелательные данные.
SELECT * FROM employees WHERE salary > 6000;
После выполнения этой команды, вы получите записи только тех сотрудников, заработная плата которых больше 6000.
Так же, мы можем изменять количество выводимых столбцов, указывая их в запросе. Давайте выведем сотрудников в таблицу содержащую только их айди, имена и заработные платы.
SELECT emp_id, emp_name, salary FROM employees WHERE salary > 6000;
В результате вы получите таблицу состоящую из указаных выше столбцов:
+--------+--------------+--------+ | emp_id | emp_name | salary | +--------+--------------+--------+ | 1 | Vasya Pupkin | 5000 | | 2 | Vanya Pupkin | 6500 | | 3 | Petya Pupkin | 8000 | +--------+--------------+--------+
В обоих примерах мы использовали оператор «больше чем». Однако, вы можете менять операторы в зависимости от результатов, которые хотите получить. Давайте рассмотрим подробнее, какие операторы можно использовать с ключевым словом WHERE.
Операторы, используемые с WHERE
MySQL поддерживает ряд различных операторов, которые можно использовать с ключевым словом WHERE, наиболее важные из которых приведены в следующей таблице.
Оператор | Описание | Пример |
---|---|---|
= | Равно | WHERE id = 2 |
> | Больше чем | WHERE age > 18 |
< | Меньше чем | WHERE age < 30 |
>= | Больше или равно | WHERE age >= 18 |
<= | Меньше или равно | WHERE age <= 30 |
LIKE | Совпадение с паттерном | WHERE name LIKE 'Vas' |
IN | Совпадение со списком значений | WHERE city IN ('Moscow', 'Sochi') |
BETWEEN | Находится ли в диапазоне значений | WHERE rating BETWEEN 3 AND 5 |
Оставить комментарий