Учебное пособие Санкт-Петербург «бхв-петербург»


 Дополнительные возможности команды SELECT



Pdf көрінісі
бет115/256
Дата18.11.2022
өлшемі1.88 Mb.
#465124
түріУчебное пособие
1   ...   111   112   113   114   115   116   117   118   ...   256
sql osnovi yazika

6.1. Дополнительные возможности команды SELECT
Основой для экспериментов в этом разделе будут самые маленькие (по числу строк)
таблицы базы данных «Авиаперевозки»: «Самолеты» (aircrafts) и «Аэропорты»
(airports).
Прежде чем перейти к конкретным запросам, просто просмотрите содержимое этих
двух таблиц. Таблица «Самолеты» совсем маленькая, а таблица «Аэропорты» содер-
жит чуть больше ста строк. Для ее просмотра можно включить расширенный режим
вывода данных \x.
SELECT * FROM aircrafts;
SELECT * FROM airports;
Начнем с различных условий отбора строк в предложении WHERE. Эти условия мо-
гут конструироваться с использованием следующих операторов сравнения: =, < >,
>
, > =, <, < =. В предыдущих главах мы уже использовали ряд таких операторов,
поэтому сейчас рассмотрим некоторые другие способы осуществления отбора строк.
145


Глава 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, располагает наша авиаком-
пания, то придется усложнить условие:


Достарыңызбен бөлісу:
1   ...   111   112   113   114   115   116   117   118   ...   256




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет