Глава 6. Запросы
Для начала поставим перед собой такую задачу: выбрать все самолеты компании
Airbus. В этом нам поможет оператор поиска
шаблонов LIKE:
SELECT * FROM aircrafts WHERE model LIKE 'Airbus%';
Обратите внимание на символ «%», имеющий специальное значение. Он соответ-
ствует любой последовательности символов, т. е. вместо него могут быть подстав-
лены любые символы в любом количестве, а может и не быть подставлено ни одного
символа. В результате будут выбраны строки, в которых значения атрибута model
начинаются с символов «Airbus»:
aircraft_code |
model
| range
---------------+-----------------+-------
320
| Airbus A320-200 | 5700
321
| Airbus A321-200 | 5600
319
| Airbus A319-100 | 6700
(3 строки)
Шаблон в операторе LIKE всегда покрывает
всю анализируемую строку. Поэтому если
требуется отыскать некоторую последовательность символов где-то внутри строки,
то шаблон должен начинаться и завершаться символом «%». Однако в этом случае
нужно учитывать следующие соображения. Если по тому столбцу, к которому при-
меняется оператор LIKE, создан индекс для ускорения доступа к данным, то при
наличии символа «%» в начале шаблона этот индекс использоваться не будет. Из-за
этого может ухудшиться производительность, т. е. запрос будет выполняться медлен-
нее. Индексы подробно рассматриваются в главе 8, а вопросы производительности —
в главе 10.
Конечно, существует и оператор NOT LIKE. Например, если мы захотим узнать, каки-
ми самолетами, кроме машин компаний Airbus и Boeing, располагает наша авиаком-
пания, то придется усложнить условие:
Достарыңызбен бөлісу: