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



Pdf көрінісі
бет172/243
Дата21.07.2022
өлшемі3,05 Mb.
#147663
түріУчебно-практическое пособие
1   ...   168   169   170   171   172   173   174   175   ...   243
Байланысты:
Язык SQL. Базовый курс

WITH min_ranges AS
( SELECT aircraft_code,
rank() OVER (
PARTITION BY left( model, 6 )
ORDER BY range
) AS rank
176


FROM aircrafts_tmp
WHERE model ~ '^Airbus' OR model ~ '^Boeing'
)
DELETE FROM aircrafts_tmp a
USING min_ranges mr
WHERE a.aircraft_code = mr.aircraft_code
AND mr.rank = 1
RETURNING *;
Мы включили в команду DELETE предложение RETURNING *, чтобы показать, как вы-
глядят комбинированные строки, сформированные с помощью предложения USING.
Конечно, удаляются не комбинированные строки, а только оригинальные строки из
таблицы aircrafts_tmp.
aircraft_code |
model
| range | aircraft_code | rank
---------------+-----------------+-------+---------------+------
321
| Airbus A321-200 | 5600 | 321
|
1
733
| Boeing 737-300 | 4200 | 733
|
1
(2 строки)
В заключение этого раздела упомянем еще команду TRUNCATE, которая позволяет
быстро удалить все строки из таблицы. Следующие две команды позволяют удалить
все строки из таблицы aircrafts_tmp:
DELETE FROM aircrafts_tmp;
TRUNCATE aircrafts_tmp;
Однако команда TRUNCATE работает быстрее.
Контрольные вопросы и задания
1. Добавьте в определение таблицы aircrafts_log значение по умолчанию
CURRENT_TIMESTAMP и соответствующим образом измените команды INSERT,
приведенные в тексте главы.
2. В предложении RETURNING можно указывать не только символ «*», означаю-
щий выбор всех столбцов таблицы, но также и более сложные выражения, сфор-
мированные на основе этих строк. В тексте главы мы копировали содержимое
таблицы «Самолеты» (aircrafts) в таблицу aircrafts_tmp. В том запросе в пред-
ложении RETURNING мы использовали именно «*». Однако возможен и другой
вариант запроса:


Достарыңызбен бөлісу:
1   ...   168   169   170   171   172   173   174   175   ...   243




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

    Басты бет