Таблица ALTER PostgreSQL: добавление столбца, переименование столбца/таблицы, примеры

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

Синтаксис

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

ALTER TABLE table-name action;

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

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

Описание

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

  • ДОБАВИТЬ КОЛОНКУ: используется синтаксис, аналогичный команде CREATE TABLE, для добавления нового столбца в таблицу.
  • УДАЛИТЬ КОЛОНКУ: для удаления столбца таблицы. Ограничения и индексы, наложенные на столбцы, также будут удалены.
  • УСТАНОВИТЬ/УДАЛИТЬ ПО УМОЛЧАНИЮ: используется для удаления значения по умолчанию для столбца. Однако изменение будет применяться только к последующим ВСТАВИТЬ операторы.
  • УСТАНОВИТЬ/УДАЛИТЬ НЕ НУЛЬ: Изменяет, разрешает ли столбец значения NULL или нет.
  • УСТАНОВИТЬ СТАТИСТИКУ: Для установки цели сбора статистики для каждого столбца для операций АНАЛИЗ.
  • ХРАНЕНИЕ КОМПЛЕКТА: Для установки режима хранения столбца. Это определит, где будет храниться столбец: в строке или в дополнительной таблице.
  • КОМПЛЕКТ БЕЗ ОИДОВ: используется для удаления старого столбца таблицы.
  • ПЕРЕИМЕНОВАТЬ: для изменения имени таблицы или имени столбца.
  • ДОБАВИТЬ table_constraint: используется для добавления нового ограничения в таблицу. Он использует тот же синтаксис, что и СОЗДАТЬ ТАБЛИЦУ команда.
  • ОГРАНИЧЕНИЕ ОТКАЗА: используется для удаления ограничения таблицы.
  • ВЛАДЕЛЕЦ: для изменения владельца таблицы, последовательности, индекса или представления определенному пользователю.
  • Кластер: для маркировки таблицы, которая будет использоваться для выполнения будущих операций кластера.

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

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

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

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

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

Имя таблицы — это имя таблицы, которую необходимо изменить.

Имя нового столбца — это имя нового добавляемого столбца.

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

См. таблицу книги, показанную ниже:

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

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

ALTER TABLE Book
  ADD author VARCHAR(50);

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

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

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

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

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

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

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

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

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

Книга:

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

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

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

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

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

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

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

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

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

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

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

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

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

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

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

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 так, чтобы он принимал только значения Николас и Сэмюэл:

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

Теперь давайте попробуем вставить значение, отличное от Николаса или Сэмюэля, в столбец book_author таблицы Book:

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

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

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

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

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

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

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

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

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

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

ALTER TABLE Book
  RENAME TO Books;

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

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

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

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

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

Шаг 2)

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

Добавление нового столбца с помощью pgAdmin

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

ALTER TABLE Book
  ADD author VARCHAR(50);

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

Добавление нового столбца с помощью pgAdmin

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

  1. Нажмите «Базы данных» на панели навигации слева.
  2. Развернуть Демо.
  3. Разверните схемы.
  4. Развернуть Публикация.
  5. Разверните таблицы.
  6. Развернуть книгу.
  7. Развернуть столбцы.

Добавление нового столбца с помощью pgAdmin

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

Добавление нового столбца с помощью pgAdmin

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

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

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

Шаг 2)

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

Переименование столбца таблицы с помощью pgAdmin

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

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

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

Переименование столбца таблицы с помощью pgAdmin

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

  1. Нажмите «Базы данных» на панели навигации слева.
  2. Развернуть Демо.
  3. Разверните схемы.
  4. Развернуть Публикация.
  5. Разверните таблицы.
  6. Развернуть книгу.
  7. Развернуть столбцы.

Переименование столбца таблицы с помощью pgAdmin

Столбцы теперь должны быть такими:

Переименование столбца таблицы с помощью pgAdmin

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

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

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

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

Шаг 2)

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

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

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

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

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

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

Шаг 5) Для проверки запустите следующую командуwing команда в редакторе запросов:

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

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

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

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

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

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

Шаг 2)

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

Добавление ограничения проверки с помощью pgAdmin

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

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

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

Добавление ограничения проверки с помощью pgAdmin

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

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

    Добавление ограничения проверки с помощью pgAdmin

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

Добавление ограничения проверки с помощью pgAdmin

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

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

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

Шаг 2)

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

Переименование таблицы с помощью pgAdmin

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

ALTER TABLE Book
  RENAME TO Books;

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

Переименование таблицы с помощью pgAdmin

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

  1. Нажмите «Базы данных» на панели навигации слева.
  2. Развернуть Демо.
  3. Разверните схемы.
  4. Развернуть Публикация.
  5. Разверните таблицы.

Переименование таблицы с помощью pgAdmin

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

Итоги

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

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