# PL/SQL
상용 관계형 데이터베이스 시스템인 오라클 DBMS에서 SQL언어를 확장하기 위해 사용되는 프로그래밍입니다.
● 변수 선언
변수명 데이터타입 := 값;
num1 number := 10;
● 상수 선언
상수명 constant 데이터타입 := 값;
num2 constant number :=20;
declare -- 변수 선언
num1 number := 10;
num2 constant number :=20;
begin
-- 쿼리문
dbms_output.put_line(num1);
dbms_output.put_line(num2);
end;
● 조건문 if문
if 조건식1 then
쿼리문
elsif 조건식2 then
쿼리문
elsif 조건식3 then
쿼리문
.....
else
쿼리문
end if
● 조건문 case 문
case
when 조건식 then
쿼리문;
when 조건식 then
쿼리문;
...
● 반복문 loop 문
loop
쿼리문;
exit when 조건식;
end loop
while 문
while 조건
loop
쿼리문;
end loop
● for 문
for 변수 in 초기값.. 최종값
loop
쿼리문;
end loop;
# 저장 프로시저(Stored Procedure)
자주 사용하는 SQL 을 프로시저로 만든 뒤 필요할 때마다 호출, 사용하여 작업 효율을 늘릴 수 있습니다. 함수는 특정 연산을 수행한 뒤 결과 값을 반환하지만, 프로시저는 특정한 로직을 처리하기만 하고 결가 값은 항상 리턴되는 것은 아닙니다. 만약 반환한다면 불러준 객체쪽으로 output 객체를 리턴합니다.
# 문장의 집합
- 성능향상(첫 실행시 컴파일, 재컴파일 하지 않음)
- 보안강화(저장 프로시저 마다 권한 할당)
- 네트워크 전송량 감소(긴 쿼리가 이동할 필요가 없음)
1. 매개변수가 없는 경우
create procedure 프로시저이름
is
변수 선언
..
begin
쿼리문;
end;
exec 프로시저이름;
2. 매개변수가 있는 경우
3. 리턴값이 있는 경우
'🌏 DataBase > MySQL' 카테고리의 다른 글
[DB] JOIN 정리 ( INNER / LEFT / RIGHT ) (0) | 2021.06.25 |
---|---|
[DB] Subquery (서브쿼리) 사용법 / select문 안에 select문 (0) | 2021.03.24 |
[DB] 12. 뷰(VIEW) (Feat.Oracle) (0) | 2020.11.05 |
[DB] 11. JPA(Java Persistent API) (Feat.Oracle) & Entity (0) | 2020.11.05 |
[DB] 10. ResultSet & PreparedStatement 클래스 (0) | 2020.10.12 |