절차형 SQL
SQL문의 연속적인 실행이나 조건에 따른 분기처리를 이용해 특정 기능을 수행하는 저장 모듈을 생성ㅇ할 수 있도록 하는 SQL
- ORACLE은 PL/SQL
DB2는 SQL/PL
SQL Server는 T-SQL
PL/SQL[Procedural Language]
Oracle에서 만든 절차적 프로그래밍이 가능한 트랜잭션 언어
- Block내에 DML문, QUERY문, 절차형언어(IF,LOOP) 등을 사용 가능
- 변수와 상수 등을 사용해 일반 SQL문을 실행할 때 WHERE절의 조건 등으로 대입 가능
- Procedure, User Ddfined Function, Trigger 객체를 PL/SQL로 작성 가능
- PL/SQL로 작성된 Procedure, User Defined Function은 작성자가 트랜잭션 분할 가능
- Procedure 내에서 다른 Procedure 호출시 호출 프로시저의 트랜잭션과는 별도로 자율 트랜잭션 처리 가능
→ PRAGMA AUTOMOUS_TRANSACTION
PL/SQL 특징
- Block 구조로 되어있어 각 기능별로 모듈화 가능
→ 여러 SQL문장을 Block으로 묶어서 한번에 전부 서버로 보내므로 통신량을 줄일 수 있음
- 변수, 상수 등을 선언하여 SQL문장 간 값을 교환 가능
- IF, LOOP 등의 절차형 언어를 사용해 절차적인 프로그램이 가능하도록 함
- DBMS 정의 에러나 사용자 정의 에러를 정의해 사용 가능
- Oracle에 내장되어 있어 Oracle과 PL/SQL을 지원하는 어떤 서버로도 프로그램을 옮길 수 있음
- 응용 프로그램의 성능을 향상시킴
PL/SQL 구조
- DECLARE : BEGIN~END절에서 사용될 변수와 인수에 대한 정의 및 데이터 타입을 선언하는 선언부
- BEGIN ~ END : 처리하고자 하는 SQL문과 여러 가지 비교문, 제어문을 이용해 필요한 로직을 처리하는 실행부
- EXCEPTION : BEGIN~END절에서 실행되는 SQL문이 발생하는 에러를 어떻게 처리할 것인지 정의하는 예외 처리뷰
T-SQL
SQL Sever를 제어하기 위한 언어
- MS사에서 ANSI/ISO 표준의 SQL에 약간의 기능을 더 추가해 만든 것
T-SQL의 프로그래밍 기능
- 변수 선언 기능
→ @@이라는 전역변수와 @라는 지역변수 존재
→ 전역 변수 : 이미 SQL에 내장된 변수
→ 지역 변수 : 사용자가 자신의 연결 시간동안만 사용하기 위해 만들어지는 변수
- 데이터 유형을 제공
→ INT, FLOAT, VARCHAR 등
- 연산자 사용 가능
→ 산술연산자[ +,-,*,/ ]와 비교연산자[ =, <, >, <> ]와 논리연산자[AND, OR, NOR] 사용 가능
- 흐름제어기능
→ IF~ELSE와 WHILE, CASE-THEN 사용 가능
- 주석 기능
→ 한 줄 주석 : -- 내용
여러 줄 주석 : /* 내용 */
T-SQL 구조
- DECLARE : BEGIN ~ END 절에서 사용될 변수와 인수에 대한 정의 및 데이터 타입을 선언하는 선언부
- BEGIN ~ END : 처리하고자 하는 SQL문과 여러 가지 비교문, 제어문을 이용하여 필요한 로직을 처리하는 실행부
→ BEGIN, END 문을 반드시 사용해야하는 것은 아니지만 블록 단위로 처리하고자 할 때는 반드시 작성
- ERROR 처리 : BEGIN ~ END 절에서 실행되는 SQL문이 발생하는 에러를 어떻게 처리할 것이지를 정의하는 예외 처리부
댓글 영역