Операторът PostgreSQL LIKE ни помага да съпоставим текстовите стойности с шаблоните, използвайки заместващи символи. Възможно е да се съчетае изразът за търсене с израза на шаблона.
Ако се получи съвпадение, операторът LIKE връща true. С помощта на оператор LIKE е възможно да се използват заместващи символи в клаузата WHERE на операторите SELECT, UPDATE, INSERT или DELETE.
В този урок за PostgreSQL ще научите следното:
- Уайлд карти
- Синтаксис
- Използване на% заместващ символ
- Използване на _ заместващ символ
- Използване на оператор NOT
- Използване на pgAdmin
Уайлд карти
Има само два заместващи символа, които могат да се използват заедно с
- Знак за процента (%)
- Долна черта (_)
Знакът за процент (%) се използва за представяне на нула, един или много знаци или числа.
Символът за долна черта (_) се използва за представяне на един знак или число. Тези символи също могат да се комбинират. Ако операторът LIKE не се използва заедно с тези два знака, той ще действа като оператора на равно.
Синтаксис
Ето синтаксиса на оператора LIKE:
expression LIKE pattern [ ESCAPE 'escape-character' ]
Изразът е израз на символ като колона или поле.
Шаблонът е израз на символи със съвпадение на шаблона.
Екраниращият знак е незадължителен параметър. Той позволява тестване на буквални екземпляри на заместващи знаци като% и _. Ако не е предоставено, \ ще се използва като изходен знак.
Използване на% заместващ символ
Както посочихме по-рано, знакът% съответства на нула, един или повече знаци или числа. Обмислете следната таблица:
Книга:
Искаме книгата, чието име е като „Лир
... ", за да получим този резултат, можем да изпълним следната команда:SELECT *FROMBookWHEREname LIKE 'Lear%';
Това ще върне следното:
Книгата беше намерена.
Нека потърсим книга "от" в нейното име:
SELECT *FROMBookWHEREname LIKE '%by%';
Това ще върне следното:
Използване на _ заместващ символ
Както посочихме по-рано, знакът _ представлява един знак или число. Може да се използва, както е показано по-долу:
SELECT *FROMBookWHEREname LIKE '_earn%';
Това връща следното:
Ето още един пример:
SELECT *FROMBookWHEREname LIKE '%Beginner_';
Това връща следното:
Използване на оператор NOT
Когато операторът LIKE се комбинира с оператора NOT, се връща всеки ред, който не съответства на шаблона за търсене. Например, за да видим книга, чието име не започва с "post", можем да изпълним следната команда:
SELECT *FROMBookWHEREname NOT LIKE 'Post%';
Това връща следното:
Само една книга отговаря на условието за търсене. Нека видим списъка с имена на книги, които нямат дума „Made“:
SELECT *FROMBookWHEREname NOT LIKE '%Made%';
Това връща следното:
3 реда отговарят на условието за търсене.
Използване на pgAdmin
Сега нека видим как действията могат да бъдат изпълнени с помощта на pgAdmin.
Използване на% заместващ символ
Стъпка 1) Влезте във вашия pgAdmin акаунт.
Стъпка 2)
- От лентата за навигация вляво щракнете върху Бази данни.
- Щракнете върху Демо.
Стъпка 3) Въведете заявката в редактора на заявки:
SELECT *FROMBookWHEREname LIKE 'Lear%';
Стъпка 4) Щракнете върху бутона за изпълнение.
Той трябва да върне следното:
За да търсите книга от „по“ в нейното име:
Стъпка 1) Въведете следната команда в редактора на заявки:
SELECT *FROMBookWHEREname LIKE '%by%';
Стъпка 2) Щракнете върху бутона за изпълнение.
Той трябва да върне следното:
Използване на _ заместващ символ
Стъпка 1) Влезте във вашия pgAdmin акаунт.
Стъпка 2)
- От лентата за навигация вляво щракнете върху Бази данни.
- Щракнете върху Демо.
Стъпка 3) Въведете заявката в редактора на заявки:
SELECT *FROMBookWHEREname LIKE '_earn%';
Стъпка 4) Щракнете върху бутона за изпълнение.
Той трябва да върне следното:
Стъпка 5) За да стартирате втория пример:
- Въведете следната заявка в редактора на заявки:
SELECT *FROMBookWHEREname LIKE '%Beginner_';
- Щракнете върху бутона Изпълнение.
Той трябва да върне следното:
Използване на оператор NOT
Стъпка 1) Влезте във вашия pgAdmin акаунт.
Стъпка 2)
- От лентата за навигация вляво щракнете върху Бази данни.
- Щракнете върху Демо.
Стъпка 3) За да видите всички книги, чиито имена не започват с „Публикуване“, въведете заявката в редактора на заявки:
SELECT *FROMBookWHEREname NOT LIKE 'Post%';
Стъпка 4) Щракнете върху бутона за изпълнение.
Той трябва да върне следното:
За да видите списъка с книги, чиито имена нямат думата „Произведено“:
Стъпка 1) Въведете следната заявка в редактора на заявки:
SELECT *FROMBookWHEREname NOT LIKE '%Made%';
Стъпка 2) Щракнете върху бутона за изпълнение.
Той трябва да върне следното:
Резюме:
- PostgreSQL LIKE се използва за съпоставяне на текстови стойности с шаблони, използвайки заместващи символи.
- Клаузата LIKE ни позволява да използваме заместващи символи в оператори SELECT, UPDATE, INSERT или DELETE.
- Заместващият знак% съответства на една или повече стойности. Стойностите могат да бъдат числа или символи.
- Заместващият знак _ съвпада точно с една стойност. Стойността може да бъде символ или число.
- Операторът LIKE може да се комбинира с оператора NOT, за да върне всеки ред, който не съответства на модела на търсене.
Изтеглете базата данни, използвана в този урок