Часть 6.2: Команда ALTER в SQLite3. Оператор ALTER в SQLite3
Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3. Мы…
Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3. Поиск по шаблону — довольно мощное средство в любом языке программирования, но поиск по шаблону можно еще и выполнять средствами СУБД. Любая реляционная СУБД поддерживает работу SQL оператора LIKE, который осуществляет сравнение строк в базе данных или как еще говорят поиск по шаблону в базе данных. Нужно отметить, что оператор LIKE становится мощным средством поиска строк в базе данных в том случае, когда система управления базами данных поддерживает регулярные выражения, к сожалению, SQLite3 не поддерживает регулярные выражения, из-за чего оператор LIKE и его шаблоны выглядят неполноценно.
Сравнение строк в базах данных: SQL оператор LIKE и SELECT в SQLite. Поиск по шаблону в базах данных при помощи оператора LIKE
В этой записи мы поговорим о том, как работает оператор LIKE и командах SELECT в базах данных под управлением SQLite. Также мы рассмотрим пример SQL запроса, использующего команду SELECT и оператор LIKE и в завершении публикации мы рассмотрим то, с какими SQL командами может работать оператор LIKE помимо SELECT.
Содержание статьи:
Продолжим усложнять простую выборку данных из базы данных SQLite3 при помощи логических операторов, ранее мы рассмотрели связку AND, OR и SELECT, а также комбинацию SELECT и BETWEEN. Теперь давайте сделаем серьезный SQL запрос SELECT с использованием SQL оператора LIKE. Оператор LIKE и SELECT чаще всего используются, когда в программе (на сайте, в мобильном приложении или где-либо еще) нужно реализовать простейшую форму поиска.
Так что LIKE и SELECT можно считать простейшим поисковым алгоритмом, который вы можете реализовать на своём сайте. Оператор LIKE бинарный. В левой части LIKE указывается столбец, по которому будет осуществлен поиск, а в правой части указывается шаблон, по которому будет сделан поиск.
В SQLite3 есть два способа задать шаблон поиска оператору LIKE и затем найти значение в таблице командой SELECT:
При составлении шаблонов поиска никто не запрещает использовать описанные выше конструкции несколько раз, например з_ма% или %м__ра% . Обратите внимание: чтобы успешно делать сравнение строк при выборке данных из базы данных вы должны понимать, как SQLite3 сравнивает значение и что такое аффинированный тип данных, иначе результаты работы SELECT и LIKE иногда будут для вас непредсказуемы, особенно, если учесть, что SQLite – это СУБД с динамической типизацией данных.
Так же нужно учесть, что сравнение строк или поиск по шаблону в базах данных под управлением SQLite3 мы можем реализовать только с использованием клаузулы WHERE, когда мы составляем условие выборки данных или с использованием HAVING, когда мы делаем дополнительную фильтрацию данных после группировки данных (GROUP BY).
В общем, вы уже, наверное, поняли, что оператор LIKE реализует поиск по шаблону и используется он для сравнения строк с заданными шаблонами.
Слова словами, а примеры никто не отменял, давайте реализуем поиск по шаблону в базе данных под управлением SQLite3. И посмотрим, как SQLite сравнивает строки, когда мы используем оператор LIKE и команду SELECT. Для начала создадим таблицу в базе данных при помощи команды CREATE:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
CREATE TABLE table1 ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, pro TEXT NOT NULL, sex TEXT NOT NULL, sal REAL CHECK (sal > 15000) ); |
Таблица создана, у таблицы четыре столбца с ограничениями уровня столбца и ограничением уровня таблицы. У таблицы есть внутренний индекс ROWID, который сгенерировала SQLite и есть индекс, который создали мы при помощи ограничения первичного ключа PRIMARY KEY. В данном случае значения этих индексов совпадают. Все это нужно для обеспечения целостности данных в базе данных.
А теперь добавим строки в таблицу, для этого есть команда INSERT INTO:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
INSERT INTO table1 (name, pro, sex, sal) VALUES (‘Пупкин Матвей’, 'Дантист', ‘м’, 55000.00); INSERT INTO table1 (name, pro, sex, sal) VALUES (‘Cумкин Денис’, 'Юрист', ‘м’, 35040.90); INSERT INTO table1 (name, pro, sex, sal) VALUES (‘Иванов Иван’, 'Младший юрист', ‘м’, 16000.00); INSERT INTO table1 (name, pro, sex, sal) VALUES (‘Маркова Ирина’, 'Бухгалтер', ‘ж’, 31200.10); INSERT INTO table1 (name, pro, sex, sal) VALUES (‘Петрова Алина’, 'Менеджер продаж', ‘ж’, 21200.10); INSERT INTO table1 (name, pro, sex, sal) VALUES (‘Михайлова Любовь’, 'Секретарь', ‘ж’, 16200.10); INSERT INTO table1 (name, pro, sex, sal) VALUES (‘Сидорова Инна’, 'Руководитель отдела обслуживания', ‘ж’, 66200.10); INSERT INTO table1 (name, pro, sex, sal) VALUES (‘Михайлова Любовь’, 'Документооборотчик', ‘ж’, 21200.10); |
Давайте реализуем поиск по шаблону в базе данных SQLite, воспользовавшись оператором LIKE и командой SELECT:
1 2 3 4 5 6 7 8 9 10 11 |
SELECT * FROM table1 WHERE name LIKE '%ин%'; 1|Пупкин Матвей|Дантист|м|55000.0 2|Cумкин Денис|Юрист|м|35040.9 4|Маркова Ирина|Бухгалтер|ж|31200.1 5|Петрова Алина|Менеджер продаж|ж|21200.1 |
Результат сравнения строк вы можете увидеть выше, в данном случае оператор LIKE позволил нам найти все строки, где есть вхождение «…ин…». Поиск по шаблону в SQLite – не самая мощная функция, так как SQLite не поддерживает регулярных выражений.
Мы разобрались с тем, как работает оператор LIKE и команда SELECT в базах данных SQLite, теперь вы сможете самостоятельно осуществлять сравнение строк во время выборки данных и делать поиск по шаблону из базы данных.
Вы можете использовать SQL оператор LIKE не только вместе с SELECT, но и при составление других SQL запросов к базе данных под управлением SQLite3. Мы не берем в расчет команды управления транзакциями и не берем в расчет команды определения доступа к данным по известным причинам.
Оператор LIKE и команды определения данных в базах данных SQLite:
SQL оператор LIKE и команды манипуляции данными в базах данных SQLite3:
Итак, мы разобрались с оператором LIKE и командой SELECT, теперь вы спокойно можете осуществлять поиск по шаблону в своих базах данных под управлением SQLite. Помните, что LIKE сравнивает строки с шаблонами и помните про правила составления шаблонов в базах данных SQLite, тогда у вас не возникнет трудностей с использованием SELECT и LIKE.
Выберете удобный для себя способ, чтобы оставить комментарий