Реклама
Перетяжка, 08.09, Визиолоджи

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

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

Обложка: Поиск данных в таблице. 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 = 'Математика';
		

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

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