PostgreSQL ALTER Table: ДОБАВИТЬ столбец, переименовать столбец / примеры таблиц

Содержание:

Anonim

Команда ALTER TABLE используется для изменения структуры таблицы PostgreSQL. Это команда, используемая для изменения столбцов таблицы или имени таблицы.

В этом руководстве вы узнаете:

  • Синтаксис
  • Описание
  • Изменение столбца
    • Добавление нового столбца
    • Переименование столбца таблицы
  • Установка значения по умолчанию для столбца
  • Добавление ограничения проверки
  • Переименование таблицы
  • Использование pgAdmin

Синтаксис

Вот синтаксис команды PostgreSQL ALTER TABLE:

ALTER TABLE table-name action;

Параметр table-name - это имя таблицы, которую нужно изменить.

Параметр действия - это действие, которое вам необходимо выполнить, например изменение имени столбца, изменение типа данных столбца и т. Д.

Описание

Команда ALTER TABLE изменяет определение существующей таблицы. Требуются следующие подчиненные формы:

  • ДОБАВИТЬ COLUMN : здесь используется синтаксис, аналогичный команде CREATE TABLE, для добавления нового столбца в таблицу.
  • DROP COLUMN : для удаления столбца таблицы. Ограничения и индексы, наложенные на столбцы, также будут удалены.
  • SET / DROP DEFAULT : используется для удаления значения по умолчанию для столбца. Однако изменение будет применяться только к последующим операторам INSERT.
  • SET / DROP NOT NULL : изменяет, допускает ли столбец значения NULL или нет.
  • УСТАНОВИТЬ СТАТИСТИКУ: для установки цели сбора статистики для каждого столбца для операций АНАЛИЗ.
  • УСТАНОВИТЬ ХРАНИЛИЩЕ : для установки режима хранения столбца. Это определит, где находится столбец, встроенный ли он или в дополнительной таблице.
  • УСТАНОВИТЬ БЕЗ OIDS : используется для удаления старого столбца таблицы.
  • RENAME : для изменения имени таблицы или имени столбца.
  • ADD table_constraint : используется для добавления нового ограничения в таблицу. Он использует тот же синтаксис, что и команда CREATE TABLE.
  • DROP CONSTRAINT : используется для удаления ограничения таблицы.
  • ВЛАДЕЛЕЦ : для изменения владельца таблицы, последовательности, индекса или представления на определенного пользователя.
  • КЛАСТЕР : для маркировки таблицы, которая будет использоваться для выполнения будущих кластерных операций.

Изменение столбца

Столбец можно изменить несколькими способами. Такие изменения могут быть выполнены с помощью команды ALTER TABLE. Давайте обсудим это:

Добавление нового столбца

Чтобы добавить новый столбец в таблицу PostgreSQL, используется команда ALTER TABLE со следующим синтаксисом:

ALTER TABLE table-nameADD new-column-name column-definition;

Имя-таблицы - это имя изменяемой таблицы.

Имя нового столбца - это имя нового столбца, который нужно добавить.

Определение столбца - это тип данных нового столбца.

См. Приведенную ниже таблицу книг:

В таблице есть два столбца: идентификатор и имя. Нам нужно добавить в таблицу новый столбец и дать ему имя author. Просто запустите следующую команду:

ALTER TABLE BookADD author VARCHAR(50);

После выполнения вышеуказанной команды таблица Book теперь выглядит следующим образом:

Новый столбец был успешно добавлен.

Переименование столбца таблицы

Мы можем использовать команду ALTER TABLE, чтобы изменить имя столбца. В этом случае команда используется со следующим синтаксисом:

ALTER TABLE table-nameRENAME COLUMN old-name TO new-name;

Имя-таблицы - это имя таблицы, столбец которой нужно переименовать.

Старое имя - это старое / текущее имя столбца.

Новое имя - это новое имя столбца. Рассмотрим таблицу Book, показанную ниже:

Книга:

Нам нужно имя автора столбца book_author. Вот команда:

ALTER TABLE BookRENAME COLUMN author TO book_author;

После выполнения команды мы можем просмотреть структуру таблицы:

Имя столбца было успешно изменено.

Установка значения по умолчанию для столбца

Мы можем установить значение по умолчанию для столбца, так что даже если вы не укажете значение для этого столбца во время операций INSERT, будет использоваться значение по умолчанию. В этом случае команду ALTER TABLE можно использовать со следующим синтаксисом:

ALTER TABLE table-name ALTER COLUMN column-name [SET DEFAULT value];

Имя-таблицы - это имя таблицы, столбец которой необходимо изменить.

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

Это значение по умолчанию для столбца.

Рассмотрим таблицу книги, приведенную ниже:

Нам нужно установить значение по умолчанию для столбца book_author. Мы можем запустить следующую команду:

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';

Теперь давайте вставим в таблицу строку:

INSERT INTO Book (id, name)VALUES (6, 'PostgreSQL for Beginners');

Обратите внимание, что мы вставили значения только для двух столбцов, id и name. Однако для столбца book_author было использовано значение по умолчанию:

Добавление ограничения проверки

Ограничение проверки помогает в проверке записей, которые вставляются в таблицу. Мы можем сделать это, объединив команду ALTER TABLE с оператором ADD CHECK. Синтаксис:

ALTER TABLE table-name ADD CHECK expression;

Имя-таблицы - это имя изменяемой таблицы.

Выражение - это ограничение, накладываемое на столбец таблицы.

Давайте изменим столбец book_author таблицы Book так, чтобы он принимал только значения Nicholas и Samuel:

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'));

Теперь давайте попробуем вставить значение, отличное от Nicholas или Samuel, в столбец book_author таблицы Book:

INSERT INTO BookVALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');

Оператор вернет следующую ошибку:

Операция вставки завершилась неудачно, потому что мы нарушили проверочное ограничение.

Переименование таблицы

Вот синтаксис команды ALTER TABLE для переименования таблицы:

ALTER TABLE table-nameRENAME TO new-table-name;

Имя-таблицы - это текущее имя таблицы.

New-table-name - это новое имя, которое будет присвоено таблице.

Например, давайте изменим имя таблицы Book на Books:

ALTER TABLE BookRENAME TO Books;

Использование pgAdmin

Теперь посмотрим, как эти действия можно выполнить с помощью pgAdmin.

Добавление нового столбца

Чтобы сделать то же самое с помощью pgAdmin, сделайте следующее:

Шаг 1) Войдите в свою учетную запись pgAdmin.

Шаг 2)

  1. На панели навигации слева нажмите «Базы данных».
  2. Щелкните Демо.

Шаг 3) Введите запрос в редакторе запросов:

ALTER TABLE BookADD author VARCHAR(50);

Шаг 4) Нажмите кнопку «Выполнить».

Шаг 5) Чтобы проверить, был ли добавлен столбец, выполните следующие действия:

  1. Щелкните Базы данных на левой панели навигации.
  2. Разверните Демо.
  3. Разверните схемы.
  4. Разверните Public.
  5. Разверните таблицы.
  6. Раскройте книгу.
  7. Разверните столбцы.

Столбец должен был быть добавлен, как показано ниже:

Переименование столбца таблицы

Чтобы сделать то же самое с помощью pgAdmin, сделайте следующее:

Шаг 1) Войдите в свою учетную запись pgAdmin.

Шаг 2)

  1. На панели навигации слева нажмите «Базы данных».
  2. Щелкните Демо.

Шаг 3) Введите запрос в редакторе запросов:

ALTER TABLE BookRENAME COLUMN author TO book_author;

Шаг 4) Нажмите кнопку «Выполнить».

Шаг 5) Чтобы проверить, было ли изменение успешным, сделайте следующее:

  1. Щелкните Базы данных на левой панели навигации.
  2. Разверните Демо.
  3. Разверните схемы.
  4. Разверните Public.
  5. Разверните таблицы.
  6. Раскройте книгу.
  7. Разверните столбцы.

Теперь столбцы должны выглядеть следующим образом:

Столбец успешно изменен.

Установка значения по умолчанию для столбца

Чтобы сделать то же самое с помощью pgAdmin, сделайте следующее:

Шаг 1) Войдите в свою учетную запись pgAdmin.

Шаг 2)

  1. На панели навигации слева нажмите «Базы данных».
  2. Щелкните Демо.

Шаг 3) Введите запрос в редакторе запросов:

ALTER TABLE Book ALTER COLUMN book_author SET DEFAULT 'Nicholas Samuel';

Шаг 4) Нажмите кнопку «Выполнить».

Шаг 5) Чтобы проверить, выполните следующую команду в редакторе запросов:

INSERT INTO Book (id, name)VALUES (6, 'PostgreSQL for Beginners')

Шаг 6) Теперь мы можем запросить таблицу, чтобы проверить, было ли значение по умолчанию вставлено в столбец book_author:

Добавление ограничения проверки

Чтобы сделать то же самое с помощью pgAdmin, сделайте следующее:

Шаг 1) Войдите в свою учетную запись pgAdmin.

Шаг 2)

  1. На панели навигации слева нажмите «Базы данных».
  2. Щелкните Демо.

Шаг 3) Введите запрос в редакторе запросов:

ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))

Шаг 4) Нажмите кнопку «Выполнить».

Шаг 5) Чтобы проверить это, сделайте следующее:

  1. Введите следующий запрос в редакторе запросов:
    INSERT INTO BookVALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
  2. Щелкните кнопку «Выполнить».

    Он вернет следующее:

Переименование таблицы

Чтобы сделать то же самое с помощью pgAdmin, сделайте следующее:

Шаг 1) Войдите в свою учетную запись pgAdmin.

Шаг 2)

  1. На панели навигации слева нажмите «Базы данных».
  2. Щелкните Демо.

Шаг 3) Введите запрос в редакторе запросов:

ALTER TABLE BookRENAME TO Books;

Шаг 4) Нажмите кнопку «Выполнить».

Шаг 5) Чтобы проверить, была ли таблица переименована, выполните следующие действия:

  1. Щелкните Базы данных на левой панели навигации.
  2. Разверните Демо.
  3. Разверните схемы.
  4. Разверните Public.
  5. Разверните таблицы.

Таблица успешно переименована.

Резюме:

  • Оператор ALTER TABLE используется для изменения структуры таблицы.
  • Команда ALTER TABLE принимает различные формы в зависимости от задачи, которую вам нужно выполнить.
  • Структурой могут быть столбцы таблицы или сама таблица.
  • Мы можем использовать этот оператор, чтобы изменить имя таблицы.
  • Команду ALTER TABLE можно использовать для установки значения столбца по умолчанию.
  • Этот оператор можно использовать для проверки значений, введенных в столбец таблицы.

Загрузите базу данных, используемую в этом руководстве