Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Запросы на выборку из одной таблицы. Условие в запросе. Логические выражения раздела WHERE

Проекция и объединение

Существует четыре основных операции над таблицами баз данных, которые могут выполняться при выборе данных из базы:

  • Проекция;
  • Ограничение;
  • Объединение;
  • Подмножество декартова произведения.

Все эти операции задаются различными инструкциями команды SELECT. Для запросов к одной таблице актуальны две операции: проекция и ограничение.

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

SELECT поле1, поле2,…. FROM имя_таблицы;

После инструкции SELECT перечисляется список полей, которые должны быть видны. Поля, которых нет в этом списке, скрываются. Если нужно показать все поля таблицы, то можно воспользоваться упрощенным синтаксисом:

SELECT * FROM имя_таблицы;

Операция ограничения выполняется, когда нужно видеть не все записи таблицы, а лишь те, которые удовлетворяют определенным критериям. Критерии в языке SQL задаются логическими выражениями.

Определение 1

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

Большинство логических выражений записываются при помощи знаков сравнения. Для выполнения операции ограничения необходимо использовать инструкцию WHERE в команде SELECT:

SELECT поле1, поле2,… FROM имя_таблицы WHERE логическое_выражение;

Пример 1

Например, необходимо выбрать из таблицы abiturient всех абитуриентов, чей возраст больше 18 лет:

SELECT * FROM abiturient WHERE age>18;

Сложные логические выражения

В примере 1 критерий выбора был очень простым – всего одно логическое выражение. Но часто бывает необходимо осуществить выбор по нескольким логическим выражениям. В этом случае речь идет о сложном логическом выражении, которое состоит из нескольких простых логических выражений. Существует всего два логических оператора, которыми можно соединять между собой простые логические выражения для получения сложных:

«Запросы на выборку из одной таблицы. Условие в запросе. Логические выражения раздела WHERE» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ
  • Логический оператор AND;
  • Логический оператор OR.
Определение 2

Пусть А, B, С - логические выражения. При чем A=B AND C. Это значит, что выражение A будет истинным тогда и только тогда, когда одновременно истины B и С.

Пример 2

Чтобы выбрать из таблицы abiturient всех абитуриентов мужского пола старше 18 лет, нужно построить запрос:

SELECT * FROM abiturient WHERE age>18 AND gender=’male’;

Определение 3

Пусть A, B,C - логические выражения. При чем A = B OR C. Это значит, что выражение A будет истинным , тогда и только тогда, когда истино хотя-бы одно из выражений B или С.

Пример 3

Чтобы выбрать из таблицы abiturient всех абитуриентов из Москвы и Ярославля, нужно построить запрос:

SELECT * FROM abiturient WHERE city=’Москва’ OR city=’Ярославль’;

При построении логических выражений можно комбинировать логические операторы. При этом следует помнить, что у оператора AND более высокий приоритет перед оператором OR. Иногда AND называют логическим умножением, а OR – логическим сложением. При составлении сложных логических выражений эти операторы ведут себя приблизительно так же, как и арифметические умножение и сложение. Если нужно повысить приоритет оператора OR, то следует поставить круглые скобки.

Пример 4

Если нужно выбрать всех абитуриентов старше 18 лет, которые прибыли из Москвы и Ярославля, то запрос будет таким:

SELECT * FROM abitueient WHERE age>18 AND (city=’Москва’ OR city=’Ярославль’);

Тот же запрос можно представить в другой форме, раскрыв скобки:

SELECT * FROM abitueient WHERE age>18 AND city=’Москва’ OR age>18 AND city=’Ярославль’;

Дополнительные способы построения логических выражений

Кроме операторов сравнения в языке SQL есть еще ряд способов построения логических выражений. Оператор BETWEEN… AND позволяет выбрать значения между двумя заданными.

Пример 5

Чтобы выбрать абитуриентов в возрасте от 19 до 21 можно построить запрос с использованием AND:

SELECT * FROM abitueient WHERE age>=19 AND age

А можно получить тот же результат с помощью оператора BETWEEN .. AND:

SELECT * FROM abiturient WHERE age BETWEET 19 AND 21;

Еще одним удобным способом поиска является оператор LIKE. Он позволяет задавать критерии отбора для текстовых полей, по части слова или по шаблону.

Пример 6

Технический секретарь приемной комиссии должен найти в базе данных абитуриента по фамилии. Он помнит, что фамилия похожа на ‘Иванов', но все-таки не Иванов. Вспомнить фамилию точно секретарь не может. В этом случае ему поможет запрос:

SELECT * FROM abiturient WHERE fio LIKE 'Ива%';

В результате будут найдены все, чья фамилия начинается с 'Ива'. Это могут быть Иванов, Иванищев, Иванский и т.д. В этом списке секретарь быстрее найдет нужного абитуриента.

Выражение, стоящее после оператора LIKE называется поисковым шаблоном. Символ '%' в шаблоне является служебным. Он показывает, что после Ива может находиться любое количество любых символов. Иногда полезно пользоваться служебным символом ‘_’ . Он указывает на один любой символ. Если в поисковом шаблоне нужно использовать символ '%' или '_ ' не в качество служебных, а непосредственно для поиска, то их нужно экранировать слэшем: '\%', '\_'.

Дата написания статьи: 08.08.2016
Получи помощь с рефератом от ИИ-шки
ИИ ответит за 2 минуты
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot