Популярные услуги

Все письменные КМ под ключ за 3 суток! (КМ-6 + КМ-7 + КМ-8 + КМ-9 + КМ-10)
КМ-6. Динамические массивы. Семинар - выполню любой вариант!
КМ-2. Разработка простейших консольных программ с использованием ООП + КМ-4. Более сложные элементы ООП - под ключ!
Любая задача на C/C++
Одно любое задание в mYsql
Сделаю ваше задание: Лабораторная работа на Pascal / Lazarus
Любой тест по базам данных максимально быстро на хорошую оценку - или верну деньги!
Любой реферат по объектно-ориентированному программированию (ООП)
Оба семинара по программированию под ключ! КМ-2. Разработка циклических алгоритмов + КМ-3. Функции и многофайловые программы в Си
Повышение уникальности твоей работе

Расширенная фильтрация данных

2021-03-09СтудИзба

5. Расширенная фильтрация данных

В SQL для увеличения уровня контроля над фильтром можно использовать несколько предложений в WHERE. Эти предложения допустимо использовать двумя способами: в виде предложений AND или OR.

5.1.  Использование ключевого слова AND

В примере извлекается название продукции и цена для всех товаров, изготовленных производителем DLL01, с ценой $4 и выше. Предложение WHERE в операторе SELECT состоит из двух предложений, объединенных ключевым словом AND. Возвращаются товары, которые удовлетворяют все перечисленным предложениям.

SELECT prod_id, prod_price, prod_name                               выбор столбцов

FROM Products                                                                         из таблицы

WHERE vend_id = ‘DLL01’ AND prod_price <=4;              критерий поиска

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

prod_id               prod_price       prod_name

Рекомендуемые материалы

BNBG01             3,49р.              Fish bean bag toy

BNBG02             3,49р.              Bird bean bag toy

BNBG03             3,49р.              Rabbit bean bag toy

5.2.  Использование ключевого слова OR

В примере выбираются названия и их цены для всех продуктов, изготовленных одним из указанных производителей. Ключевое слово OR указывает СУБД использовать какое-то предложение, а не сразу два.

SELECT prod_name, prod_price                                              выбор столбцов

FROM Products                                                                        из таблицы

WHERE vend_id = ‘DLL01’ OR vend_id = ’BRS01’;           критерий поиска

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

prod_name          prod_price

Fish bean bag toy            3,49р.

Bird bean bag toy           3,49р.

Rabbit bean bag toy        3,49р.

8 inch teddy bear                        5,99р.

12 inch teddy bear          8,99р.

18 inch teddy bear         11,99р.

Raggedy Ann                 4,99р.

5.3.  Порядок обработки предложений с ключевыми словами AND и OR

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

В примере необходимо вывести список всех изготовленных производителями DLL01 и BRS01 товаров, цена которых $10 и выше.

SELECT prod_name, prod_price                                              выбор столбцов

FROM Products                                                                        из таблицы

WHERE vend_id = ‘DLL01’ OR vend_id = ’BRS01’                       критерий поиска

                AND prod_price >=10;

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

prod_name          prod_price

Fish bean bag toy            3,49р.

Bird bean bag toy           3,49р.

Rabbit bean bag toy        3,49р.

18 inch teddy bear         11,99р.

Raggedy Ann                 4,99р.

В четырех строках значение цены ниже $10. Это объясняется тем, что вначале обрабатываются операторы AND, а потом уже OR. Сначала выбираются все продукты, которые стоят $10 и больше, изготовленные производителем BRS01 и добавляются все продукты , изготовленные производителем DLL01 независимо от их цены. Это происходит из за того, что приоритет AND выше.

Для правильного получения результата необходимо использовать скобки.

SELECT prod_name, prod_price                                              выбор столбцов

FROM Products                                                                        из таблицы

WHERE (vend_id = ‘DLL01’ OR vend_id = ’BRS01’)         критерий поиска

                AND prod_price >=10;

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

prod_name          prod_price

18 inch teddy bear         11,99р.

5.4.  Использование  ключевого слова IN

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

В примере осуществляется выборка всех товаров, изготовленных производителями DLL01 и BRS01.

SELECT prod_name, prod_price                                              выбор столбцов

FROM Products                                                                        из таблицы

WHERE vend_id IN (‘DLL01’, ’BRS01’)                              критерий поиска

ORDER BY prod_name;

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

prod_name          prod_price

12 inch teddy bear          8,99р.

18 inch teddy bear         11,99р.

8 inch teddy bear                        5,99р.

Bird bean bag toy           3,49р.

Fish bean bag toy            3,49р.

Rabbit bean bag toy        3,49р.

Raggedy Ann                 4,99р.

Ключевое слово IN выполняет ту же функцию, что и OR. Выполним следующий запрос. Он даст тот же результат.

SELECT prod_name, prod_price                                              выбор столбцов

FROM Products                                                                        из таблицы

WHERE vend_id = ‘DLL01’ OR vend_id =  ’BRS01’                      критерий поиска

ORDER BY prod_name;

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

prod_name          prod_price

12 inch teddy bear          8,99р.

18 inch teddy bear         11,99р.

8 inch teddy bear                        5,99р.

Bird bean bag toy           3,49р.

Fish bean bag toy            3,49р.

Rabbit bean bag toy        3,49р.

Raggedy Ann                 4,99р.

 

Преимущества ключевого слова IN:

1) При работе с длинными списками необходимых значений синтаксис логического оператора IN легче читать.

2) При использовании ключевого слова IN легче управлять порядком обработки, та как используется меньшее количество операторов.

3) Логические операторы IN почти всегда быстрее обрабатываются, чем списки логических операторов OR.

4) Самое большое преимущество логического оператора IN в том, что в данном операторе может содержаться еще одна инструкция SELECT, а это позволяет создавать очень динамичные предложения WHERE, использовать подзапросы. 

5.5.  Использование  ключевого слова NOT

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

В примере извлекается список продуктов, изготовленных всеми производителями, кроме DLL01.

SELECT prod_name                                          выбор столбцов

FROM Products                                                 из таблицы

WHERE NOT vend_id = ‘DLL01’                  критерий поиска

ORDER BY prod_name;

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

prod_name         

12 inch teddy bear

18 inch teddy bear

8 inch teddy bear

King doll

Queen doll

Этот запрос можно выполнить и в следующем виде.

SELECT prod_name                                          выбор столбцов

FROM Products                                                 из таблицы

WHERE vend_id <> ‘DLL01’                         критерий поиска

ORDER BY prod_name;

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

prod_name         

12 inch teddy bear

Вместе с этой лекцией читают "Файловая система ext2".

18 inch teddy bear

8 inch teddy bear

King doll

Queen doll

Зачем же нужен оператор NOT, если можно выполнять и без него. Он полезен в более сложных предложениях. Например, для нахождения всех строк, которые не совпадают со списком критериев, можно использовать логический оператор NOT в паре с ключевым словом IN.

Примечание. В некоторых СУБД форма оператора NOT может отличаться. Например, СУБД MySQL в виде NOT не поддерживается. NOT используется только для отрицания вхождений EXISTS (т.е. как NOT EXISTS).

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5160
Авторов
на СтудИзбе
439
Средний доход
с одного платного файла
Обучение Подробнее