SQL: CREATE TABLE (RÁPIDO E SIMPLES)

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.