Exemplo de como criar uma View no MySQL. (Virtual Tables)
MySQL, SQL Comentar >> Marcelo KorjenioskiNeste Post irei mostrar como criar uma View para agilizar sua vida na hora de liberar consultar especificas sem ter medo dos usuários matem o banco na hora de criar uma consulta já conhecida.
Alguns benefícios das Views são:
Segurança no acesso de dados das tabalas.
Otimização das consultas.
A sintaxe basica para criar uma VIEW:
CREATE VIEW view_name AS select_statement
Para efetuar a consulta da VIEW é semelhande a consulta de uma TABLE:
SELECT fields FROM view_name
Neste exemplo vamos criar duas tabelas para executar nossa VIEW.
Uma tabela com clientes e outra com a movimentação de caixa deste cliente.
Copie o código abaixo e execute no banco de dados.
// Verifica se tabela existe. Caso Exista ele remove.
GO
DROP TABLE IF EXISTS tb_cliente;
// Caso a tabela não exista ele cria uma tabela.
GO
CREATE TABLE IF NOT EXISTS tb_cliente (
pk_cliente int(10) AUTO_INCREMENT NOT NULL PRIMARY KEY,
nome varchar(60) not null,
cpf varchar(20) not null unique
) Engine =InnoDB;
//------------------------------------------------------------
// Insere os dados na tabela
GO
INSERT INTO tb_cliente (nome, cpf)
VALUES
('Joao', '12345678910'),
('Paulo', '12345678911'),
('Marcelo', '12345678912'),
('Gabriel', '12345678913'),
('Julio', '12345678914')
//------------------------------------------------------------
// Caso a tabela não exista ele cria uma tabela.
GO
DROP TABLE IF EXISTS tb_movimentacao;
// Caso a tabela não exista ele cria uma tabela.
GO
CREATE TABLE IF NOT EXISTS tb_movimentacao (
pk_saldo int(10) AUTO_INCREMENT NOT NULL PRIMARY KEY,
fk_cliente int(10) NOT NULL,
saldo decimal(10,2),
dt_cadastro timestamp default current_timestamp,
CONSTRAINT fk_cliente FOREIGN KEY (fk_cliente) REFERENCES produtos (pk_cliente)
)
//------------------------------------------------------------
// Insere os dados na tabela
GO
INSERT INTO tb_movimentacao (fk_cliente,saldo,dt_cadastro)
VALUES
(1,42, ADDDATE( CURDATE(), INTERVAL 1 DAY)),
(1,51, ADDDATE( CURDATE(), INTERVAL 2 DAY)),
(2,23, ADDDATE( CURDATE(), INTERVAL 1 DAY)),
(3,52, ADDDATE( CURDATE(), INTERVAL 1 DAY)),
(3,68, ADDDATE( CURDATE(), INTERVAL 2 DAY)),
(3,85, ADDDATE( CURDATE(), INTERVAL 3 DAY)),
(4,82, ADDDATE( CURDATE(), INTERVAL 1 DAY)),
(5,110,ADDDATE( CURDATE(), INTERVAL 1 DAY)),
(5,109,ADDDATE( CURDATE(), INTERVAL 2 DAY)),
(5,116,ADDDATE( CURDATE(), INTERVAL 3 DAY)),
(5,129,ADDDATE( CURDATE(), INTERVAL 4 DAY))
Agora vamos criar uma VIEW para efetuar a consulta de movimentação do cliente.
Para isso vamos usar as duas tabelas para a consulta da VIEW.
// Caso a VIEW não exista ele cria uma tabela. GO DROP VIEW IF EXISTS viewMovimentacao; GO CREATE VIEW viewMovimentacao AS SELECT tb_cliente.pk_cliente AS fk_cliente, tb_cliente.nome AS nome, tb_cliente.cpf AS cpf, tb_movimentacao.saldo AS saldo, tb_movimentacao.dt_cadastro AS dt_cadastro FROM tb_cliente INNER JOIN tb_movimentacao ON (pk_cliente = fk_cliente)
Executa a View.
// Efetua consulta View GO SELECT fk_cliente,nome,cpf,saldo,dt_cadastro FROM viewMovimentacao
Caso tenha alguma duvida deixe um comentário que terei prazer em ajudar.
Comentários são bem vindos assim posso melhorar a qualidade dos tutoriais aqui apresentados.
-
Alex sandro
-
http://www.phaneronsoft.com Marcelo Korjenioski
-
Anezio
-
Bunz
-
Sandro lima
