Учебно-практическое пособие москва 2017 ббк


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



Pdf көрінісі
бет107/243
Дата21.07.2022
өлшемі3,05 Mb.
#147663
түріУчебно-практическое пособие
1   ...   103   104   105   106   107   108   109   110   ...   243
Байланысты:
Язык SQL. Базовый курс

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


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   ...   103   104   105   106   107   108   109   110   ...   243




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

    Басты бет