PostgreSQL ALTER TABLE: adicionar ou eliminar colunas
Pode utilizar o comando ALTER TABLE para personalizar tabelas no PostgreSQL. O comando é utilizado com uma ação para, por exemplo, adicionar ou alterar colunas.
O que é o PostgreSQL ALTER TABLE?
O comando ALTER TABLE é utilizado no PostgreSQL para alterar tabelas existentes. Pode ser utilizado para adicionar ou eliminar uma coluna, ou para personalizá-la de acordo com as suas necessidades. Além disso, o PostgreSQL ALTER TABLE é utilizado para definir ou eliminar restrições numa tabela no sistema de gestão de bases de dados. Para obter o resultado pretendido, é necessário especificar o comando com uma ação.
ALTER TABLE: sintaxe
Para uma compreensão básica, vale a pena dar uma olhada na sintaxe básica do ALTER TABLE. É a seguinte:
ALTER TABLE nombre_de_la_tabla acción;postgresqlO comando principal é seguido do nome da tabela na qual se pretende efetuar alterações. Em seguida, especifique o comando PostgreSQL ALTER TABLE com a ação pretendida.
Para criar uma nova tabela, utilize o comando CREATE TABLE no PostgreSQL.
PostgreSQL ALTER TABLE: exemplos
Nas secções seguintes, são apresentados exemplos práticos para ilustrar o funcionamento ALTER TABLE. Para tal, foi criada uma tabela de exemplo com o nome «Clientes», que inicialmente contém três colunas e três linhas. A sua aparência é a seguinte:
| ID | Nome | Cidade |
|---|---|---|
| 1 | Sánchez | Madrid |
| 2 | Morales | Barcelona |
| 3 | Simón | Alicante |
Agora, isto pode ser personalizado de várias formas com ALTER TABLE do PostgreSQL.
Adicionar uma coluna no PostgreSQL ADD COLUMN
Para adicionar uma coluna adicional, utilize o comando ALTER TABLEem conjunto com o PostgreSQLADD COLUMN`. Esta ação tem dois parâmetros: o nome da coluna e o tipo de dados da coluna. A sintaxe é a seguinte:
ALTER TABLE nombre_de_tabla ADD COLUMN nombre_de_columna tipo_datos;postgresqlSe quisermos adicionar uma coluna para o endereço à nossa tabela «Clientes», utilizamos o PostgreSQL ADD COLUMN da seguinte forma:
ALTER TABLE Clientes ADD COLUMN Dirección VARCHAR(255);postgresqlA nova tabela ampliada tem agora o seguinte aspeto:
| ID | Nome | Cidade | Endereço |
|---|---|---|---|
| 1 | Sánchez | Madrid | NULL |
| 2 | Morales | Barcelona | NULL |
| 3 | Simón | Alicante | NULL |
Apagar colunas com DROP COLUMN
O procedimento é muito semelhante se quisermos eliminar uma coluna da tabela existente. Para tal, utilizamos a ação PostgreSQL ALTER TABLE em combinação com a ação DROP COLUMN. Esta ação tem como único parâmetro o nome da coluna. Eis a sintaxe:
ALTER TABLE nombre_de_tabla DROP COLUMN nombre_de_columna;postgresqlPara eliminar a coluna «Cidade», utilizamos este código:
ALTER TABLE clientes DROP COLUMN ciudad;postgresqlA tabela agora tem apenas três colunas:
| ID | Nome | Endereço |
|---|---|---|
| 1 | Sánchez | NULL |
| 2 | Morales | NULL |
| 3 | Simón | NULL |
Renomear colunas com RENAME COLUMN
Também é possível renomear uma coluna existente, o que pode ser uma boa alternativa à eliminação ou adição de novas colunas. A sintaxe de RENAME COLUMN dentro de ALTER TABLE é a seguinte:
ALTER TABLE nombre_de_tabla RENAME COLUMN nombre_de_columna TO nuevo_nombre;postgresqlAqui, transformamos a coluna «Nome» na coluna «Nome do cliente»:
ALTER TABLE clientes RENAME COLUMN nombre TO nombre_cliente;postgresqlNa nossa tabela, basta alterar o nome da coluna conforme desejamos:
| ID | Nome do cliente | Endereço |
|---|---|---|
| 1 | Sánchez | NULL |
| 2 | Morales | NULL |
| 3 | Simón | NULL |
Outras ações para o PostgreSQL ALTER TABLE
Existem muitas outras ações que podes utilizar em conjunto com ALTER TABLE. Estas são as mais importantes:
Para alterar o tipo de dados de uma coluna:
ALTER TABLE nombre_de_tabla ALTER COLUMN nombre_de_columna TYPE tipo_datos;postgresqlPara indicar que uma coluna deve receber um valor:
ALTER TABLE nombre_de_tabla ALTER COLUMN nombre_de_columna SET NOT NULL;postgresqlPara definir restrições como UNIQUE ou PRIMARY KEY para uma coluna, utilize o PostgreSQL ALTER TABLE em combinação com a ação ADD CONSTRAINT:
ALTER TABLE nombre_de_tabla ADD CONSTRAINT nombre_de_restricción definición_de_restricción;postgresql