일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- GUI
- 백준고양이
- 자바화면구현
- 1일1로그
- 화이자접종후기
- 백준고양이자바
- 백준구구단
- 코로나백신
- 자바공부
- 자바이벤트
- 백준10171
- 자바컴포넌트
- 포장방스터디
- 2739자바
- 백준2739
- 자바수업
- 화이자1일차
- 자바컨테이너
- 컴퓨터공부
- 백준 #백준알고리즘 #백준 Hello World #Hello World
- 화이자백신후기
- 화이자미열
- 자바
- 백준10718자바
- 자바조건문
- java
- cs지식
- 백준자바 #백준10718
- 스터디
- 자바토글버튼
- Today
- Total
Salted Caramel
[수업 24일차] 21.09.07 SQL DataBase 4 , PL/SQL 본문
[수업 24일차] 21.09.07 SQL DataBase 4 , PL/SQL
꽃무늬라떼 2021. 9. 8. 08:42PL/SQL (Procedual Language / SQL)
SQL 만으로는 구현이 어렵거나 구현 불가능한 작업을 수행하기 위해
오라클에서 제공하는 프로그램 언어를 말함.
일반 프로그래밍 언어적인 요소들을 다 가지고 있으며, 데이터베이스 업무를
처리하기 위한 최적화된 언어
변수, 조건 처리, 반복 처리 등 다양한 기능을 사용할 수 있음.
기본 구조
1) 선언부(delclare) : 모든 변수나 상수를 선언하는 부분
2) 실행부(excutable - begin) : - 실제 로직이 실행되는 부분
- 제어문(조건문), 반복문등의 로직을 기술하는 부분
3) 예외처리부(exception) : 실행 도중 예외가 발생 시 해결하기 위한
명령들을 기술하는 부분
위 기본 구조 중에서 선언부와 예외처리부는 생략이 가능하지만,
실행부는 반드시 존재(기술) 해야 함.
PL/SQL 사용 시 주의사항.
1) 기본 구조(declare, begin, exception) 키워드 뒤에는 세미콜론(;)을 붙이지 않는다.
2) 블럭의 각 부분에서 실행해야 하는 문장 끝에는 세미콜론(;)을 붙인다.
3) begin ~ end (실행부) 밑에는 반드시 "/" 를 붙여 주어야 한다.
형식)
declare
begin
end;
/
PL/SQL을 이용하여 "Hello, PL/SQL !!!"이라는 내용을 화면에 출력해 보자.
-- 화면에 출력 기능을 활성화 시켜주어야 한다.
-- 실행 결과를 화면에 출력하는 기능
set serveroutput on; -- 실행 결과를 화면에 출력
SP2-0265: serveroutput은 ON 또는 OFF로 설정되어야 합니다.
라는 문구가 나오고 실행 시키고자하는 내용을 작성해 줘야한다.
begin
dbms_output.put_line('Hello, PL/SQL !!!');
end;
/
Hello, PL/SQL !!!
PL/SQL 프로시저가 성공적으로 완료되었습니다.
==> 이때 원하는 문구가 출력이 잘되지 않은 경우
on으로 설정이 잘되지 않은 것으로 옆에 주석문 같은게 있으면 안된다.
-- 선언부(declare) 영역에 변수를 선언하는 방법
-- 1) 스칼라 자료형 - 형식) 변수명 자료형(크기)
-- 예) num number(3); / name varchar2(20);
-- 2) 레퍼런스 자료형 - 형식) 변수명 테이블명.컬럼명%type;
-- 테이블에 정의된 컬럼의 자료형과 크기를 모두 파악하고 있다면 별 문제가
-- 없겠지만, 대부분은 그렇지 못하기 때문에 오라클에서는 레퍼런스(reference)
-- 변수를 제공해 주고 있음.
-- 예) num emp.empno%type;
-- 3) rowtype
-- 테이블의 모든 컬럼을 한꺼번에 저장하기 위한 변수로 선언하는 방법.
-- 조건 제어문
-- 특장 조건식을 통해 상황에 따라 실행할 내용을 달리하는 방식의 명령어를 말함.
/* 1. if 조건문
1) if ~then : 특정 조건을 만족하는 경우에 작업을 수행.
형식) if 조건식 then
조건식이 참인 경우 실행 문장;
end if
2) if ~ then~ else : 특정 조건을 만족하는 경우와 만족하지 않는 경우에
각자 지정한 작업을 수행.
형식) if 조건식 then
조건식이 참인 경우 실행 문장;
else
조건식이 거짓인 경우 실행 문장;
end if
3) if~ then~elsif : 여러 조건에 따라 각자 지정한 작업을 수행.
형식) if 조건식1 then
조건식1이 참인 경우 실행 문장;
elsif 조건식2 then
조건식1이 거짓이고, 조건식2가 참인 경우 실행 문장;
elsif 조건식3 then
조건식1, 조건식2가 거짓이고, 조건식3가 참인 경우 실행 문장;
else
조건식1,조건식2,조건식3이 모두 거짓인 경우 실행 문장;
end if
v_avg number(5,2) :=89.12;
:= 대입연산자
2. case 조건문
형식)
case 비교 기준
when 값1 then
값1 일때 수행할 문장;
when 값2 then
값2일때 수핼할 문장;
when 값3 then
값3 일때 수행할 문장;
else
값1, 값2, 값3이 아닌 다른 값일 경우 수행할 문장.
end case;
*/
-- 2) 검색 case 예제
형식)
case
when 조건식1 then
조건식1 일때 수행할 문장;
when 조건식2 then
조건식2일때 수핼할 문장;
when 조건식3 then
조건식3 일때 수행할 문장;
else
조건식1 조건식2, 조건식3이 아닌 다른 값일 경우 수행할 문장.
end case;
반복 제어문
특정 작업을 반복하여 수행하고자 할 때 사용하는 문장.
반복 제어문의 종류
1) 기본 loop : 기본 반복문
2) while loop : 특정 조건의 결과를 통해서 반복을 수행.
3) for loop : 반복 횟수를 정하여 반복 수행.
반복문의 반복 수행을 종료시키는 명령어.
1) exit : 수행중인 반복을 종료시키는 명령어.
2) exit-when : 반복 종료를 위한 조건식을 지정하고 만족하면 반복 종료.
3) continue : 수행중인 반복의 현재 주기를 건너 뜀.
4) continue-when : 특정 조건을 지정하고 조건식을 만족하면 반복 주기를 건너뜀.
데이터 정의어(DDL :Data definition Language)
- 데이터 관리 및 보관을 위해 다양한 객체를 제공하는데 이러한 객체를
새로 만들거나 기존에 존재하던 객체를 변경하거나 삭제하는 등의 기능을
수행하는 명령어를 말함.
- 데이터 정의어를 사용 시 주의사항.
* 데이터 정의어를 실행하면 자동으로 commit이 됨.
따라서 rollback을 통한 취소는 불가능함.
데이터 정의어의 종류
1) create : 객체를 생성하는 명령어.
예) 테입블 생성, 시퀀스 생성, view 생성.
2) alter : 객체를 수정하는 명령어.
예) 테이블의 컬럼 추가, 수정, 삭제
3) drop : 객체를 삭제하는 명령어.
예) 테이블을 삭제하는 명령어.
-- test 테이블을 삭제해 보자.
-- 형식) drop 테이블 이름 purge;
-- rename : 테이블의 이름을 변경하고 싶을 때 사용하는 명령어
-- 형식) rename 기존 테이블이름 to 새로운 테이블이름
-- truncate : 테이블의 데이터를 삭제하는 명령어
-- 형식 ) truncate table 테이블이름
'coding > [2021.08.02~2022.01.24] 수업복습' 카테고리의 다른 글
[수업 25일차] 21.09.08 Java와 데이터베이스간의 연동, JDBC(Java DataBase Connectivity) (0) | 2021.09.09 |
---|---|
[수업 24일차-2] 21.09.07 Java와 데이터베이스간의 연동, JDBC(Java DataBase Connectivity) (0) | 2021.09.08 |
[수업 23일차] 21.09.06 SQL DataBase 3 (0) | 2021.09.07 |
[수업 22일차] 21. 09.03 SQL Data Base 2 (0) | 2021.09.03 |
[수업 21일차] 21.09.02 SQL DataBase -1 (0) | 2021.09.02 |