Olá pessoal nesta Quick iremos continuar com falando sobre SQL, iremos continuar vendo a definição das tabelas

· Assertivas

Uma assertiva é utilizada para estabelecer restrição no banco de dados com base em dados de uma ou mais tabelas. Dessa forma, você pode estabelecer como regra que a tabela CD sempre tenha mais de uma linha.

CREATE ASSERTION nome

CHECK (expressão lógica);

CREATE ASSERTION ha_CD

CHECK (EXISTS Select codigo_cd from CD);

· Alteração na estrutura da tabela

Para alterar a estrutura de uma tabela, utilizamos o comando ALTER TABLE. Dependendo do banco de dados, podemos:

1. Acrescentar novas colunas

O comando utilizando para acrescentar novas colunas é muito semelhante ao da criação de colunas em uma tabela:

ALTER TABLE cliente

ADD email varchar(80) UNIQUE

2. Acrescentar novas constraints

O comando utilizado para acrescentar novas constraints é muito semelhante ao da criação de constraints em uma tabela:

ALTER TABLE cliente

ADD PRIMARY KEY (CDCLIENTE)

Nesse caso, estamos alterando uma constraint de tabela. Note que a colocação dos parênteses após a cláusula ADD é opcional. Uma constraint de coluna deve ser alterada utilizando o comando a seguir, relacionado à própria coluna.

3. Modificar Colunas

Podemos modificar qualquer característica de uma coluna, seja o tipo de dado (alguns bancos de dados requerem ausência de conteúdo na coluna para fazer essa alteração), o tamanho (alguns só aceitam alterações para valores maiores que o definido) e as constraints:

ALTER TABLE cliente

MODIFY email varchar(100) NOT NULL

Podemos especificar apenas o que estamos modificando; não é necessário repetir o que não será alterado. Assim, se quisermos apenas modificar o tipo de dado e seu tamanho, não é necessário especificar a constraint e vice-versa. De qualquer forma, devemos sempre especificar qual coluna está sofrendo a modificação.

4. Excluindo Elementos

Pelo padrão SQL, deveria excluir colunas ou constraints de uma tabela. Alguns bancos de dados não permitem a exclusão de colunas. No Oracle, a cláusula de exclusão é DROP e não DELETE, como definido desde a SQL-92.

Exemplo 1: Exclusão de coluna:

ALTER TABLE cliente

DELETE email

Exemplo 2: Exclusão de constraint de tabela:

ALTER TABLE cliente

DELETE primary key

Exemplo 3: Exclusão de constraint de tabela:

ALTER TABLE cliente

DELETE FOREIGN KEY pedido_cliente_fk

Note que a exclusão de constraint de coluna deve ser feita como uma alteração da coluna.

Veja o exemplo anterior.

5. Trocar nome de elementos

Podemos trocar o nome de tabelas ou colunas (alguns bancos de dados não permitem essa operação);

Exemplo 1: Alteração de nome de tabela

ALTER TABLE cliente

RENAME cli

Exemplo 2: Alteração de nome de coluna

ALTER TABLE cliente

RENAME nome_cliente TO nmcliente

6. Eliminando uma tabela

Para eliminar uma tabela do banco de dados, utilizamos o comando DROP TABLE seguido do nome da tabela. Alguns bancos de dados somente permitirão a exclusão da tabela desde que esta não esteja relacionada a outras. Alguns deles podem conter cláusulas específicas para excluir a tabela, independentemente das constraints definidas (no Oracle, você pode especificar CASCADE após o nome da tabela).

Exemplo:

DROP TABLE cliente

Vou ficando por aqui, veja na próxima Quick veremos a criação de Índices.

Um abraço

Rubens Antunes

Leia todos artigos da série