TGViewer
Сибирский Dev | IT survival Сибирский Dev | IT survival @sibdevjun · 642 subscribers
Post #427 501
#конспект #SQL

Сегодня, наверное, тема о самом популярном, что делаем в SQL 😏

Запросы

Для начала поставим перед собой такую задачу: выбрать все самолеты компании Airbus. В этом нам поможет оператор поиска шаблонов LIKE:

SELECT * FROM aircrafts WHERE model LIKE 'Airbus%';

Знак "%" соответствует любым символам (или их отсутствие). Его можно использовать и в начале маски для поиска.
aircraft_code  |model            | range
---------------+-----------------+-------
320 | Airbus A320-200 | 5700
321 | Airbus A321-200 | 5600
319 | Airbus A319-100 | 6700
(3 строки)


И обратное:
SELECT * FROM aircrafts
WHERE model NOT LIKE 'Airbus%'
AND model NOT LIKE 'Boeing%';


Знак "_" соответствует любому одному знаку.
SELECT airport_name FROM airports WHERE airport_name LIKE '___';

Вернет нам UFA, которое соответствует 3 знакам.

Существует ряд операторов для работы с регулярными выражениями 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 строк)

Оператор ~ ищет совпадение с шаблоном с учетом регистра символов. Символ «^» в начале регулярного выражения означает, что поиск совпадения будет привязан к началу строки.

Ну и так далее, про регулярки тут не буду углубляться ✍️

В качестве замены традиционных операторов сравнения могут использоваться предикаты сравнения, которые ведут себя так же, как и операторы, но имеют другой синтаксис.

SELECT * FROM aircrafts WHERE range BETWEEN 3000 AND 6000;

aircraft_code  |model                | range
---------------+---------------------+-------
SU9 | Sukhoi SuperJet-100 | 3000
320 | Airbus A320-200 | 5700
321 | Airbus A321-200 | 5600
733 | Boeing 737-300 | 4200
(4 строки)


При выборке данных можно проводить вычисления и получать в результирующей таблице вычисляемые столбцы.

SELECT model, range, round( range / 1.609, 2 ) AS miles
FROM aircrafts;

Считаем значения дальности полета в милях и округляем до 2 знаков после запятой:
model         | range | miles
--------------+-------+---------
Boeing 777-300| 11100 | 6898.69
Boeing 767-300| 7900 | 4909.88
...


Есть возможность с помощью условных операторов сделать дополнительный столбец со своими значениями:
SELECT model, range,
CASE WHEN range < 2000 THEN 'Ближнемагистральный'
WHEN range < 5000 THEN 'Среднемагистральный'
ELSE 'Дальнемагистральный'
END AS type
FROM aircrafts
ORDER BY model;

model               | range | type
--------------------+-------+---------------------
Airbus A319-100 | 6700 | Дальнемагистральный
Boeing 737-300 | 4200 | Среднемагистральный
Boeing 767-300 | 7900 | Дальнемагистральный
Boeing 777-300 | 11100 | Дальнемагистральный
Bombardier CRJ-200 | 2700 | Среднемагистральный
(5 строк)


Сегодня, как мне кажется, ничего сложного. Ну или мне уже привычно этим пользоваться 😭
  • 🔥 8
  • 🦄 3
  • 👍 2
More from @sibdevjun
  1. Sep 29, 2026😱 Взломали Пентагон? Я думал это просто мем, а такое реально бывает... Хакеры получили до…
  2. Sep 25, 2026⚠️ Не ждем, а готовимся? Сподвигнет ли это в правильное развитие регионов? Хз Добавит ли р…
  3. Sep 23, 2026Я не пропал, я на своей шкуре проверяю рыночек IT труда 😋
  4. Sep 16, 2026Post #585
  5. Sep 13, 2026Кстати, с днем программиста! Вайбкодеры, тоже подходите, наливайте 🥹
  6. Sep 13, 2026Post #583
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →