Introdução:
Neste artigo será apresentado o comando CREATE TABLE, pertencente a classe dos comando DDL (Data Definition Language – Linguagem de Definição de Dados) da SQL (Structured Query Language – Linguagem Estruturada de Consulta). Esse comando deve ser usado quando existe a necessidade de criar uma tabela para o armazenamento de dados.
Abaixo é apresentada a sintaxe do comando, onde os COLCHETES denotam uma parte opcional e as CHAVES indicam que partes podem ser repetidas indefinidamente ou omitidas completamente.
Sintaxe:
create table TABELA (
ATRIBUTO TIPO [RESTRIÇÃO]
[{, ATRIBUTO TIPO [RESTRIÇÃO]}]
{[, RESTRIÇÃO]}
)[;]
Rótulo | Descrição |
TABELA | Nome da tabela |
ATRIBUTO | Nome do atributo |
TIPO | Tipo de dado do atributo |
RESTRIÇÃO | Restrição sobre o atributo ou tabela |
Tipos de dados genéricos aos SGBDRs |
|
char(n) | Caractere de tamanho fixo |
varchar(n) | Caractere de tamanho variável |
number(n, p) | Número de ponto flutuante com total de dígitos n e total de dígitos à direita do ponto decimal p |
integer | Numero inteiro |
date | Data – Dependendo do SGBDR ou versão, esse tipo pode armazenam data e hora |
Utilização:
Para demonstrar a utilização do comando CREATE TABLE, iremos utilizar o modelo lógico mostrado na sequência:
No modelo lógico apresentado temos as tabelas SETOR e FUNCION, vamos criar primeiro a tabela SETOR e na sequência a tabela FUNCION.
create table SETOR ( ID_SETOR integer not null primary key, SETOR varchar(20) );
Obs.: Embora a SQL se CASE INSENSITIVE (não diferencia letras maiúsculas de minúsculas), as palavras reservadas serão escritas em letras minúsculas e os nomes das tabelas e atributos em maiúsculas para ficar mais claro o uso a sintaxe.
Esse exemplo cria uma tabela chamada SETOR, que tem os atributos ID_SETOR e SETOR. O atributo SETOR aceita de 0 à 20 caracteres alfanúmeros. Quanto ao atributo ID_SETOR, ele é do tipo inteiro e tem duas restrições, a primeira é not null indicando que o seu valor tem que ser informado; a segunda restrição é primary key informando que o atributo será uma chave primária. A chave primária é uma restrição de unicidade, ou seja, em nenhum momento a tabela poderá ter dois ou mais registros com o valor de ID_SETOR iguais.
create table FUNCION (
ID_FUNCION integer not null,
NOME varchar(20),
ID_SETOR integer,
primary key( ID ),
foreign key( ID_SETOR ) references SETOR( ID_SETOR ) on delete cascade
);
No exemplo acima, a tabela FUNCION é criada com os atributos ID_FUNCION, NOME, ID_SETOR. A restrição de unicidade (primary key) foi criada de forma diferente, a principal diferença entre o primeiro exemplo e segundo, é que no segundo caso é possível criar uma chave primária composta por mais de um atributo. Se for necessário criar uma chave primária composta, os campos devem está separados por vírgula (Ex.: primary key(ID_1, ID_2, ID_3) ).
Também foi definido para a tabela FUNCION a restrição foreign key indica que a tabela terá uma chave estrangeira, também conhecida como integridade referencial. a chave estrangeira é um ou mais atributos de uma tabela cujos valores devem, fundamentalmente, está presente como chave primária de outra tabela, em outra palavras, o valor colocado nesse(s) atributo(s) devem fazer referência ao valor existe no atributo de outra tabela.
Obs.: Uma chave estrangeira CHAMAIS deve ser descrita como um valor que MIGRA de uma tabela para outra tabela, pois segundo o Dicionário do Aurélio , migrar significa “Deslocar-se para outro lugar, país ou região”.
Embora o subcomando foreign key seja relativamente grande, sua semântica é simples:
- Após as palavras reservadas foreign key deve ser colocado entre os parênteses o atributo da tabela atual que será a chave estrangeira.
- A palavra reservada references deve anteceder o nome da tabela que será referenciada pela chave estrangeira e entre os parênteses deve ser informado o atributo da tabela referenciada.
- As palavras reservadas on delete cascade informam ao SGBDR que após a exclusão de um registro cujo valor do atributo da tabela referenciada seja igual a value, por exemplo, todos registros da tabela atual com o valor da chave estrangeira igual a value devem ser excluídas.
Conclusão:
O assunto sobre o comando CREATE TABLE não foi totalmente apresentado neste artigo, mas aqui você pôde vê a parte básica da criação de tabelas nos SGBDRs. No Canal da TIDP no youtube você pode assistir vídeos sobre esse e outros assuntos.
Até o próximo artigo.