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

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

Использование метасимволов для фильтрации

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

6. Использование метасимволов для фильтрации в операторе LIKE

Метасимволы – это специальные символы, применяемые для поиска части значения. Например, если надо найти продукты, в названии которых содержаться слова bean bag (боб сумка), то это нельзя сделать простыми операторами сравнения. Здесь нужны метасимволы, которые позволяют составить шаблон поиска. Метасимволы сами по себе являются символами, которые имеют в условии WHERE специальное значение. Чтобы применять метасимволы в условиях поиска, необходимо использовать ключевое слово LIKE. Оно сообщает СУБД, что следующий шаблон для поиска необходимо сравнивать с использованием метасимволов, а не искать точные совпадения. LIKE – это предикат. Поиск с использованием метасимволов может осуществляться только в текстовых полях (строках), нельзя их использовать при поиске с нетекстовым типом данных.

6.1.  Метасимвол ”знак процента” (%)

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

SELECT prod_id, prod_name

FROM Products

WHERE prod_name LIKE ‘Fish%’;

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

prod_id               prod_name

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

BNBG01             Fish bean bag toy

Примечание. 1) В СУБД Access вместо символа % используется символ *.

                        2) В некоторых СУБД поиск может зависеть от регистра.

Метасимволы можно использовать в любом месте шаблона поиска, причем в неограниченном количестве.

В примере шаблон поиска '*bean bag*' означает найти все значения, содержащие bean bag в любом месте названия.

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

FROM Products                                                из таблицы

WHERE prod_name LIKE ‘*bean bag*’;        критерий поиска

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

prod_id               prod_name

BNBG01             Fish bean bag toy

BNBG02             Bird bean bag toy

BNBG03             Rabbit bean bag toy

Многие СУБД, включая MS Access, заполняют содержимое поля пробелами. Например, если столбец рассчитан на 50 символов, а в нем вставлен текст Fish bean bag toy (17 символов), то, чтобы заполнить столбец, в него может быть добавлено еще 33 символа пробел.

Выполним запрос для поиска всех продуктов, которые начинаются на F и заканчиваются на y.

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

FROM Products                                                из таблицы

WHERE prod_name LIKE ‘F*y’;                     критерий поиска

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

prod_id               prod_name

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

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

FROM Products                                                из таблицы

WHERE prod_name LIKE ‘F*y*’;                   критерий поиска

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

 prod_id              prod_name

 BNBG01            Fish bean bag toy

6.2.  Метасимвол ”символ подчеркивания” (_)

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

В MS Access вместо символа подчеркивания _ используется символ ?

Пример использования символа подчеркивания.

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

FROM Products                                                из таблицы

WHERE prod_name LIKE ‘?? inch teddy bear*’;                   критерий поиска

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

 prod_id              prod_name

 BR02                  12 inch teddy bear

 BR03                  18 inch teddy bear

В результате будет выбраны только те строки, которые удовлетворяют шаблону поиска: по двум символам ? было найдено 12 и 18. Продукт 8 inch teddy bear не был найден, так как в шаблоне поиска требуется два совпадения, а не одно.

Для извлечения всех трех товаров можно использовать следующий запрос с шаблоном.

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

FROM Products                                                                        из таблицы

WHERE prod_name LIKE ‘* inch teddy bear*’;                    критерий поиска

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

 prod_id              prod_name

 BR01                  8 inch teddy bear

 BR02                  12 inch teddy bear

 BR03                  18 inch teddy bear

6.3.  Метасимвол ”квадратные скобки” ([ ])

Метасимвол квадратные скобки используется для указания набора символов, каждый из которых должен совпадать со значением, причем точно в указанном месте. Не все СУБД поддерживают этот метасимвол. MS Access поддерживает этот метасимвол.

В примере требуется найти все контакты людей, имена которых начинаются на букву J или M.

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

FROM Customers                                                          из таблицы

WHERE cust_contact LIKE ‘[JM]*’                            критерий поиска

ORDER BY cust_contact;                                            упорядочить по столбцу  

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

 cust_contact

 Jim Jones

 John Smith

 Michelle Green

В шаблоне поиска используются два разных метасимвола. По метасимволам [JM] производится поиск всех контактных лиц, имена которых начинаются на одну из указанных в скобках букв, но при этом учитывается только один символ. По метасимволу *, следующему после [JM], производится поиск любого количества символов после первой буквы.

Можно использовать метасимвол, выполняющий противоположные действия, добавив перед ним символ ^. В MS Access вместо символа ^ используется !

В примере выбрать все имена, которые не начинаются с буквы J или M.

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

FROM Customers                                                          из таблицы

WHERE cust_contact LIKE ‘[!JM]*’                           критерий поиска

ORDER BY cust_contact;                                            упорядочить по столбцу  

Лекция "Протокол состояния связей OSPF" также может быть Вам полезна.

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

 cust_contact

 Denise L. Stephens

 Kim Howard

 

Такого же результата можно достичь, воспользовавшись логическим оператором NOT. Преимуществом символа ^ (!) является более простой синтаксис при выполнении нескольких предложений WHERE.

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