Í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
[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 ->
CALL 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.
[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