MySQL-- 프로 시저, 로컬 변수 및 사용자 변수 [@ (초기 이해)


      데이터베이스에 대한 자세한 내용은 ~ ~주의 요를 추가하십시오. : 블로거 접촉 가보 주요 개인 문자 나 연락 주시기 바랍니다
      QQ를 : 3327908431
      마이크로 편지 : ZDSL1542334210를

        서문 : 저장 프로 시저, 환상적인 방법은 MySQL을 저장 프로 시저를 배울하지 배울 수 있습니다 완료되지, 그것은 어디 정말 마법? 오늘의 문 블로거는 비밀 저장 프로 시저에 당신을 데려 갈 ... 에헴 ... 난 내가 *를 설치 한 것을 인정한다. 블로거는 자신의 함수로 이해된다 지적! 내 발자취를 천천히 앞으로 따르십시오 ~~

1. 무엇 저장 프로 시저입니다

1.1 정의 및 저장 프로 시저의 역할

        업무의 효율성을 향상, 작업 중에 오류를 줄이고, 2, 1, 합리화 작업을 중복 단계를 줄일 : 또는 저장 프로 시저가 여러 SQL 문 세트가, 저장 프로 시저가 우리에게 도움이 될 수 있습니다. 그래서 저장 프로 시저에 유용합니다, 당신은 배우고 가능한 한 많이 사용한다. 블로거 자체는 자체 기능으로 이해하지만, 다양한 기능을 가진 다른에서 함수를 호출하기 전에 자기 또는 패키지 후에 실행하는 동안이 직접 MySQL의 내부에 직접 사용할 수 저장할 수 있다는 것입니다.

1.1 설정 및 저장 프로 시저를 조회하는

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

        해석 : '구분자 //'기호는 '//'로 MySQL의 최종 세트입니다. MySQL의 기본 문 종료 기호 때문에 ';', 그리고 회피 SQL 문 종료 충돌을 위해 보관시, 그리고 저장 프로 시저의 '끝 //'끝 'DELIMITER'변화의 끝 문자 저장 프로 시저가 필요합니다. 저장 프로 시저의 완료는 사용하여 정의 된 후 '구분 기호를,'기본 터미네이터를 복원합니다.
        저장 프로 시저를 만들기 : create procedure <存储过程名称> (in a int, in b int) # 输入参数a和b,且指定为整型(가) 함수 문 내부 ... 말 쓰기 코드를 시작합니다. 저장 프로 시저를 작성하는 단지 전화 '전화'. 물론, 저장 프로 시저를 삭제해야하지 않는 경우 drop procedure <你创建存储过程的名称>. 당신은 당신의 현재 데이터베이스에 저장 프로 시저를 만들 Stored Procedures내부 :
그림 삽입 설명 여기

2, 로컬 변수 및 사용자 변수

2.1 로컬 변수

        이 변수에 할당 된 값에 대한 방법이지만, 단지 SQL 문에서 함수는 당신이 달성하려는 것을 선언하고, 시작됩니다 ... 코드의 마지막 블록을 서브 프로그램에 사용할 수 있습니다. 변수에 할당 (기억 단지 시작 ... 최종 내부 사용을, 입으로 사용할 수 없습니다에서) :

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

2.2 변수

        방법은 클라이언트 정의 변수와 관련된 사용자 변수 및 링크가 볼 수없는 또는 공동의 변수 인 다른 클라이언트를 사용하여, 또한 변수 할당입니다. 클라이언트가 종료, 모든 변수가 연결되면 클라이언트는 자동으로 해제됩니다. 즉, 변수에 할당 될 수있다,이 시작되지 ... 코드 제한 엔드 블록, 로컬 변수 및 조작 방법이 다른 폼, 그것은 "@var_name"형태 정의하지 않아도 선언한다. 할당 :

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

        이론적 지식 완료, 어디 지구 내부에 묻혀있는 진주를 발견하는 지점에서 침식이 적용되지 않습니다?

3 섹션 제목

제 목 : 나는 두 숫자의 추가를 완료하기 위해 저장 프로 시저의 동일한 기능과 합계 함수를 작성

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

제목 II는 : 세 번째 수를 차감하여 두 숫자의 추가를 완료하기 위해 저장 프로 시저를 작성 해주세요

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

제목 세 (OUT 매개 변수) : 세 번째 번호로 두 숫자 OUT의 추가의 완료 후, 저장 프로 시저를 작성 해주세요

-- 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

        매개 변수와 할당 방법은 두 개 이상의 매개 변수와 동일하지 않습니다에서 그냥 아웃 매개 변수에, 거기에 지정된 출력 사용, 매개 변수가 아웃으로 선언하고 정의 할 필요가 없습니다, 볼 수있는 것은 최종 출력됩니다.

4 용지 계란의 끝 - 쉬운 순간

        정말라는 시누이, 그가 그녀의 아이를 모유 수유를이 시간에 밝은 형제, 자매 사위 톱으로 그들을 집으로 가져 갔다 있도록이, 그냥 건국 기념일 음, 컵스와 시누이를보기 위해 그의 집에 가기 전에 하루지나 아니라, 이제 좋은 수확을 약속하는 사람들 우리는 예의에서, 그것은 밝은 형제를 먹을 수 컵스는 말린 과일 얻을, 따라서 그것은 아이의 얼굴을 만지고 그에게 와서 말했다 : 다음 "아기 좋은 소년, 아주 좋은 피부 좋은를, 빛나는!" 정말 좋은 피부가 아주 흰색이다 "아이들이 거기에 얼굴을 잠 ..."그리고 나는 그것을 보았다 ... 내 형수는 얼굴을 붉혔다 속삭

       MySQL의 지식에 대해 더 배우고 편안한 순간 요 ~ 플러스 관심 - 오늘 요 // 각 기사가 마지막 계란을 가지고 여기 종료합니다! 시청 해 주셔서 감사합니다, 나는 Jetuser 데이터이었다

링크 : [https://blog.csdn.net/L1542334210]
CSND : L1542334210
그림 삽입 설명 여기
나는 당신의 모든 성공을 기원합니다! 가족의 즐거운 시간!

게시 29 개 원래 기사 · 원 찬양 53 ·은 30000 +를 볼

추천

출처blog.csdn.net/L1542334210/article/details/102385593