Olá pessoal!
Primeiramente, desculpem, por ficar tanto tempo sem postar
nada, prometo voltar com força total de hoje para diante... hehe
Hoje daremos sequência ao artigo sobre banco de dados
Banco de Dados Pt. 1.
No primeiro artigo da série sobre banco de dados falamos
sobre a criação de uma tabela de Clientes, hoje veremos os comandos necessários
para a criação de uma tabela, as principais diferenças entre os tipos de
campos, os tipos as divisões do SQL.
É importante saber que o SQL (Structured Query Language, ou
Linguagem de Consulta Estruturada) é dividido principalmente em duas partes,
sendo as mesmas: comandos de DDL e comandos de DML.
DDL quer dizer Data Definition Language ou Linguagem de
Definição de Dados, estes comandos, como o próprio nome sugere, são utilizados
para estruturarmos a base de dados, criar tabelas, deletar tabelas, criar
campos dentro das tabelas, deletar campos das tabelas, renomear tabelas ou
campos. O uso mais comum dos comandos de DDL são os comandos de criação
e/ou de remoção de campos das tabelas já prontas, e criação ou exclusão de tabelas, entretanto, usamos estes comandos para procedures, triggers, views, constraints, dentre outros objetos que existem no banco de dados.
O segundo conjunto de comandos que temos dentro do SQL são
os de DML Data Manipulation Language ou Linguagem de manipulação de dados,
neste conjunto trabalhamos com o dado em si dentro da tabela, depois que a
estrutura já foi criada pela DDL é necessário popular e manipular os dados
dentro de uma ou mais tabelas da sua base de dados. Podemos atualizar um
registro, pesquisar por ele, inseri-lo ou deleta-lo de uma tabela.
Veremos agora como criar a tabela de clientes citada no
artigo anterior e alguns tipos de campos que podemos ter.
Primeiro para
criar a tabela começamos com o comando de CREATE:
CREATE <elemento> <nome_elemento>,
Onde: CREATE é
o comando, <elemento> representa o que queremos criar, não precisa ser
necessariamente uma tabela, pode ser um INDEX, uma CONSTRAINT, uma VIEW, uma
PROCEDURE, ou no nosso caso, uma TABLE, desta forma o comando fica assim:
CREATE TABLE clientes (campo1 tipo, campo 2 tipo, campo3,
tipo)
Sugere-se o nome da tabela com todas as letras minúsculas
principalmente porque há bancos de dados que são case sensitives, ou seja, fazem
diferença entre letras maiúsculas e minúsculas, logo, Clientes é diferente de
clientes.
Campo 1, campo 2, campoN são os nome dos dados que julgamos
ser relevantes para guardar na base de dados.
E tipo se refere ao tipo do dado que estamos guardando,
numérico, alfanumérico, booleano, data, etc. Vejamos o comando inteiro:
CREATE TABLE clientes (nome VARCHAR(50),
endereço VARCHAR(50),
cpf CHAR(11),
rg CHAR(15),
N_Filhos INTEGER,
telefone VARCHAR(20),
nome_pai VARCHAR(50),
nome_mae VARCHAR(50),
estado_civil CHAR(1),
Data_Insercao TIMESTAMP);
endereço VARCHAR(50),
cpf CHAR(11),
rg CHAR(15),
N_Filhos INTEGER,
telefone VARCHAR(20),
nome_pai VARCHAR(50),
nome_mae VARCHAR(50),
estado_civil CHAR(1),
Data_Insercao TIMESTAMP);
Observem que escrevi o nome dos campos com todas as letras
minúsculas por opção, mas NÃO PODE HAVER ACENTOS.
Agora vamos explicar cada tipo de campo:
VARCHAR e CHAR são campos alfanuméricos, ou seja o usuário
pode incluir qualquer tipo de caractere. O número que vem após a definição do
campo é o limite do campo, ou seja, o campo nome aceita até 50 caracteres após
isto, dependendo da IDE que você estiver utilizando ou dará erro de TRUNCATE ou
o que vier após os 50 caracteres será ignorado.
Diferença entre VARCHAR E CHAR - os dois tipos de campo são
alfanuméricos, mas as diferenças são cruciais para uma boa modelagem de dados.
VARCHAR é VARiante como o início do nome sugere, ou seja, o campo de telefone
guarda até 20 caracteres, mas suponhamos que eu só use 10, neste caso o banco
de dados guardará somente o espaço que utilizei durante a inserção. Já no caso
do campo rg é um char de 15, mas se eu
usar só 10 posições deste campo, por exemplo, as outras 5 serão armazenadas
durante a inserção também, não importa quantas posições usei durante o insert.
INTEGER são tipos de campos que só guardam números inteiros
como o nome sugere.
TIMESTAMP guarda uma data e uma hora no mesmo campo,
normalmente estes campos são seguidos de um valor padrão, um default aí o
comando ficaria assim:
data_insercao TIMESTAMP DEFAULT CURRENT_TIMESTAMP - com isto
estou informando que se não for
informado nada para este campo durante a inserção o banco deverá gravar a data
e a hora corrente. É interessante ressaltar também que timestamp é um sintaxe
nativa do MySQL, se você estiver usando o SQL Server, por exemplo, o tipo do
dado passa a ser DATETIME, que significa a mesma coisa.
Pessoal, existem vários e vários tipos de campos diferentes aqui mostrei só os mais comuns, existem também vários outros comandos de DDL, nos próximos artigos, continuaremos nos aprofundando nisso, vou ficando por aqui, pra não ficar tão cansativo.
Abraços!