안녕하세요. SQLER의 코난 김대우입니다. 
이번 강좌에서는, 8-3. 저장 프로시저 - 매개변수(파라미터)를 진행 하겠습니다.


SQLER에서 진행되는, 챗GPT와 함께 배우는 SQL Server 강좌 목록

 

이번에 진행할 강좌는 저장 프로시저 매개변수(파라미터 - Parameter)입니다.

 

 

 

TL;DR

저장 프로시저 파라미터 강좌입니다. 저장 프로시저에서 일반 함수처럼, 파라미터를 적용하는 방법을 소개합니다. 데이터 삽입 및 수정을 파라미터를 활용하여 수행하는 방법도 설명합니다.



SQL Server 공식 문서는 Parameter의 번역인 매개변수이지만, 국내 현업에서 더 많이 사용되는 파라미터로 내용을 진행합니다.

프로그래밍 언어의 함수처럼, 저장 프로시저 역시 파라미터를 이용합니다. 
일반적으로 사용되는 SQL 쿼리를 생각해 보겠습니다. 

 

SELECT 컬럼 FROM 테이블 WHERE 컬럼 = 비교값


주로, 이렇게 실행합니다.


하지만 지금까지 진행한 저장 프로시저는 위와 같은 비교값 파라미터를 받을 수 없는 저장 프로시저만 생성하고 실행했습니다. 이제 파라미터를 받아 저장 프로시저의 기능을 확장해 보도록 하겠습니다.

 

 
저장 프로시저 파라미터

-- 저장 프로시저 생성
CREATE PROC pEmployeeDisp
@emp_num INT  -- 파라미터 입력
AS
SELECT emp_num, emp_name, email FROM Employee
WHERE emp_num = @emp_num;  -- 파라미터를 WHERE 조건에 적용
GO

-- 저장 프로시저에 파라미터 실행
EXEC pEmployeeDisp 2;
GO

EXEC pEmployeeDisp 3;
GO

 

지난 강좌에서 생성한 저장 프로시저와 유사한 프로시저를 생성합니다. 다른 점은 이렇게 파라미터로 직원번호(emp_num)를 받아서, 해당 직원번호를 가진 직원의 정보를 출력합니다.
직원 번호가 2인 손석구 님과 3번인 박은빈 님이 파라미터에 따라 출력됩니다.

 

 

저장 프로시저 - 문자열 파라미터

숫자형 뿐만 아니라, 문자열형, datetime형 등 다양한 형식을 파라미터로 넘기고 저장 프로시저 구문에서 사용할 수 있습니다.
 

-- 저장 프로시저 생성
CREATE PROC pEmployeeDispEmail
@email NVARCHAR(15)  -- 문자열 이메일 파라미터 입력
AS
SELECT emp_num, emp_name, email FROM Employee
WHERE email like @email;  -- 파라미터를 WHERE 조건에 적용
GO

-- 저장 프로시저에 문자열 파라미터 실행
EXEC pEmployeeDispEmail N'peb@example.com';
GO

EXEC pEmployeeDispEmail N'ssk@example.com';
GO

-- ssk로 시작하는 문자열 검색
EXEC pEmployeeDispEmail N'ssk%';
GO

 

이렇게 문자열을 저장 프로시저 파라미터로 넣을 수도 있습니다.

 


저장 프로시저 - 데이터 삽입

저장 프로시저로 데이터 삽입이나 수정도 가능합니다.

-- INSERT 저장 프로시저 생성
CREATE PROC pEmployeeIns
@emp_num INT
, @emp_login_pwd NVARCHAR(15)
, @emp_name NVARCHAR(10)
, @email NVARCHAR(15)
, @emp_salary BIGINT
AS
INSERT INTO Employee(emp_num, emp_login_pwd, emp_name, email, emp_salary)
VALUES(@emp_num, @emp_login_pwd, @emp_name, @email, @emp_salary);
GO

-- 저장 프로시저로 INSERT 수행
EXEC pEmployeeIns 4, N'password1', N'김우빈', N'kwb@example.com', 120000000;
GO

SELECT * FROM Employee
GO

 

INSERT 저장 프로시저 역시 어렵지 않습니다. 입력할 값을 파라미터로 받고, INSERT 구문의 VALUE에 지정하면 됩니다.

 

 

저장 프로시저 - 데이터 UPDATE

-- UPDATE 저장 프로시저 생성
CREATE PROC pEmployeeUdt
@emp_num INT
, @emp_salary BIGINT
AS
UPDATE Employee SET emp_salary = @emp_salary
WHERE emp_num = @emp_num;
GO

-- 직원 번호가 4번인 직원의 연봉을 130000000으로 UPDATE
EXEC pEmployeeUdt 4, 130000000;
GO

SELECT * FROM Employee WHERE emp_num = 4;
GO

 

UPDATE도 같습니다. 파라미터로 필요한 정보를 받아 업데이트하면 됩니다.
 

 

SQL 강좌 책 구매

강좌가 도움이 되셨다면, 책으로 구매 가능합니다. 책 판매 수익금은 전액 코딩 교육 사회공헌 활동에 기부되며, 아래 링크에서 구매하시면 더 많은 금액이 기부됩니다. 

 

책구매 링크: 챗GPT와 함께하는 마이크로소프트 SQL Server 2022 

책구매링크.png

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 20253
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 12147
» SQL강좌: 8-3. 저장 프로시저 - 매개변수(파라미터) 코난(김대우) 2023.08.18 41
2273 SQL강좌: 8-2. 저장 프로시저 - 생성과 실행 코난(김대우) 2023.08.18 39
2272 SQL강좌: 8-1. 저장 프로시저(Stored Procedure) - 소개 코난(김대우) 2023.08.18 49
2271 SQL강좌: 7-10. 실무에서 뷰 사용 코난(김대우) 2023.08.18 29
2270 SQL강좌: 7-9. 인덱싱된 뷰(Indexed View) file 코난(김대우) 2023.08.18 30
2269 SQL강좌: 7-8. 분할 뷰(Partitioned View) file 코난(김대우) 2023.08.18 24
2268 SQL강좌: 7-7. 뷰에서 데이터 수정 코난(김대우) 2023.08.18 25
2267 SQL강좌: 7-6. 뷰에서 뷰 생성 코난(김대우) 2023.08.18 25
2266 SQL강좌: 7-5. 뷰 옵션 코난(김대우) 2023.08.18 18
2265 SQL강좌: 7-4. 뷰 삭제 코난(김대우) 2023.08.18 11
2264 SQL강좌: 7-3. 뷰 수정 코난(김대우) 2023.08.18 26
2263 SQL강좌: 7-2. 뷰 생성 file 코난(김대우) 2023.08.18 25
2262 SQL강좌: 7-1. 뷰(VIEW) 소개 코난(김대우) 2023.08.18 33
2261 SQL강좌: 6-9. 데이터 무결성 - 데이터 무결성 주의사항 file 코난(김대우) 2023.08.18 35
2260 SQL강좌: 6-8. 데이터 무결성 - 트리거(TRIGGER) file 코난(김대우) 2023.08.18 58
2259 SQL강좌: 6-7. 데이터 무결성 - 사용자 정의 형식(User-Defined Type - UDT) 코난(김대우) 2023.08.18 22
2258 SQL강좌: 6-6. 데이터 무결성 - 기본값(DEFAULT) file 코난(김대우) 2023.08.18 15
2257 SQL강좌: 6-5. 데이터 무결성 - 규칙(RULE) 코난(김대우) 2023.08.18 27
2256 SQL강좌: 6-4. 데이터 무결성 - 체크 제약(CHECK Constraint) file 코난(김대우) 2023.08.18 30
2255 SQL강좌: 6-3. 데이터 무결성 - 기본 키(Primary Key) 제약, UNIQUE 제약, 외래 키(Foreign Key) 제약 file 코난(김대우) 2023.08.18 46





XE Login