저장 프로시저란 무엇인가요?
저장 프로시저는 실행 가능한 개체로 데이터베이스에 저장된 하나 이상의 SQL 명령입니다.
일반인의 관점에서 보면 저장 프로시저는 실제로 특정 작업을 완료할 수 있는 SQL 문 집합입니다.
그럼 저장 프로시저를 사용하는 이유는 무엇입니까?
1. 저장 프로시저는 생성될 때만 컴파일됩니다. 일반적으로 SQL 문은 실행될 때마다 다시 컴파일할 필요가 없습니다. 데이터베이스의 실행 속도를 향상시킵니다.
2. 데이터베이스에서 복잡한 작업을 수행할 때 복잡한 작업을 저장 프로시저에 캡슐화하고 데이터베이스에서 제공하는 트랜잭션 처리와 함께 사용할 수 있습니다.
3. 저장 프로시저를 재사용할 수 있어 데이터베이스 개발자의 작업량을 줄일 수 있습니다.
4. 높은 보안, 특정 사용자만 지정된 저장 프로시저를 사용할 권한을 갖도록 설정할 수 있습니다.
저장 프로시저를 사용하는 방법은 무엇인가요?
다음은 저장 프로시저에 대해 알아보기 위해 Student 테이블을 사용합니다. 저장 프로시저의 간단한 사용법을 이해하고 싶기 때문에 모든 예는 매우 간단합니다.
매개변수가 없는 저장 프로시저:
Student 테이블에서 모든 정보를 선택합니다.
create proc StuProc as //此处 as 不可以省略不写 begin //begin 和 end 是一对,不可以只写其中一个,但可以都不写 select S#,Sname,Sage,Ssex from student end go
매개변수가 있는 저장 프로시저:
전역 변수
전역 변수는 함수 외부에서 정의되며, 범위는 변수가 정의된 위치에서 시작하여 프로그램 파일의 끝에서 끝납니다.
지정된 이름의 학생정보 선택:
create proc StuProc @sname varchar(100) as begin select S#,Sname,Sage,Ssex from student where sname=@sname end go exec StuProc '赵雷' //执行语句
위는 외부에서 변수에 값을 할당하는 것이고, 아니면 내부적으로 변수의 기본값을 직접 설정할 수도 있습니다
create proc StuProc @sname varchar(100)='赵雷' as begin select S#,Sname,Sage,Ssex from student where sname=@sname end go exec StuProc
변수의 내용을 출력하려면 출력을 사용하면 됩니다
create proc StuProc @sname varchar(100), @IsRight int output //传出参数 as if exists (select S#,Sname,Sage,Ssex from student where sname=@sname) set @IsRight =1 else set @IsRight=0 go declare @IsRight int exec StuProc '赵雷' , @IsRight output select @IsRight
위는 전역 변수이고, 로컬 변수에 대해 알아보겠습니다
로컬 변수는 내부 변수라고도 합니다. 지역 변수는 함수 내에서 정의됩니다. 그 범위는 함수 내부로 제한되며, 함수를 떠난 후에 그러한 변수를 사용하는 것은 불법입니다.
지역 변수 정의: 사용하기 전에 Declare 명령으로 설정해야 합니다. 선언{@변수 이름 데이터 유형}
지역 변수 할당 방법: set{@variable name=expression} 또는 select{@variable name=expression}
지역변수 표시: select @variable name
create proc StuProc as declare @sname varchar(100) set @sname='赵雷' select S#,Sname,Sage,Ssex from student where sname=@sname go exec StuProc
지역변수의 데이터를 표시하고 싶다면?
create proc StuProc as declare @sname varchar(100) set @sname=(select Sname from student where S#=01) select @sname go exec StuProc