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 е името на новата колона, която ще бъде добавена.
Дефиницията на колоната е тип данни от новата колона.
Вижте таблицата на книгата, показана по-долу:
Таблицата има две колони, id и име. Трябва да добавим нова колона към таблицата и да й дадем името автор. Просто изпълнете следната команда:
ALTER TABLE Book ADD author VARCHAR(50);
След изпълнение на горната команда таблицата Book вече е както следва:
Новата колона беше добавена успешно.
Преименуване на колона на таблица
Можем да използваме командата ALTER TABLE, за да променим името на колона. В този случай командата се използва със следния синтаксис:
ALTER TABLE table-name RENAME COLUMN old-name TO new-name;
Името на таблицата е името на таблицата, чиято колона трябва да бъде преименувана.
Старото име е старото/текущото име на колоната.
Новото име е новото име на колоната. Помислете за таблицата Книга, показана по-долу:
Книга:
Имаме нужда от името на автора на колоната за 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_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)
- От лентата за навигация вляво щракнете върху Бази данни.
- Щракнете върху Демо.
Стъпка 3) Въведете заявката в редактора на заявки:
ALTER TABLE Book ADD author VARCHAR(50);
Стъпка 4) Щракнете върху бутона Изпълнение.
Стъпка 5) За да проверите дали колоната е добавена, направете следното:
- Щракнете върху Бази данни от лявата навигация.
- Разширяване на демонстрацията.
- Разгънете схеми.
- Разширете Public.
- Разгъване на таблици.
- Разширете книгата.
- Разгъване на колони.
Колоната трябва да бъде добавена, както е показано по-долу:
Преименуване на колона на таблица
За да постигнете същото чрез pgAdmin, направете следното:
Стъпка 1) Влезте във вашия pgAdmin акаунт.
Стъпка 2)
- От лентата за навигация вляво щракнете върху Бази данни.
- Щракнете върху Демо.
Стъпка 3) Въведете заявката в редактора на заявки:
ALTER TABLE Book RENAME COLUMN author TO book_author;
Стъпка 4) Щракнете върху бутона Изпълнение.
Стъпка 5) За да проверите дали промяната е била успешна, направете следното:
- Щракнете върху Бази данни от лявата навигация.
- Разширяване на демонстрацията.
- Разгънете схеми.
- Разширете Public.
- Разгъване на таблици.
- Разширете книгата.
- Разгъване на колони.
Сега колоните трябва да са както следва:
Колоната бе променена успешно.
Задаване на стойност по подразбиране за колона
За да постигнете същото чрез pgAdmin, направете следното:
Стъпка 1) Влезте във вашия pgAdmin акаунт.
Стъпка 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)
- От лентата за навигация вляво щракнете върху Бази данни.
- Щракнете върху Демо.
Стъпка 3) Въведете заявката в редактора на заявки:
ALTER TABLE Book ADD CHECK (book_author IN ('Nicholas', 'Samuel'))
Стъпка 4) Щракнете върху бутона Изпълнение.
Стъпка 5) За да тествате това, направете следното:
- Въведете следната заявка в редактора на заявки:
INSERT INTO Book VALUES(7, 'Best PostgreSQL Book', 'Gregory Bush');
- Щракнете върху бутона Изпълнение.
Ще върне следното:
Преименуване на таблица
За да постигнете същото чрез pgAdmin, направете следното:
Стъпка 1) Влезте във вашия pgAdmin акаунт.
Стъпка 2)
- От лентата за навигация вляво щракнете върху Бази данни.
- Щракнете върху Демо.
Стъпка 3) Въведете заявката в редактора на заявки:
ALTER TABLE Book RENAME TO Books;
Стъпка 4) Щракнете върху бутона Изпълнение.
Стъпка 5) За да проверите дали таблицата е преименувана, направете следното:
- Щракнете върху Бази данни от лявата навигация.
- Разширяване на демонстрацията.
- Разгънете схеми.
- Разширете Public.
- Разгъване на таблици.
Таблицата беше преименувана успешно.
Oбобщение
- Операторът ALTER TABLE се използва за промяна на структурата на таблицата.
- Командата ALTER TABLE приема различни форми в зависимост от задачата, която трябва да изпълните.
- Структурата може да бъде колоните на таблицата или самата таблица.
- Можем да използваме този оператор, за да променим името на таблица.
- Командата ALTER TABLE може да се използва за задаване на стойността по подразбиране на колона.
- Изявлението може да се използва за валидиране на стойностите, които са въведени в колона на таблица.

























