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


DROP TABLE aircrafts CASCADE



Pdf көрінісі
бет84/243
Дата21.07.2022
өлшемі3,05 Mb.
#147663
түріУчебно-практическое пособие
1   ...   80   81   82   83   84   85   86   87   ...   243
Байланысты:
Язык SQL. Базовый курс

DROP TABLE aircrafts CASCADE;
Теперь удаление таблицы прошло успешно, при этом из таблиц «Рейсы» (flights) и
«Места» (seats) были удалены внешние ключи, ссылающиеся на удаленную таблицу
aircrafts. Вот это сообщение:
ЗАМЕЧАНИЕ: удаление распространяется на еще 2 объекта
ПОДРОБНОСТИ: удаление распространяется на объект ограничение
flights_aircraft_code_fkey в отношении таблица flights удаление
распространяется на объект ограничение seats_aircraft_code_fkey в
отношении таблица seats
,

,

,

DROP TABLE
Теперь внешних ключей, ссылающихся на таблицу aircrafts в таблицах flights и seats
нет. Можно проверить это с помощью команд
\d flights
\d seats
А что если выполнить команду для удаления той же самой таблицы повторно?
DROP TABLE aircrafts CASCADE;
Ничего непоправимого не случится, просто СУБД выдаст сообщение об ошибке:
ОШИБКА: таблица "aircrafts" не существует
87


Однако бывают ситуации, когда заранее известно, что возможна попытка удаления
несуществующей таблицы. В таких случаях обычно стараются избежать ненужных со-
общений об ошибке отсутствия таблицы. Делается это путем добавления в команду
DROP TABLE фразы IF EXISTS. Например:
DROP TABLE IF EXISTS aircrafts CASCADE;
При использовании этой фразы в случае наличия интересующей нас таблицы выпол-
няется ее удаление, в случае же ее отсутствия выводится замечание, а не ошибка, а
также сообщение об успешном выполнении команды удаления таблицы:
ЗАМЕЧАНИЕ: таблица "aircrafts" не существует, пропускается
DROP TABLE
5.3 Модификация таблиц
Модифицировать таблицы приходится по различным причинам. Например, при
необходимости добавить к какому-нибудь атрибуту ограничение DEFAULT, т. е. зна-
чение «по умолчанию». Конечно, если в таблицах еще нет данных, то их можно просто
пересоздать, внеся изменения в их определения. Но если таблицы содержат большое
количество строк, то пересоздать их не всегда возможно, в этом случае на помощь
приходит команда ALTER TABLE.
Эта команда очень многообразна и логична. Она предусматривает, наверное, все си-
туации, которые могут возникнуть в реальной работе. Например, может возникнуть
необходимость добавить новый столбец в таблицу — команда ALTER TABLE имеет для
этого фразу ADD COLUMN. Возможна и обратная ситуация, когда нужно удалить стол-
бец из таблицы — для этого есть фраза DROP COLUMN. Если нужно добавить ограни-
чение, то помогут фразы ADD CHECK и ADD CONSTRAINT. Если потребовался внеш-
ний ключ, то можно добавить и его.
В качестве объектов для экспериментов будем использовать таблицы базы данных
«Авиаперевозки».
Предположим, что нам понадобилось иметь в базе данных сведения о крейсер-
ской скорости полета всех моделей самолетов, которые эксплуатируются в нашей
авиакомпании. Следовательно, необходимо добавить столбец в таблицу «Самолеты»
(aircrafts). Дадим ему имя speed (наверное, можно предложить и более длинное имя —
cruise_speed). Тип данных для этого столбца выберем integer, добавим ограничение
NOT NULL. Наложим и ограничение на минимальное значение крейсерской скоро-
сти, выраженное в километрах в час: CHECK( speed >= 300 ). В результате сформируем
такую команду для добавления столбца:


Достарыңызбен бөлісу:
1   ...   80   81   82   83   84   85   86   87   ...   243




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

    Басты бет