Olá pessoal nesta Quick iremos continuar com falando sobre SQL, agora veremos a criação de uma tabela.

Criando Tabelas

Tabelas são as estruturas mais importantes de um banco de dados. Nas tabelas estará o conteúdo que representa cada objeto do mundo real, cuja importância para o funcionamento do sistema justifica a sua criação. As próprias tabelas criadas no banco de dados ficam armazenadas em tabelas internas do gerenciador de banco de dados. É o chamado dicionário de dados. Com a utilização do dicionário de dados, as informações das tabelas ficam sempre a disposição do usuário e permitem um controle maior do que está sendo armazenado.

Create Table:
  Create table CD (
  Codigo_CD Integer Not Null,
  Codigo_Gravadora Integer Null,
  Nome_CD Varchar(60) Null,
  Preco_Venda Decimal(10,2) Null,
  Data_Lancamento Date Default SYSDATE,
  CD_Indicado Integer Null,
  Primary Key (Codigo_CD),
  Foreign Key (Codigo_Gravadora)
  References Gravadora (Codigo_Gravadora),
  Check (Preco_Venda > 0)
  );

Chave Primária

É a coluna, ou grupo de colunas, que permite identificar um único registro na tabela.

Para especificar que uma coluna ou grupo de colunas representa a chave primária de uma tabela, deve-se acrescentar a palavra-chave PRIMARY KEY seguida do nome da(s) coluna(s). Alguns bancos de dados permitem especificar a chave primária como constraint da coluna (quando a chave primária for apenas uma coluna) ou como constraint de tabela. Para facilitar, aconselha-se utilizar a chave primária como constraint de tabela.

Exemplo:

Primary Key (CDCLIENTE),
  ...

Chave Estrangeira

É o campo que estabelece o relacionamento entre duas tabelas. Assim, uma coluna, ou grupo de colunas, de uma tabela corresponde à mesma coluna, ou grupo de colunas, que é a chave primária de outra tabela. Dessa forma, deve-se especificar na tabela que contém a chave estrangeira quais são essas colunas e à qual tabela está relacionada. Veja que o banco de dados irá verificar se todos os campos que fazem referência à tabela estão especificados.

Ao determinar esse tipo de relacionamento, fica garantida a integridade das informações. Os valores presentes na(s) coluna(s) definida(s) como chave estrangeira devem ter um correspondente na outra tabela, caso contrário o banco de dados deve retornar uma mensagem de erro. É normal que, ao tentar excluir um registro de uma tabela, o banco de dados verifique se há chaves estrangeiras relacionas a esse registro. Se houver, também será retornado um erro impedindo essa operação.

Infelizmente, muitos programadores não utilizam esses recursos dos bancos de dados. Se não forem definidas as chaves estrangeiras nas tabelas, apenas o programa controlará o que pode ou não ser excluído ou alterado, colocando em risco informações relevantes do sistema. Por exemplo, pode-se excluir uma peça da tabela, mesmo que haja pedidos ou notas fiscais relacionadas a ela. Dessa forma, perde-se a informação. Muitos poderiam dizer que o programa não permitiria tal ocorrência. É verdade. Porém todos os bancos de dados possuem programas de manipulação direta dos dados. Não é apenas por meio do seu programa que alguém irá manipular as informações. Aliás, se alguém estiver mal-intencionado, não utilizará o seu programa para agir.

Sintaxe de Foreign:

Foreign Key nome-chave-estrangeira (lista de colunas)
  References Nome-tabela (lista de colunas)
  On Update ação
  On Delete ação 

Como exemplo, vamos fazer referência à tabela de clientes quando estamos criando a tabela de pedidos:

FOREIGN KEY pedido_cliente_fk (cdCliente)
  REFERENCES cliente
  On Update Cascade
  On Delete Restrict,

Veja que não houve a necessidade de incluir a lista de colunas após o nome da tabela que contém a chave primária, pois esta foi definida na criação da tabela.

Vou ficando por aqui, veja na próxima Quick como criar e definir os Fields.

Leia todos artigos da série