sexta-feira, 27 de março de 2015

Banco de Dados Pt. 2

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);

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!

Nenhum comentário:

Postar um comentário