Поиск данных в таблице. SQL - это просто

Аватарка пользователя Slava Rozhnev

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

Это четвёртый мини урок для начинающих изучать SQL. Список всех уроков вы можете найти здесь. На предыдущих уроках мы выучили магические заклинания позволяющие извлекать данные из таблиц в заданном порядке и при необходимости ограничивать выдачу нужным количеством строк.

Сейчас мы выучим ещё одно волшебное слово позволяющее извлекать из таблицы не все данные подряд а только те которые нам нужны. Это слово WHERE (в переводе с английского – где).

При помощи этого слова мы можем выбрать из таблицы только те строки ГДЕ выполняется определённое условие. Например выбрать из нашей таблицы только отличников. По русски этот запрос будет звучать так:

ВЫБЕРИ имена студентов ГДЕ оценка равна пяти.

Переведём на английский (SQL):

			SELECT name FROM students WHERE score = 5;
		
			|------------------|
| name             |
|------------------|
| Сергей Петров    |
| Татьяна Говорова |
		

Давайте напишем запрос для поиска тех у кого оценка ниже пятёрки:

			SELECT name FROM students WHERE score < 5;
		

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

  • =  (равно)
  • < (меньше)
  • > (больше)
  • <> (не равно)

Сравнивать можно не только числа но и любые данные в таблице. Например следующий запрос выберет всех студентов кроме историков:

			SELECT * FROM students WHERE course <> 'История';
		
			|---------------|------------|-------|
| name          | course     | score |
|---------------|------------|-------|
| Сергей Петров | Физика     | 5     |
| Марина Кузина | Математика | 4     |
| Илья Краснов  | Литература | 3     |
| Илья Долгов   | Физика     | 3     |
| Вера Крпикова | География  | 4     |
		

Часто вам может понадобиться выбрать строки отвечающие нескольким условиям одновременно. Для этого нужно запомнить ещё одно слово на английском – AND. Это слово переводится как союз И и может применяться для объединения условий. Например для того чтобы найти отличников по физике нужно в запросе объединить два условия score = 5 и course = ‘Физика’.

			SELECT * FROM students WHERE course = 'Физика' AND score = 5;
		

Если нам достаточно выполнения одного из нескольких условий то их нужно соединить союзом ИЛИ – по английски OR. Например чтобы найти студентов изучающих одну из точных наук (физику или математику) напишем запрос:

			SELECT * FROM students WHERE course = 'Физика' OR course = 'Математика';
		

В сложных случаях может понадобиться комбинация более чем двух условий и тогда нам могут понадобиться скобки для указания приоритета операций (как в математике) но этот материал мы рассмотрим позже.

На этом мы закончим наш микро-урок. Проверьте себя и выполните этот тест а потом переходите к следующему уроку

SQL
125