domingo, 29 de janeiro de 2017

Alter table

Olá!

O comando ALTER TABLE é utilizado com o propósito de realizar alterações em uma tabela do banco de dados. Assim, com esse comando é possível adicionar, deletar ou modificar as colunas de uma tabela.

De modo que as modificações realizadas com o ALTER TABLE podem afetar a estrutura física da tabela, e também as regras (constraints) que são aplicadas em cada coluna. Por exemplo, para adicionar ou remover a regra de que o campo não pode ser nulo em uma tabela já existente é necessário utilizar o ALTER TABLE.

Alguns exemplos da aplicação do ALTER TABLE:
  • Adicionar uma coluna na tabela, sintaxe:
ALTER TABLE nome_da_tabela ADD nome_da_nova_coluna tipo_de_dado_da_coluna
ALTER TABLE pessoa         ADD sobrenome           VARCHAR (50)

  • Remover uma coluna da tabela, sintaxe:
ALTER TABLE nome_da_tabela DROP COLUMN nome_da_coluna
ALTER TABLE pessoa         DROP COLUMN sobrenome

  • Modificar o tamanho do campo da tabela, sintaxe:
ALTER TABLE nome_da_tabela ALTER COLUMN nome_da_coluna novo_tipo_de_dado
ALTER TABLE pessoa         ALTER COLUMN sobrenome      VARCHAR (80)

Fique atento a sintaxe do comando para o banco de dados em que você está trabalhando, pois há pequenas particularidades na sintaxe deste comando para cada banco de dados. Por exemplo, veja abaixo como seria a sintaxe para modificar o tipo de dado da coluna de uma tabela no MySQL, DB2, PostgreSQL:

MySQL
ALTER TABLE nome_da_tabela
  MODIFY COLUMN nome_da_coluna  novo_tipo_de_dado

DB2
ALTER TABLE nome_da_tabela
  ALTER COLUMN nome_da_coluna SET DATA TYPE novo_tipo_de_dado

PostgreSQL
ALTER TABLE nome_da_tabela
  ALTER COLUMN nome_da_coluna TYPE novo_tipo_de_dado

O comando possui vários sub-comandos para diversos tipos de operações, e cada banco de dados possui uma particularidade para a sintaxe desses sub-comandos. Para visualizar todos os sub-comandos disponíveis visite os links a seguir:




Note também que em alguns bancos de dados algumas operações não são permitidas, e em outros são. Então, dependendo da aplicação a ser desenvolvida/trabalhada a escolha do banco de dados pode ser definida com base nessas operações, exemplo: em uma aula de SQL, os bancos de dados que permitem mais operações podem demonstrar melhor a funcionalidade de cada sub-comando do ALTER TABLE.


Consultar a relação de Termos e Abreviaturas acesse aqui.

Felipe Barbosa Ferreira
Até o próximo post!

domingo, 8 de janeiro de 2017

Constraints - Restrições/Regras

Olá!

No SQL as constraints (restrições / regras) servem para definir regras para os dados que podem ser armazenados em uma coluna. Uma constraint pode ser simples como a restrição de um campo não receber valor nulo, ou a constraint pode ser complexa de modo a avaliar um ou mais campos, e com uma ou mais condições.

Quando a constraint não é respeitada a ação que está sendo executada é abortada, por exemplo: tentar inserir um novo registro com valor nulo em campo com a restrição NOT NULL.

Alguns exemplos de constraint:
  • NOT NULL: define que o campo da tabela não recebe valor nulo
  • DEFAULT: especifica um valor padrão para o campo (quando não informado)
  • UNIQUE: determina que cada registro da tabela deve conter um valor único
A constraint de um campo pode ser criada no momento da criação da tabela (Create table), ou também em uma tabela já existente (Alter table), segue os exemplos:

Definir constraint na criação da tabela:

       CREATE TABLE PESSOA
           (
               CODIGO_PESSOA  INT         NOT NULL
           ,   NOME           VARCHAR(30)
           ,   SOBRENOME      VARCHAR(50) WITH DEFAULT 'Não informado'
           ) 

Definir constraint em uma tabela existente:

       ALTER TABLE PESSOA
       ALTER NOME SET NOT NULL

Consultar a relação de Termos e Abreviaturas acesse aqui.
Felipe Barbosa Ferreira
Até o próximo post!