ALTER TABLE в SQL
Мы можем изменить структуру таблицы с помощью команды ALTER TABLE. Мы можем:
Добавить столбец в таблицу
Мы можем добавить столбцы в таблицу с помощью команды ALTER TABLE с оператором ADD. Например:
ALTER TABLE Customers
ADD phone varchar ( 10 ) ;
Здесь мы добавили столбец с именем phone в таблицу Customers.
Добавить несколько столбцов в таблицу
Мы также можем добавить сразу несколько столбцов в таблицу. Например:
ALTER TABLE Customers
ADD phone varchar ( 10 ) , age int ;
Здесь мы добавили столбцы phone и age в таблицу Customers.
Переименовать столбец в таблице
Мы можем переименовать столбцы в таблице с помощью команды ALTER TABLE с оператором RENAME COLUMN. Например:
ALTER TABLE Customers
RENAME COLUMN customer_id TO c_id ;
Здесь мы изменили имя столбца customer_id на c_id в таблице Customers.
Изменить столбец в таблице
Мы также можем изменить тип данных столбца с помощью команды ALTER TABLE с оператором MODIFY или ALTER COLUMN. Например:
SQL Server
ALTER TABLE ОПЕРАТОР
В этом учебном пособии вы узнаете, как использовать в Oracle/PLSQL оператор ALTER TABLE, чтобы добавить столбец, изменить столбец, удалить столбец, переименовать столбец или переименовать таблицу (с синтаксисом, примерами и практическими упражнениями).
Описание
Оператор Oracle/PLSQL ALTER TABLE используется для добавления, изменения или удаления столбца в таблице. Оператор Oracle/PLSQL ALTER TABLE также используется для переименования таблиц.
Добавить столбец в таблицу
Синтаксис
Синтаксис ALTER TABLE для добавления столбца в таблицу Oracle:
ALTER TABLE table_name
ADD column_name column-definition;
Пример
Рассмотрим на примере, как добавить столбец в таблицу Oracle с помощью оператора ALTER TABLE.
Например:
Как изменить тип столбца в sql
Если вы создали таблицы, а затем поняли, что допустили ошибку, или изменились требования вашего приложения, вы можете удалить её и создать заново. Но это будет неудобно, если таблица уже заполнена данными, или если на неё ссылаются другие объекты базы данных (например, по внешнему ключу). Поэтому PostgreSQL предоставляет набор команд для модификации таблиц. Заметьте, что это по сути отличается от изменения данных, содержащихся в таблице: здесь мы обсуждаем модификацию определения, или структуры, таблицы.
Изменять значения по умолчанию
Изменять типы столбцов
Все эти действия выполняются с помощью команды ALTER TABLE ; подробнее о ней вы можете узнать в её справке.
5.5.1. Добавление столбца
Добавить столбец вы можете так:
ALTER TABLE products ADD COLUMN description text;
Новый столбец заполняется заданным для него значением по умолчанию (или значением NULL, если вы не добавите указание DEFAULT ).
При этом вы можете сразу определить ограничения столбца, используя обычный синтаксис:
ALTER TABLE products ADD COLUMN description text CHECK (description <> '');
На самом деле здесь можно использовать все конструкции, допустимые в определении столбца в команде CREATE TABLE . Помните однако, что значение по умолчанию должно удовлетворять данным ограничениям, чтобы операция ADD выполнилась успешно. Вы также можете сначала заполнить столбец правильно, а затем добавить ограничения (см. ниже).
Подсказка
Добавление столбца со значением по умолчанию приводит к изменению всех строк таблицы (в них будет сохранено новое значение). Однако если значение по умолчанию не указано, PostgreSQL может обойтись без физического изменения. Поэтому, если вы планируете заполнить столбец в основном не значениями по умолчанию, лучше будет добавить столбец без значения по умолчанию, затем вставить требуемые значения с помощью UPDATE , а потом определить значение по умолчанию, как описано ниже.
5.5.2. Удаление столбца
Удалить столбец можно так:
ALTER TABLE products DROP COLUMN description;
Данные, которые были в этом столбце, исчезают. Вместе со столбцом удаляются и включающие его ограничения таблицы. Однако если на столбец ссылается ограничение внешнего ключа другой таблицы, PostgreSQL не удалит это ограничение неявно. Разрешить удаление всех зависящих от этого столбца объектов можно, добавив указание CASCADE :
ALTER TABLE products DROP COLUMN description CASCADE;
Общий механизм, стоящий за этим, описывается в Разделе 5.13.
5.5.3. Добавление ограничения
Для добавления ограничения используется синтаксис ограничения таблицы. Например:
ALTER TABLE products ADD CHECK (name <> ''); ALTER TABLE products ADD CONSTRAINT some_name UNIQUE (product_no); ALTER TABLE products ADD FOREIGN KEY (product_group_id) REFERENCES product_groups;
Чтобы добавить ограничение NOT NULL, которое нельзя записать в виде ограничения таблицы, используйте такой синтаксис:
ALTER TABLE products ALTER COLUMN product_no SET NOT NULL;
Ограничение проходит проверку автоматически и будет добавлено, только если ему удовлетворяют данные таблицы.
5.5.4. Удаление ограничения
Для удаления ограничения вы должны знать его имя. Если вы не присваивали ему имя, это неявно сделала система, и вы должны выяснить его. Здесь может быть полезна команда psql \d имя_таблицы (или другие программы, показывающие подробную информацию о таблицах). Зная имя, вы можете использовать команду:
ALTER TABLE products DROP CONSTRAINT some_name;
(Если вы имеете дело с именем ограничения вида $2 , не забудьте заключить его в кавычки, чтобы это был допустимый идентификатор.)
Как и при удалении столбца, если вы хотите удалить ограничение с зависимыми объектами, добавьте указание CASCADE . Примером такой зависимости может быть ограничение внешнего ключа, связанное со столбцами ограничения первичного ключа.
Так можно удалить ограничения любых типов, кроме NOT NULL. Чтобы удалить ограничение NOT NULL, используйте команду:
ALTER TABLE products ALTER COLUMN product_no DROP NOT NULL;
(Вспомните, что у ограничений NOT NULL нет имён.)
5.5.5. Изменение значения по умолчанию
Назначить столбцу новое значение по умолчанию можно так:
ALTER TABLE products ALTER COLUMN price SET DEFAULT 7.77;
Заметьте, что это никак не влияет на существующие строки таблицы, а просто задаёт значение по умолчанию для последующих команд INSERT .
Чтобы удалить значение по умолчанию, выполните:
ALTER TABLE products ALTER COLUMN price DROP DEFAULT;
При этом по сути значению по умолчанию просто присваивается NULL. Как следствие, ошибки не будет, если вы попытаетесь удалить значение по умолчанию, не определённое явно, так как неявно оно существует и равно NULL.
5.5.6. Изменение типа данных столбца
Чтобы преобразовать столбец в другой тип данных, используйте команду:
ALTER TABLE products ALTER COLUMN price TYPE numeric(10,2);
Она будет успешна, только если все существующие значения в столбце могут быть неявно приведены к новому типу. Если требуется более сложное преобразование, вы можете добавить указание USING , определяющее, как получить новые значения из старых.
PostgreSQL попытается также преобразовать к новому типу значение столбца по умолчанию (если оно определено) и все связанные с этим столбцом ограничения. Но преобразование может оказаться неправильным, и тогда вы получите неожиданные результаты. Поэтому обычно лучше удалить все ограничения столбца, перед тем как менять его тип, а затем воссоздать модифицированные должным образом ограничения.
5.5.7. Переименование столбца
Чтобы переименовать столбец, выполните:
ALTER TABLE products RENAME COLUMN product_no TO product_number;
5.5.8. Переименование таблицы
Таблицу можно переименовать так:
ALTER TABLE products RENAME TO items;
| Пред. | Наверх | След. |
| 5.4. Системные столбцы | Начало | 5.6. Права |
Изменение столбца
Определение столбца можно изменить, используя инструкцию ALTER TABLE без предло- жения MODIFY . Изменение столбца может включать изменения типа данных, размера и стандартного значения.
- Можно увеличить ширину или точность числового столбца.
- Можно увеличить ширину символьных столбцов.
- Можно уменьшить ширину столбца в следующих случаях:
- столбец содержит только пустые значения;
- в таблице нет строк;
- уменьшенная ширина столбца не меньше существующих значений в этом столбце;
- Если столбец содержит только пустые значения, можно изменить тип данных. Исключением из этого правила являются преобразования CHAR в VARCHAR2 , которые могут выполняться с данными в столбцах.
- Можно преобразовать столбец CHAR в тип данных VARCHAR2 или преобразовать столбец VARCHAR2 в тип данных CHAR , только если столбец содержит пустые значения или если не изменяется размер.
- Изменение для столбца стандартного значения влияет только на последующие операции вставки в таблицу.
Далее: Порядок использования представлений словаря
Post Views: 984
Похожие записи
Предложение WITH
Используя предложение WITH, можно определить блок запроса до его применения в запросе. Предложение WITH (формально называется subquery_factoring_clause) позволяет многократно использовать один и тот же блок запроса в инструкции SELECT, когда она встречается более одного раза в сложном запросе. Это особенно. Читать далее
Оператор WITH в sql
Оператор WITH в SQL — это чрезвычайно полезный инструмент для создания временных таблиц и использования их внутри других запросов. Это позволяет упростить код и улучшить производительность запросов. Оператор WITH (также известный как Common Table Expression) используется для создания временных таблиц. Читать далее
Выполнение запросов внешних таблиц
Внешняя таблица не описывает никаких данных, которые хранятся в базе данных. Внешняя таблица не описывает порядок хранения данных во внешнем источнике. Вместо этого она описывает, как уровень внешней таблицы должен представлять данные для сервера. За преобразования, которые требуется выполнять над. Читать далее
Инструкция FLASHBACK TABLE
Позволяет восстанавливать таблицы до состояния на заданный момент времени с помощью одной инструкции. Восстанавливает табличные данные вместе со связанными индексами и ограничениями. Позволяет возвращать таблицу и ее содержимое в состояние, существовавшее на определенный момент времени, или к изменению системы, определенному. Читать далее
Создание внешней таблицы
Внешние таблицы создаются с помощью предложения ORGANIZATION EXTERNAL инструкции CREATE TABLE. В действительности таблица не создается. Точнее, создаются метаданные в словаре данных, который можно использовать для доступа к внешним данным. Предложение ORGANIZATION применяется для указания порядка, в котором сохраняются строки. Читать далее
Инструкция DROP TABLE … PURGE
В базе данных Oracle имеется функция для удаления таблиц. При удалении таблицы база данных не сразу освобождает пространство, занимаемое таблицей. Точнее, база данных переименовывает таблицу и помещает ее в корзину, где таблица позже может быть восстановлена с помощью инструкции FLASHBACK. Читать далее
Создание внешней таблицы с помощью драйвера доступа ORACLE_LOADER
Рассмотрим, как создаются внешние таблицы посредством драйвера доступа ORACLE_LOADER. Предположим, что существует текстовый файл, в котором имеются записи в следующем формате: 10,jones,11-Dec-1934 20,smith,12-Jun-1972 Записи разделяются символом новой строки, и все поля заканчиваются запятой ( , ). Имя файла: /emp_dir/emp.dat. Читать далее
Пример создание внешней таблицы с помощью драйвера доступа ORACLE_DATAPUMP
Используя драйвер доступа ORACLE_DATAPUMP, можно выполнять с внешними таблицами операции выгрузки и повторной загрузки. Примечание. В контексте внешних таблиц загрузка данных обозначает операцию чтения данных из внешней таблицы и их загрузку в таблицу базы данных. Под выгрузкой данных понимается чтение. Читать далее
Установка Предпочтений SQL Developer
Можно настроить много аспектов интерфейса и среды SQL Developer, изменяя предпочтения SQL Developer согласно Вашим потребностям. Чтобы изменить предпочтения SQL Developer, выберите Tools, а затем Preferences. Настройте интерфейс SQL Developer и среду. В меню Tools выберите Preferences. Предпочтения группируется в. Читать далее
Резюме по SQL Developer
В этой рубрике было рассмотрено использование SQL Developer, чтобы выполнять следующие задачи: Просматривать, создавать и редактировать объекты базы данных Выполнять SQL-операторы и сценарии на Рабочем листе SQL Создавать и сохранять пользовательские отчеты SQL Developer является бесплатным графическим инструментом, позволяющим упростить. Читать далее
