PostgreSQL ALTER Table: ДОБАВЯНЕ на колона, преименуване на колона/примери за таблица

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

Синтаксис

Ето синтаксиса за PostgreSQL Команда ALTER TABLE:

ALTER TABLE table-name action;

Параметърът име на таблица е името на таблицата, което трябва да промените.

Параметърът за действие е действието, което трябва да извършите, като промяна на името на колона, промяна на типа данни на колона и т.н.

Descriptйон

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

  • ДОБАВЯНЕ НА КОЛОНА: това използва подобен синтаксис като командата CREATE TABLE за добавяне на нова колона към таблица.
  • ПУСКАНЕ НА КОЛОНА: за капкаping колона от таблица. Ограниченията и индексите, наложени на колоните, също ще бъдат премахнати.
  • ЗАДАВАНЕ/ИЗПУСКАНЕ ПО ПОДРАЗБИРАНЕ: Използвайте за премахване на стойността по подразбиране за колона. Промяната обаче ще важи само за следващите INSERT изрази.
  • SET/DROP NOT NULL: Променя дали дадена колона ще позволява нули или не.
  • ЗАДАДЕТЕ СТАТИСТИКА: За задаване на целта за събиране на статистика за всяка колона за операции ANALYZE.
  • НАСТРОЙКА СЪХРАНЕНИЕ: За настройка на режима на съхранение за колона. Това ще определи къде се съхранява колоната, независимо дали е в ред или в допълнителна таблица.
  • КОМПЛЕКТ БЕЗ ОИДИ: Използвайте за премахване на старата колона на таблицата.
  • ПРЕИМЕНУВАНЕ: за промяна на името на таблицата или името на колона.
  • ДОБАВЕТЕ table_constraint: Използва се за добавяне на ново ограничение към таблица. Използва същия синтаксис като СЪЗДАЙТЕ МАСА команда.
  • ОГРАНИЧЕНИЕ НА КАПАНЕТОИзползвайте за пусканеping ограничение на таблицата.
  • СОБСТВЕНИК: за промяна на собственика на таблица, последователност, индекс или изглед на определен потребител.
  • CLUSTER: за маркиране на таблица, която да се използва за извършване на бъдещи клъстерни операции.

Модифициране на колона

Една колона може да бъде модифицирана по няколко начина. Такива модификации могат да бъдат направени с помощта на командата ALTER TABLE. Нека обсъдим тези:

Добавяне на нова колона

За да добавите нова колона към a PostgreSQL таблица, командата ALTER TABLE се използва със следния синтаксис:

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

Името на таблицата е името на таблицата, която ще бъде модифицирана.

New-column-name е името на новата колона, която ще бъде добавена.

Дефиницията на колоната е тип данни от новата колона.

Вижте таблицата на книгата, показана по-долу:

Добавяне на нова колона в PostgreSQL

Таблицата има две колони, id и име. Трябва да добавим нова колона към таблицата и да й дадем името автор. Просто изпълнете следната команда:

ALTER TABLE Book
  ADD author VARCHAR(50);

След изпълнение на горната команда таблицата Book вече е както следва:

Добавяне на нова колона в PostgreSQL

Новата колона беше добавена успешно.

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

Можем да използваме командата ALTER TABLE, за да променим името на колона. В този случай командата се използва със следния синтаксис:

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

Името на таблицата е името на таблицата, чиято колона трябва да бъде преименувана.

Старото име е старото/текущото име на колоната.

Новото име е новото име на колоната. Помислете за таблицата Книга, показана по-долу:

Книга:

Преименуване на колона на таблица в PostgreSQL

Имаме нужда от името на автора на колоната за book_author. Ето командата:

ALTER TABLE Book
  RENAME COLUMN author TO book_author;

След като изпълним командата, можем да видим структурата на таблицата:

Преименуване на колона на таблица в PostgreSQL

Името на колоната бе променено успешно.

Задаване на стойност по подразбиране за колона

Можем да зададем стойност по подразбиране за колона, така че дори когато не посочите стойност за тази колона по време на операции 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 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. Щракнете върху Демо.

Добавяне на нова колона чрез pgAdmin

Стъпка 3) Въведете заявката в редактора на заявки:

ALTER TABLE Book
  ADD author VARCHAR(50);

Стъпка 4) Щракнете върху бутона Изпълнение.

Добавяне на нова колона чрез pgAdmin

Стъпка 5) За да проверите дали колоната е добавена, направете следното:

  1. Щракнете върху Бази данни от лявата навигация.
  2. Разширяване на демонстрацията.
  3. Разгънете схеми.
  4. Разширете Public.
  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) За да проверите дали промяната е била успешна, направете следното:

  1. Щракнете върху Бази данни от лявата навигация.
  2. Разширяване на демонстрацията.
  3. Разгънете схеми.
  4. Разширете Public.
  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) За да тествате, изпълнете следната команда в редактора на заявки:

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) За да тествате това, направете следното:

  1. Въведете следната заявка в редактора на заявки:
    INSERT INTO Book
    VALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
    
  2. Щракнете върху бутона Изпълнение.

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

    Ще върне следното:

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

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

За да постигнете същото чрез pgAdmin, направете следното:

Стъпка 1) Влезте във вашия pgAdmin акаунт.

Стъпка 2)

  1. От лентата за навигация вляво щракнете върху Бази данни.
  2. Щракнете върху Демо.

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

Стъпка 3) Въведете заявката в редактора на заявки:

ALTER TABLE Book
  RENAME TO Books;

Стъпка 4) Щракнете върху бутона Изпълнение.

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

Стъпка 5) За да проверите дали таблицата е преименувана, направете следното:

  1. Щракнете върху Бази данни от лявата навигация.
  2. Разширяване на демонстрацията.
  3. Разгънете схеми.
  4. Разширете Public.
  5. Разгъване на таблици.

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

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

Oбобщение

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

Изтеглете базата данни, използвана в този урок

Обобщете тази публикация с: