Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы новые по БД на экзамен.docx
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
109.83 Кб
Скачать

Использование in

Выдать сведения о блюдах на основе яиц, крупы и овощей

SELECT *

FROM Блюда

WHERE Основа IN (Яйца Крупа Овощи);

Результат: БЛ Блюдо В Основа Выход Труд

-- ---------------- - ------ ----- ----

1 Салат летний З Овощи 200. 3

3 Салат витаминный З Овощи 200. 4

16 Драчена Г Яйца 180. 4

17 Морковь с рисом Г Овощи 260. 3

19 Омлет с луком Г Яйца 200. 5

20 Каша рисовая Г Крупа 210. 4

21 Пудинг рисовый Г Крупа 160. 6

23 Помидоры с луком Г Овощи 260. 4

Рассмотренная форма IN является в действительности просто краткой записью последовательности отдельных сравнений, соединенных операторами OR.

Предыдущее предложение эквивалентно такому:

SELECT *

FROM Блюда

WHERE Основа=Яйца OR Основа=Крупа OR Основа=Овощи;

Можно задать и NOT IN (не принадлежит), а также возможность использования IN (NOT IN) с подзапросом, о чем будет рассказано в главе 3.

Использование LIKE

Выдать перечень салатов

SELECT Блюдо ¦ Результат: Блюдо

FROM Блюда ¦ ----------------

WHERE Блюдо LIKE Салат%; ¦ Салат летний

¦ Салат мясной

¦ Салат витаминный

¦ Салат рыбный

Обычная форма “имя_столбца LIKE текстовая_константа” для столбца текстового типа позволяет отыскать все значения указанного столбца, соответствующие образцу, заданному “текстовой_константой”. Символы этой константы интерпретируются следующим образом:

- символ _ - подчеркивание означает любой одиночный символ,

- символ % - процент обозначает любую последовательность из N символов

(где N может быть нулем),

- все другие символы означают просто сами себя.

Следовательно, в приведенном примере SELECT будет осуществлять выборку записей из таблицы Блюда, для которых значение в столбце Блюдо начинается сочетанием ‘Салат’ и содержит любую последовательность из нуля или более символов, следующих за ‘Салат’. Если бы среди блюд были бы “Луковый салат”, “Фруктовый салат” и т.п., то они не были бы найдены. Для их отыскания надо изменить фразу WHERE:

WHERE Блюдо LIKE ‘%салат%’

или при отсутствии различий между малыми и большими буквами (такую настройку допускают некоторые СУБД):

WHERE Блюдо LIKE ‘%Салат%’ ,

что позволит отыскать все салаты.