Índice
Os procedimentos armazenados são muito úteis para encapsular operações de banco de dados e economizar tempo de desenvolvimento.Quando você precisa manter um banco de dados com muitas transações e alguma confidencialidade, pode ter uma equipe de desenvolvedores que faz o código sem saber como é o banco de dados.
Para isso, usaremos procedimentos armazenados
Exemplo
Criamos uma base de dados para uma imobiliária e uma tabela para uma imobiliária (usamos poucos campos para não gerar código extenso e confuso)
CRIAR TABELA SE NÃO EXISTIR `real estate` (` id` int (11) NOT NULL AUTO_INCREMENT, `furnituretype` varchar (100) DEFAULT '0',` price` decimal (10,2) DEFAULT '0.00', `description` texto, PRIMARY KEY (`id`)) ENGINE = MyISAM AUTO_INCREMENT = 195 DEFAULT CHARSET = latin1;
Eu crio um procedimento armazenado nova propriedade para inserir as propriedades no banco de dados. Ao defini-lo atribuo como parâmetro os dados que ele deve aceitar, neste caso propriedade, preço e descrição, cada um com seu formato mysql, também escrevo a ação INSERT
Em seguida, criamos um formulário de registro de dados html para inserir os valores das novas propriedades.
[color = # 000000] Aqui enviamos as informações para um arquivo save.php que chamará o procedimento armazenado e salvará os dados. [/ color]
[color = # 000000] Para fazer isso, devemos ter criado anteriormente o código de conexão do banco de dados. [/ color]
[color = # 000000] Criamos um arquivo config.php [/ color]
<? php
// String de conexão de banco de dados
$ link = mysql_connect ('localhost', 'usuário', 'senha');
// conexão de banco de dados
if (! $ link) {
die ('Não conectado:'. mysql_error ());
}
// Selecionar banco de dados
$ db = 'dbInmobiliaria';
if (! mysql_select_db ($ db)) {
die ('Erro:'. mysql_error ());
}?> var13 ->
Na imagem, podemos ver como o procedimento armazenado é chamado por meio da instrução SQL LIGARCALL newinmueble (parâmetro1, parâmetro2, …)
Criamos outro procedimento armazenado no banco de dados para consultar por tipo de propriedade.CRIAR lista de móveis do procedimento (tipo varchar (150))
[recuo = 1]SELECT * FROM propriedade WHERE propriedade LIKE typeAlém de usá-lo em php, podemos fazer a consulta de qualquer software que suporte sql e mysql neste caso.
Testamos a lista de propriedades do procedimento armazenado por tipo, neste caso, do software de gerenciamento mysql Heidisql
LIGUE para a lista de móveis ('casa')
O resultado pode ser visto a seguir, pois foi filtrado por tipo de propriedade.
Também podemos criar um procedimento armazenado para deletar dados, onde enviaremos o id como um parâmetro
[color = # 000000] CREATE procedure delete property (id propriedade INT) [/ color]
[cor = # 000000]SELECT * FROM imóveis WHERE id = id de imóveis[/Cor]
Em seguida, chamamos o procedimento armazenado da seguinte forma
CALL excluir propriedade (172)
O interessante disso é que se fôssemos administradores de banco de dados de um sistema muito complexo, poderíamos disponibilizar aos programadores apenas a lista de procedimentos e não a estrutura do banco de dados, o que proporciona maior confidencialidade.
Permitindo que eles interajam com os dados, mas não com a estrutura, mesmo que eles possam apenas ler, mas não modificar. Isso seria um problema para grandes sistemas de banco de dados com muitas pessoas interagindo, onde a segurança e a confidencialidade são importantes.
Os bancos de dados mais populares que suportam procedimentos armazenados são mysql, firebird, servidor ms sql, oracle, db2 postgresql, sybase (primeiro a criar uma linguagem de transação de banco de dados para sql chamada Transact-SQL).Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo