MySQL-- procedimentos armazenados, variáveis locais e variáveis de usuário [@] (entendimento inicial)


      Para mais informações sobre o banco de dados, adicione a atenção yo ~ ~. Para os blogueiros por favor contacte Gabor principal carta particular ou contato:
      QQ: 3327908431
      micro carta: ZDSL1542334210

        Prefácio: procedimentos armazenados, uma maneira fantástica para aprender a não aprender procedimento armazenado MySQL não está completa, então ele realmente mágico Onde? bloggers declaração de hoje levá-lo para os procedimentos secretos armazenados ... Aham ... Eu admito que eu tenho instalado o *. Bloggers salientar é entendida como uma função de auto! Por favor, siga meus passos lentamente chegando ~~

1. O que é um procedimento armazenado

1.1 Definição e papel do procedimento armazenado

        Ou procedimento armazenado é um conjunto de várias instruções SQL, procedimentos armazenados pode nos ajudar: 1, as operações de aerodinâmica, reduzir etapas redundantes, 2, reduzir os erros durante a operação, melhorar a eficiência do trabalho. Então procedimento armazenado é útil, você deve aprender e usá-lo tanto quanto possível. Bloggers-se entendido como uma função de auto, mas com funções diferentes e de diferente é que ele pode ser salvos diretamente a ser usado diretamente no MySQL dentro, enquanto a função foi executada após a auto ou pacote antes de chamar.

1.1 Estabelecimento e recuperar procedimento armazenado

delimiter //  #  实现两个整数相加的存储过程
create procedure test(in a int, in b int)  #创建存储过程
begin
   <你想要实现的SQL功能语句>
end //
delimiter ;
call test(2, 3); # 调用存储过程   

        Interpretação: 'delimitador //' símbolo é um conjunto final MySQL para '//'. Porque MySQL declaração padrão símbolo terminator ';', e durante o armazenamento, a fim de evitar SQL conflitos Instrução Terminator precisa 'DELIMITER' procedimento de caráter armazenados mudança final, e '// end' fim do procedimento armazenado. Após conclusão do procedimento armazenado é definido utilizando uma 'delimitador;' restaurar o terminador padrão.
        Criar um procedimento armazenado: create procedure <存储过程名称> (in a int, in b int) # 输入参数a和b,且指定为整型No início ... escrever end seu código dentro da instrução função. 'Chamar' para chamar apenas para escrever procedimentos armazenados. Claro que, se o procedimento armazenado não precisa ser excluído drop procedure <你创建存储过程的名称>. Você cria um procedimento armazenado no banco de dados atual Stored Proceduresdentro:
Aqui Insert Picture Descrição

2, variáveis ​​locais e variáveis ​​de usuário

2.1 As variáveis ​​locais

        É uma maneira de valores atribuir a variáveis, mas só pode ser declarado e utilizado no subprograma, ou seja, começar ... bloco final do código, que funciona em instruções SQL que você deseja alcançar no. Atribuí-la a uma variável (lembre-se só começam ... end utilização no interior, a partir da boca não pode usar):

a. 使用set语句为变量赋值:
declare test int;  # 介入一个赋值变量test
set test = 1 + 2# 对该变量进行传值
b. 使用selectinto为变量赋值:
declare test int# 介入一个赋值变量test
select 1 + 2 into test; # 对该变量进行传值

2.2 variáveis ​​de usuário

        O método também é uma atribuição de variável, variáveis ​​de usuário e links relacionados a um variáveis ​​definidas pelo cliente não pode ser visto ou usar outros clientes, que é o nosso comum variável. Quando as saídas do cliente, todas as variáveis ​​ligadas clientes será automaticamente liberado. Especificamente, deve ser atribuído a uma variável, não é começar ... bloco de fim do limite de código, variáveis ​​locais e métodos de intervenção formar diferente, é uma forma de "@var_name", não precisa declarar definido. Atribuído para:

a. 使用SET语句为变量赋值:
set @test = 1 + 2;
select @test;
b. 使用selectinto为变量赋值:
select 1 + 2 into @testselect @test;

        Terminado o conhecimento teórico, não está sujeito à erosão no ponto, onde encontrar as pérolas enterradas dentro da terra?

3, a secção título

Um Título: Eu escrevo a mesma função e função de soma de um procedimento armazenado para completar a adição de dois números

delimiter //    # 法一 用户变量
create procedure sums(in a int,in b int)
begin
    select a+b into @sumvalue; #这里是用户变量,看“@”符号
    select @sumvalue;
end //
delimiter ;
call sums(32,32); # 调用存储过程
-- -----------------------------------------------------------------------------
delimiter //    # 法二 局部变量
create procedure sumss(in a int,in b int)
begin
	declare valus int
    select a+b into valus; #这里是局部变量,无“@”符号
    select valus;
end //
delimiter ;
call sumss(32,32); # 调用存储过程
# 结果为:64

Título II: Por favor, escreva um procedimento armazenado para completar a adição de dois números subtraindo-se o terceiro número

delimiter //   
create procedure texts(in a int,in b int,in c int)
begin
    select (a+b)/c into @sumvalue; #这里是用户变量,看“@”符号
    select @sumvalue;
end //
delimiter ;
call texts(2,4,6); # 调用存储过程
# 结果为:
1.00

Título três (parâmetro OUT): Por favor, escreva um procedimento armazenado, após a conclusão da adição de dois números para o terceiro número

-- out类型参数
delimiter //
create procedure outtest(in a int, in b int, out c int)
begin
	select a+b into c;
	-- select c;
end //
delimiter ;
call outtest(3,3,@c);
# 结果为
6

        Você pode ver, os parâmetros e método de atribuição não é o mesmo que dois ou mais parâmetros, os parâmetros não precisam ser declarados fora e definido, é só usar a especificada nele, no parâmetro de saída é a saída final.

4, o fim dos ovos de papel - fácil momento

        Realmente que promete uma boa colheita Agora, isso não é apenas passado Dia Nacional Bem, o dia antes de ir para a sua casa para ver o Cubs e irmã-de-lei, então ele foi para trazê-los para casa com o irmão brilhante, irmã-de-lei serra neste momento para amamentar o seu filho, irmã-de-lei chamada Cubs obter frutos secos para nós para comer, então é irmão brilhante por cortesia, e assim veio a ele para tocar o rosto da criança, disse: então "bebê bom menino, brilhante pele agradável, muito bom,!" minha irmã-de-lei corou e sussurrou: "as crianças dormiram, cara ali ..." e então eu vi, muito bom pele é muito branca ...

       Hoje para terminar aqui yo // cada artigo tem o fim do ovo - relaxado momento yo ~ acrescido de juros de aprender mais sobre o conhecimento MySQL! Obrigado por assistir, eu estava Jetuser-dados

Links: [https://blog.csdn.net/L1542334210]
CSND: L1542334210
Aqui Insert Picture Descrição
Desejo-lhe todo o sucesso! diversão em família!

Publicado 29 artigos originais · ganhou elogios 53 · vê 30000 +

Acho que você gosta

Origin blog.csdn.net/L1542334210/article/details/102385593
Recomendado
Clasificación