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:

FUNCION >< SETOR

Relacionamento entre as tabelas FUNCION e SETOR

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 seja 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_FUNCION ),
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 JAMAIS 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.

Assuntos relacionados:

ALTER TABLE e DROP TABLE

INSERT

UPDATE e DELETE

Comando SELECT – Parte I

SELECT: Indo além do WHERE simples

Possui mestrado em Computação Aplicada pela Universidade Estadual do Ceará (2010), especialização em Engenharia de Software pela Faculdade de Juazeiro do Norte (2010), graduação em Automática pelo Centro Federal de Educação Tecnológica do Ceará (2005). Tem experiência na área de Ciência da Computação , com ênfase em Sistemas de Computação, atuando principalmente nos seguintes temas: Desenvolvimento dos programas de computador IndSist, Store, Teacher entre outros. Desenvolvimento dos programas Mobile-Android Agenda Iterativa e Guia Cariris.Disciplinas que ministra ou ministrou no ensino superior: Linguagem de Programação, Paradigma de Programação, Estrutura de Dados, Engenharia de Software, Banco de Dados. Currículo Lattes