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



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

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 строки)
146


6.1. Дополнительные возможности команды SELECT
Кроме символа «%» в шаблоне может использоваться и символ подчеркивания — «_»,
который соответствует в точности одному любому символу. В качестве примера най-
дем в таблице «Аэропорты» те из них, которые имеют названия длиной три символа
(буквы). С этой целью зададим в качестве шаблона строку, состоящую из трех симво-
лов «_».
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)';
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   ...   112   113   114   115   116   117   118   119   ...   256




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

    Басты бет