Найти тему
SQLtest

SQL - это просто (часть четвёртая: поиск)

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

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

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

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

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

SELECT name FROM students WHERE score = 5;
Результат запроса SELECT name FROM students WHERE score = 5;
Результат запроса SELECT name FROM students WHERE score = 5;

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

SELECT name FROM students WHERE score < 5;

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

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

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

SELECT * FROM students WHERE course <> 'История';
Результат запроса
Результат запроса

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

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

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

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

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

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