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


ALTER TABLE aircrafts ALTER COLUMN speed DROP NOT NULL



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

ALTER TABLE aircrafts ALTER COLUMN speed DROP NOT NULL;
ALTER TABLE aircrafts DROP CONSTRAINT aircrafts_speed_check;
Обратите внимание, что для удаления ограничения CHECK нужно указать его имя,
которое можно выяснить с помощью команды
\d aircrafts
Если мы решим не усложнять нашу базу данных дополнительной информацией, то
можем удалить и столбец. Конечно, вовсе не обязательно предварительно удалять
ограничения, наложенные на этот столбец.
ALTER TABLE aircrafts DROP COLUMN speed;
Еще одна полезная возможность команды ALTER TABLE — изменение типа данных
для какого-либо столбца. Давайте изменим тип данных для атрибутов «Координаты
аэропорта: долгота» (longitude) и «Координаты аэропорта: широта» (latitude) с float
(double precision) на numeric(5, 2). Сделать это можно с помощью одной команды, по-
скольку команда ALTER TABLE поддерживает и выполнение более одного действия за
один раз.
89


Сначала посмотрим, с какой точностью выводятся значения этих атрибутов до изме-
нения типа данных, затем изменим тип данных для двух столбцов, опять выведем
содержимое таблицы на экран и убедимся, что значения были округлены в соответ-
ствии с правилами округления.
SELECT * FROM airports;
ALTER TABLE airports
ALTER COLUMN longitude SET DATA TYPE numeric( 5,2 ),
ALTER COLUMN latitude SET DATA TYPE numeric( 5,2 );
SELECT * FROM airports;
В том случае, когда один тип данных изменяется на другой тип данных в преде-
лах одной группы, например, оба типа — числовые, то проблем обычно не возни-
кает. В только что рассмотренном примере исходный тип данных был float (double
precision), а новый — numeric(5, 2), поэтому операция замены типа прошла автома-
тически.
Однако если исходный и целевой типы данных относятся к разным группам, тогда
потребуются некоторые дополнительные усилия с нашей стороны. В качестве при-
мера рассмотрим следующую ситуацию. Предположим, что по результатам опытной
эксплуатации базы данных «Авиаперевозки» мы пришли к выводу о том, что необхо-
димо создать таблицу, содержащую коды и наименования классов обслуживания. На-
зовем ее «Классы обслуживания» (fare_conditions). В ее состав включим два столбца:
«Код класса обслуживания» и «Наименование класса обслуживания». Имена столбцам
присвоим с учетом принципов формирования имен аналогичных столбцов в других
таблицах, например, в таблице «Аэропорты» (airports).


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




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

    Басты бет