Transcript 슬라이드 제목 없음
3장 오라클
제
3.1 오라클 개요
3.2 오라클 설치 및 수행
3.3 환경 설정
3.4 PL/SQL
연습문제
3.3 환경 설정
Oracle SQL Developer
데이터베이스 개발을 위한 그래픽 인터페이스
SQL과 PL/SQL 구문 실행, SQL 스크립트 실행, PL/SQL 구문 편집 및
디버깅 기능
자바를 기반을 동작하는데, 먼저 JDK가 컴퓨터에 설치되어 있어야 함
[시작] → [모든 프로그램] → [Oracle – OraDb11g_home1] → [응용
프로그램 개발] → [SQL Developer]를 차례로 클릭
3장. 오라클
2
3.3 환경 설정
3장. 오라클
3
3.3 환경 설정
JDK의 java.exe 파일의 경로를 설정한 후에 Oracle SQL Developer를
설치
3장. 오라클
4
3.3 환경 설정
Oracle SQL Developer 화면
[접속 이름]: 사용자가 입력하는 로그인 정보를 저장하는 프로파일의 이름
[사용자 이름]: 접속하려는 데이터베이스에 대한 사용자 계정
[비밀번호]: 사용자 계정의 비밀번호
[롤]: SYSDBA(데이터베이스 관리자)를 선택
[호스트 이름]: 접속하려는 데이터베이스가 동작하고 있는 컴퓨터의 이름
[포트]: 오라클 리스너 서비스의 포트(기본 1521)
3장. 오라클
5
3.3 환경 설정
3장. 오라클
6
3.3 환경 설정
Oracle SQL Developer 화면의 구성요소
3장. 오라클
7
3.3 환경 설정
사용자 등록
두 명의 데이터베이스 사용자(KIM과 LEE)를 등록
Oracle SQL Developer에 sys 사용자로 로그인
출판사 홈페이지에서 userCreate.sql을 다운로드한 후 [파일] → [열기]를
차례로 클릭하여 Oracle SQL Developer로 불러옴
3장. 오라클
8
3.3 환경 설정
3장. 오라클
9
3.3 환경 설정
또는 [예제 3.1]의 내용을 질의 입력창에 직접 입력
3장. 오라클
10
3.3 환경 설정(계속)
질의 입력창에 들어 있는 명령 실행
[실행] → [userCreate.sql 실행]을 차례로 클릭하거나, F5 또는 도구
모음에서
를 클릭
3장. 오라클
11
3.3 환경 설정(계속)
비밀번호 변경
데이터베이스 관리자가 사용자의 비밀번호를 변경하거나 사용자가 자신의
비밀번호를 직접 변경할 수 있음
데이터베이스 관리자(sys)로 로그인을 한 상태에서 다음 명령을 사용하여
KIM의 비밀번호를 변경할 수 있음
ALTER USER KIM identified by shinystar;
3장. 오라클
12
3.3 환경 설정(계속)
3장. 오라클
13
3.3 환경 설정(계속)
예제 테이블 생성
DBSERVER 데이터베이스에 4장에서 SQL 실습에 사용할 EMPLOYEE와
DEPARTMENT 테이블을 생성하고, 투플들을 삽입
Oracle SQL Developer를 실행하고, 사용자 KIM으로 로그인
3장. 오라클
14
3.3 환경 설정(계속)
실습 예제(sampledata.sql )
출판사 홈페이지에서 userCreate.sql을 다운로드한 후 [파일] → [열기]를 차례로
클릭하여 Oracle SQL Developer로 불러옴
또는 [예제 3.2]의 내용을 직접 입력
3장. 오라클
15
3장. 오라클
16
3장. 오라클
17
3장. 오라클
18
3.3 환경 설정(계속)
정의한 테이블과 뷰가 데이터베이스에 생성되었는가를 확인
질의 입력창에 다음 명령을 입력하여 실행
SELECT * FROM tab;
tab은 데이터베이스 내의 테이블에 관한 정보를 나타내는 데이터 사전 뷰
TNAME은 테이블의 이름을 나타내고, TABTYPE은 테이블의 유형, 즉
테이블 또는 뷰를 나타냄
3장. 오라클
19
3.3 환경 설정(계속)
3장. 오라클
20
3.3 환경 설정(계속)
DEPARTMENT 테이블의 구조 확인
질의 입력창에 다음 명령을 입력하여 실행
DESCRIBE DEPARTMENT;
또는
DESC DEPARTMENT;
이름은 DEPARTMENT 테이블에 속한 애트리뷰트들을 나타내고, 널?은
애트리뷰트가 널값을 허용하는가를 나타내며, 유형은 애트리뷰트의 데이터
타입과 길이를 의미
3장. 오라클
21
3.3 환경 설정(계속)
3장. 오라클
22
3.3 환경 설정(계속)
DEPARTMENT 테이블의 내용 확인
질의 입력창에 다음 명령을 입력하여 실행
SELECT * FROM DEPARTMENT;
3장. 오라클
23
3.3 환경 설정(계속)
PROJECT 테이블을 생성
질의 입력창에 다음 명령을 입력하여 실행
3장. 오라클
24
3.3 환경 설정(계속)
3장. 오라클
25
3.3 환경 설정(계속)
PROJECT 테이블을 수정
질의 입력창에 다음 명령을 입력하여 실행
ALTER TABLE PROJECT
ADD Manager NUMBER;
방금 추가한 Manager 애트리뷰트를 삭제하기 위해서는 아래와 같은 명령을
실행
ALTER TABLE PROJECT DROP COLUMN Manager;
3장. 오라클
26
3.3 환경 설정(계속)
3장. 오라클
27
3.4 PL/SQL
PL/SQL(Procedural Language/SQL)
PL/SQL은 오라클에서 관계 데이터베이스를 위한 표준 데이터 언어인
SQL에 절차적인 언어의 기능(예를 들어, IF-THEN, WHILE 루프 등)을
추가하여 확장한 언어
블록 위주의 언어
기본적인 단위는 블록, 프로시저, 함수
3장. 오라클
28
3.4 PL/SQL(계속)
기본적인 PL/SQL 블록 구조
세 개의 섹션으로 구성됨
begin으로 시작하는 실행절만 필수이고 나머지는 옵션
선언절에서는 변수와 객체들을 선언
실행절에서는 변수들을 처리(조작)
예외 사항 처리절에서는 실행 중에 발생한 예외나 에러를 처리
END 및 다른 PL/SQL문에는 문장 끝을 표시하기 위해 세미콜론을 써야 함
주석은 여러 행에 걸쳐 쓰려면 /* 과 */ 사이에 입력하고, 한 행에 쓰는
주석은 시작 부분에 --을 표시
3장. 오라클
29
3.4 PL/SQL(계속)
기본적인 PL/SQL 블록 구조(계속)
3장. 오라클
30
3.4 PL/SQL(계속)
PL/SQL의 제어 구조
조건문의 예
if <조건> then <PL/SQL문> else <PL/SQL문> end if;
for 반복문의 예
for <인덱스 변수> in <범위> loop <PL/SQL문> end loop;
while 반복문의 예
while <조건> loop
<PL/SQL문>
end loop;
3장. 오라클
31
3.4 PL/SQL(계속)
커서(cursor)
질의가 다수의 행들을 결과로 반환할 때 커서를 선언해서 질의의 결과의 각
행을 처리하고, 현재 어떤 행을 처리하고 있는지 유지해야 함
질의의 결과로 반환되는 행들은 활성 집합(active set)이라고 부르는 영역에
저장됨
커서가 가리키는 행이 현재 행
3장. 오라클
32
3.4 PL/SQL(계속)
커서를 사용하기 위해 필요한 네 단계
블록의 선언절에서 커서를 선언
CURSOR 커서_이름 IS SELECT문;
커서를 사용하기 전에 실행절에서 커서를 연다
OPEN 커서_이름;
활성 집합에 있는 행을 한 번에 하나씩 차례대로 검색
FETCH 커서_이름 INTO 변수_리스트;
질의 수행 결과에 대한 처리를 마치기 위해 커서를 닫음
CLOSE 커서_이름;
3장. 오라클
33
3.4 PL/SQL(계속)
갱신할 투플들에 대한 커서 정의
커서 선언부에 FOR UPDATE OF절을 포함시키고, 수정할 애트리뷰트들을
함께 명시
예: 아래와 같이 커서를 선언하면 EMPLOYEE 테이블의 TITLE
애트리뷰트를 수정할 수 있음
EXEC SQL DECLARE title_cursor CURSOR FOR
SELECT title FROM employee FOR UPDATE OF title;
이제 커서를 열면 투플의 애트리뷰트들을 수정할 수 있음
UPDATE
SET
WHERE
employee
title = :newtitle
CURRENT OF title_cursor;
3장. 오라클
34
3.4 PL/SQL(계속)
PL/SQL의 예
IF문과 FOR 반복문을 포함한 질의의 예
다음 PL/SQL코드는 3번 부서의 사원들의 평균 급여가 2800000원
이상이면 3번 부서에 속한 사원들의 이름과 직책과 급여를 검색하고,
그렇지 않으면 “3번 부서의 평균 급여가 2800000 미만입니다.”라는
메시지를 인쇄
dbms_output.put_line은 값을 화면에 출력하는 오라클의 프로시저
3장. 오라클
35
3.4 PL/SQL(계속)
3장. 오라클
36
3.4 PL/SQL(계속)
3장. 오라클
37