3º) Exemplo
Criar na tabela "esporte" uma coluna obrigatória chamada "categoria", ou seja, que exige que o dado seja obrigatório (não nulo).
Antes
de criar a coluna devemos verificar se há dados na tabela, para isso
vamos utilizar a função "COUNT", esta função conta o número de linhas
de uma tabela.
Segue abaixo, o seguinte comando:
SELECT COUNT(*) FROM esporte;
a) Caso não haja dados na tabela
Vamos executar o comando para criar a coluna
SINTAXE
ALTER TABLE nome_da_tabela ADD COLUMN nome_da_coluna tipo_de_dado NOT NULL;
Perceba que acrescentamos "NOT NULL" para que o campo se torne obrigatório. Veja o exemplo abaixo:
ALTER TABLE esporte ADD COLUMN categoria varchar(80) NOT NULL;
b) Caso haja dados na tabela.
Primeiramente crie a coluna como não obrigatória. Vamos executar o comando para criar a coluna.
ALTER TABLE esporte ADD COLUMN categoria varchar(80);
Atualize os dados da coluna antes de torná-la obrigatória (não nula).
Segue a atualização de dados através do comando UPDATE.
/*foi atribuído a futebol categoria "coletivo"*/
UPDATE esporte SET categoria = 'coletivo' WHERE id = 2;
/*foi atribuído a atletismo e natação a categoria "individual"*/
UPDATE esporte SET categoria = 'individual' WHERE id IN (1,3);
Após a atualização, veja como ficou a tabela:
Agora que não há dados nulos, vamos tornar a coluna obrigatória.
SINTAXE
ALTER TABLE nome_da_tabela ALTER COLUMN nome_da_coluna SET NOT NULL;
Perceba que utilizamos "ALTER COLUMN" para alterar "as propriedades" de uma coluna existente, neste caso, torná-la "NÃO NULA".
Após o "ALTER COLUMN" colocaremos o nome da coluna.
Após o nome da coluna a setaremos como NÃO NULA, utilizando SET NOT NULL.
Veja o exemplo abaixo:
ALTER TABLE esporte ALTER COLUMN categoria SET NOT NULL;
Perceba que após inserir um novo registro, ou seja, executar o comando "INSERT" com uma categoria nula, será retornado um erro.
Veja o exemplo:
INSERT INTO
esporte (esport_desc, disponibilidade, categoria)
VALUES
('canoagem', false, NULL);
Veja o erro abaixo:
ERROR: null value in column "categoria" violates not-null constraint
DETAIL: Failing row contains (4, canoagem, f, null).
SQL state: 23502
Tornar a coluna "categoria" NÃO obrigatória (opcional).
Para remover a obrigatoriedade, execute o comando abaixo:
SINTAXE
ALTER TABLE nome_da_tabela ALTER COLUMN nome_da_coluna DROP NOT NULL;
ALTER TABLE esporte ALTER COLUMN categoria DROP NOT NULL;
5º) Exemplo
Criar uma coluna chamada "modalidade_ativa" do tipo "boolean" com valor "DEFAULT" (padrão) igual a "true".
SINTAXE
ALTER TABLE nome_da_tabela ADD COLUMN nome_da_coluna tipo_de_dado DEFAULT valor_padrao;
Exemplo:
ALTER TABLE esporte ADD COLUMN modalidade_ativa boolean DEFAULT true;
6º) Exemplo
Criar uma coluna chamada "data_hora_criacao" do tipo "timestamp without time zone" com