Para começar vamos criar um banco de dados. Para esse artigo vou usar o Postgresql (versão 9.1), ele é gratuito e fácil de usar. Caso você queira baixa-lo, aqui está o link para o download. Para lhe auxiliar melhor, aumentando suba base de conhecimento sobre o PostgreSQL 9.1, você pode consultar meu artigo que te ensina a como instalar PostgreSQL 9.1 - A instalação é fácil e muito rápida. Recomendo a leitura :).
Comandos SQL
Em nossa primeira tela, vamos abrir o pgAdmin - é onde vamos executar os comandos.
Agora vamos abrir o servidor local.
Clique no banco de dados postgres, é o banco de dados default. Depois clique no icone SQL para que possamos criar o banco de dados.
Create Database - SQL
Vamos usar nosso primeiro comando sql, o CREATE DATABASE, o nome do banco de dados será DB_Endereco.
CREATE DATABASE DB_Endereco;
Clique a tecla F5 e espere o comando ser executado.
Pronto criamos o nosso banco de dados, agora feche essa janela e de um refresh no nó Databases, verifique que nosso banco de dados foi criado, clique nele no banco de dados e depois clique de novo no icone Sql.
Comando Create Table - SQL
Com a nova janela aberta vamos criar nossas tabelas. Vamos utilizar nosso segundo comando Sql, o CREATE TABLE. A estrutura do comano é essa:
CREATE TABLE tbPais( bgId INT NOT NULL (NOT NULL indica que o campo não pode ser nulo, se for
permitido nulo é só colocar NULL) ,vcDescricao character varying(50) NOT NULL , PRIMARY KEY
(bgId) (O comando PRIMARY KEY indica que o campo é chave primária, o campo não permiti valor
duplicado, é único na tabela) )
Crie as outras tabelas do nosso banco de dados. É só apagar o comando da janela e copiar cada comando create na janela e clicar a tecla F5.
CREATE TABLE tbEstado( bgId INT NOT NULL ,vcDescricao character varying(70) NOT NULL ,vcUF
character varying(2) NULL ,bgIdPais INT NOT NULL , PRIMARY KEY(bgId) ) CREATE TABLE tbCidade
( bgId INT NOT NULL ,vcDescricao character varying(70) NOT NULL ,bgIdEstado INT NOT NULL
, PRIMARY KEY(bgId) ) CREATE TABLE tbBairro( bgId INT NOT NULL ,vcDescricao character
varying(70) NOT NULL ,bgIdCidade INT NOT NULL , PRIMARY KEY(bgId) ) CREATE TABLE tbLogradouro
( bgId INT NOT NULL ,vcDescricao character varying(70) NOT NULL ,vcCEP character varying(8)
NOT NULL ,bgIdBairro INT NOT NULL , PRIMARY KEY(bgId) )
Criar chaves estrangeiras - SQL
Agora vamos criar as chaves estrangeiras. Chave estrangeira é um campo que aponta para a chave primária de outra tabela, em vez de criamos um campo vcPais na tabela tbEstado, nós criamos um campo bgIdPais que vai ser chave estrangeira, com isso nós criamos o relacionamento entre as tabelas tbPais e tbEstado. Agora vamos executar o comando que criar a chave estrangeira.
ALTER TABLE tbEstado (Comando para alterar a tabela) ADD CONSTRAINT tbEstado_bgIdPais
(Nome da chave estrangeira) FOREIGN KEY (bgIdPais ) (Campo que vai ser a chave estrangeira)
REFERENCES "tbPais" (bgId) (Campo que é chave primária da outra tabela).
Aqui são os comandos para criar as chaves estrangeiras.
ALTER TABLE tbEstado ADD CONSTRAINT tbEstado_bgIdPais FOREIGN KEY (bgIdPais) REFERENCES
tbPais(bgId) ALTER TABLE tbCidade ADD CONSTRAINT tbCidade_bgIdEstado FOREIGN KEY (bgIdEstado)
REFERENCES tbEstado(bgId) ALTER TABLE tbBairro ADD CONSTRAINT tbBairro_bgIdCidade FOREIGN KEY
(bgIdCidade) REFERENCES tbCidade (bgId) ALTER TABLE tbLogradouro ADD CONSTRAINT
tbLogradouro_bgIdBairro FOREIGN KEY (bgIdBairro) REFERENCES tbBairro (bgId)
É so apagar o comando da janela e copiar cada comando na janela e clicar a tecla F5.
Comando INSERT INTO - SQL
Vamos inserir nos primeiros registros, vamos utilizar o comando INSERT INTO. INSERT INTO nomeTabela (campos da tabela) VALUES (valores que serão inseridos).
O comando insert retornou um erro, isso acontece porque não existe o registro 1 na tabela tbPais, essa é uma segurança para o nosso banco, ele não permite colocar ids que não existe. A ordem que estão os comandos é importante para inserir os registros no nosso banco de dados.
--INSERINDO NA TABELA tbPais INSERT INTO tbPais(bgId, vcDescricao) VALUES(1, 'Brasil');
INSERT INTO tbPais(bgId, vcDescricao) VALUES(2, 'Estados Unidos');
--INSERINDO NA TABELA tbEstado INSERT INTO tbEstado(bgId, vcDescricao, vcUF, bgIdPais) VALUES
(1, 'São Paulo', 'SP', 1); INSERT INTO tbEstado(bgId, vcDescricao, vcUF, bgIdPais)
VALUES(2, 'Rio de Janeiro', 'RJ', 1); INSERT INTO tbEstado(bgId, vcDescricao, vcUF, bgIdPais)
VALUES(3, 'Califórnia', NULL, 2); --INSERINDO NA TABELA tbCidade INSERT INTO tbCidade bgId,
vcDescricao, bgIdEstado) VALUES(1, 'São Bernardo do Campo', 1); INSERT INTO tbCidade (bgId,
vcDescricao, bgIdEstado) VALUES(2, 'Rio de Janeiro', 2); INSERT INTO tbCidade
(bgId, vcDescricao,
bgIdEstado) VALUES(3, 'Alameda', 3);--INSERINDO NA TABELA tbBairro INSERT INTO tbBairro(bgId,
vcDescricao, bgIdCidade) VALUES(1, 'Baeta Neves', 1); INSERT INTO tbBairro(bgId, vcDescricao,
bgIdCidade) VALUES(2, 'Mariópolis', 2); INSERT INTO tbBairro(bgId, vcDescricao, bgIdCidade)
VALUES
(3, 'River Way', 3); --INSERINDO NA TABELA tblogradouro INSERT INTO tblogradouro
(bgId, vcDescricao,
vcCep, bgIdBairro) VALUES(1, 'Rua Barretos', '09751450', 1); INSERT INTO tblogradouro
(bgId, vcDescricao,
vcCep, bgIdBairro) VALUES(2, 'Rua 1', '12345678', 2); INSERT INTO tblogradouro
(bgId, vcDescricao,
vcCep, bgIdBairro) VALUES(3, 'Wind', '12345678', 3);
Comando SELECT - SQL
Vamos agora fazer uma consulta com o comando SELECT.
Comandos INNER JOIN e WHERE - SQL
Agora vamos trazer os registros da tabela tbEstado com o nome do pais que o estado pertence. Vamos usar o comando INNER JOIN e WHERE.
Para atualizar os registros vamos utilizar o comando UPDATE. Vamos atualizar os registros da tabela tbLogradouro, para não atualizar todos os registros vamos utilizar o comando WHERE que serve para filtrar a consulta.
Comando SQL
UPDATE tbLogradouro SET
vcDescricao = 'Wind 2'
,vcCep = '04774577'
WHERE
bgId = 3
Executa o comando SELECT de novo e verifique que os dados foram alterados.
SELECT L.bgId, L.vcDescricao AS 'Rua', B.vcDescricao AS 'Bairro' FROM tbLogradouro AS L
INNER JOIN tbBairro AS B ON L.bgIdBairro = B.bgId WHERE l.bgId = 3
comandos DELETE e WHERE - SQL
Agora vamos executar nosso último comando, vamos utilizar os comandos DELETE e WHERE, utilizado para excluir os registros no SQL. Vamos tentar rodar o comando abaixo:
DELETE FROM tbBairro
A execução do comando retorna um erro, isso acontece porque os registros da tabela tbBairro estão sendo utilizados na tabela tbLogradouro. Agora vamos executar o comando abaixo:
DELETE FROM tbLogradouro WHERE bgId = 1;
DELETE FROM tbLogradouro;