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



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

SELECT * FROM aircrafts
WHERE model NOT LIKE 'Airbus%'
AND model NOT LIKE 'Boeing%';
aircraft_code |
model
| range
---------------+---------------------+-------
SU9
| Sukhoi SuperJet-100 | 3000
CN1
| Cessna 208 Caravan | 1200
CR2
| Bombardier CRJ-200 | 2700
(3 строки)
Кроме символа «%» в шаблоне может использоваться и символ «_», который соответ-
ствует в точности одному любому символу. В качестве примера найдем в таблице
«Аэропорты» (airports) те из них, которые имеют названия длиной три символа (бук-
вы). С этой целью зададим в качестве шаблона строку, состоящую из трех символов
«_».
SELECT * FROM airports WHERE airport_name LIKE '___';
--[ RECORD 1 ]+-------------------
airport_code | UFA
airport_name | Уфа
city
| Уфа
longitude
| 55.874417
latitude
| 54.557511
timezone
| Asia/Yekaterinburg
Существует ряд операторов для работы с
регулярными выражениями
POSIX. Эти
операторы имеют больше возможностей, чем оператор LIKE. Для того чтобы выбрать,
например, самолеты компаний Airbus и Boeing, можно сделать так:
SELECT * FROM aircrafts WHERE model ~ '^(A|Boe)';
111


aircraft_code |
model
| range
---------------+-----------------+-------
773
| Boeing 777-300 | 11100
763
| Boeing 767-300 | 7900
320
| Airbus A320-200 | 5700
321
| Airbus A321-200 | 5600
319
| Airbus A319-100 | 6700
733
| Boeing 737-300 | 4200
(6 строк)
Оператор ~ ищет совпадение с шаблоном с учетом регистра символов. Символ «^»
в начале регулярного выражения означает, что поиск совпадения будет привязан к
началу строки. Если же требуется проверить наличие такого символа
в составе
стро-
ки, то перед ним нужно поставить символ обратной косой черты «\». Выражение в
круглых скобках означает альтернативный выбор между значениями, разделяемы-
ми символом «|». Поэтому в выборку попадут значения, начинающиеся либо на «A»,
либо на «Boe».
Для инвертирования смысла оператора ~ нужно перед ним добавить знак «!». В каче-
стве примера отыщем модели самолетов, которые не завершаются числом 300.


Достарыңызбен бөлісу:
1   ...   104   105   106   107   108   109   110   111   ...   243




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

    Басты бет