Учебники

15) PostgreSQL ALTER Table

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

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

Синтаксис

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

ALTER TABLE table-name action;

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

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

Описание

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

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

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

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

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

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

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

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

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

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

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

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

ALTER TABLE Book
  ADD author VARCHAR(50);

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

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

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

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

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

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

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

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

Книга:

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

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ALTER TABLE Book
  RENAME TO Books;

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

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

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

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

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

Шаг 2)

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

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

ALTER TABLE Book
  ADD author VARCHAR(50);

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

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

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

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

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

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

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

Шаг 2)

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

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

ALTER TABLE Book
  RENAME 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 Book
    VALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
    
  2. Нажмите кнопку Выполнить.

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

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

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

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

Шаг 2)

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

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

ALTER TABLE Book
  RENAME TO Books;

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

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

  1. Нажмите Базы данных на левой навигационной панели.
  2. Разверните Демо.
  3. Разверните Схемы.
  4. Развернуть Public.
  5. Развернуть Таблицы.

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

Резюме:

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

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