PostgreSQL ALTER Таблица: ДОБАВЕТЕ колона, Преименувайте колона / Примери за таблица

Съдържание:

Anonim

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

В този урок ще научите:

  • Синтаксис
  • Описание
  • Модифициране на колона
    • Добавяне на нова колона
    • Преименуване на колона на таблица
  • Задаване на стойност по подразбиране за колона
  • Добавяне на ограничение за проверка
  • Преименуване на таблица
  • Използване на pgAdmin

Синтаксис

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

ALTER TABLE table-name action;

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

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

Описание

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

  • ДОБАВИ КОЛОНА : това използва подобен синтаксис като командата CREATE TABLE, за да добави нова колона към таблица.
  • DOLP COLUMN : за изпускане на колона на таблица. Ограниченията и индексите, наложени върху колоните, също ще отпаднат.
  • SET / DROP DEFAULT : Използва се за премахване на стойността по подразбиране за колона. Промяната обаче ще се прилага само за следващите INSERT изрази.
  • SET / DROP NOT NULL : Променя дали колона ще позволява нули или не.
  • SET STATISTICS: За задаване на целта за събиране на статистически данни за всяка колона за ANALYZE операции.
  • SET STORAGE : За задаване на режима на съхранение за колона. Това ще определи къде се държи колоната, независимо дали е вградена, или в допълнителна таблица.
  • ЗАДАВАНЕ БЕЗ OIDS : Използвайте за премахване на старата колона на таблицата.
  • ПРЕИМЕНЯВАНЕ : за промяна на името на таблицата или името на колона.
  • ДОБАВИ таблично ограничение : Използвайте за добавяне на ново ограничение към таблица. Използва същия синтаксис като командата CREATE TABLE.
  • DROP CONSTRAINT : Използвайте за отпадане на ограничение на таблица.
  • СОБСТВЕНИК : за промяна на собственика на таблица, последователност, индекс или изглед на определен потребител.
  • КЛАСТЕР : за маркиране на таблица, която да се използва за извършване на бъдещи клъстерни операции.

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

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

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

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

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

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

Името на новата колона е името на новата колона, която трябва да се добави.

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

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

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

ALTER TABLE BookADD author VARCHAR(50);

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

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

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

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

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

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

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

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

Книга:

Нуждаем се от името на автора на колоната до 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, така че да приема само стойностите, Николас и Самуел:

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

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

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

Изявлението ще върне следната грешка:

Операцията за вмъкване не бе успешна, защото нарушихме ограничението за проверка.

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

Ето синтаксиса на командата ALTER TABLE за преименуване на таблица:

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

Името на таблицата е текущото име на таблицата.

Името на новата таблица е новото име, което се присвоява на таблицата.

Например, нека променим името на таблицата на Книгата на Книги:

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. Разгъване Обществено.
  5. Разгънете таблици.
  6. Разгъване на книгата.
  7. Разгъване на колони.

Колоната трябваше да бъде добавена, както е показано по-долу:

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

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

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

Стъпка 2)

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

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

ALTER TABLE BookRENAME COLUMN author TO book_author;

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

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

  1. Щракнете върху Бази данни от лявата навигация.
  2. Разгънете демонстрацията.
  3. Разгънете схемите.
  4. Разгъване Обществено.
  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. Разгъване Обществено.
  5. Разгънете таблици.

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

Резюме:

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

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