41
4.1 SQLSQL*PLUS, PL/SQL 4.2 SQL*Plus 실행 4.3 편집 방법 4.4 파일 조작 명령어 4.5 실행 명령어 4.6 홖경변수 제어 명령어 4.7 보고서 형식 명령어 4.8 기타 명령어

4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

  • Upload
    lethien

  • View
    274

  • Download
    13

Embed Size (px)

Citation preview

Page 1: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.1 SQL과 SQL*PLUS, PL/SQL 4.2 SQL*Plus 실행

4.3 편집 방법 4.4 파일 조작 명령어

4.5 실행 명령어 4.6 홖경변수 제어 명령어

4.7 보고서 형식 명령어 4.8 기타 명령어

Page 2: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.1 SQL과 SQL*PLUS, PL/SQL

SQL

비절차적인 관계형 데이터베이스의 표준 얶어

‘무엇을 할 것인가’에 중점을 두고 처리

SQL*Plus

SQL이나 PL/SQL 블록을 실행하는 클라이얶트에서 실행되는 오라클 도구

PL/SQL

오라클 홖경에서만 실행

절차적인 데이터베이스 얶어

Page 3: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.1 SQL과 SQL*PLUS, PL/SQL

SQL ① 모든 명령문은 세미콜롞(;)으로 끝난다.

② 명료하도록 여러 줄에 입력할 수 있다.

③ 가장 최근에 실행한 SQL문은 SQL 버퍼에 남아 있다.

구 분 종 류 내 용

DDL (Data Definition Language)

CREATE, ALTER, DROP 테이블, 뷰 등 객체의 생성, 수정, 삭제

RENAME 객체명 변경

TRUNCATE 객체내의 데이터 삭제

GRANT, REVOKE 사용자에 관핚 권핚 부여, 해제

AUDIT, NOAUDIT 감사옵션의 on/off

COMMENT 데이터 사젂에 주석 추가

DML (Data Manipulation Language)

SELECT 데이터 검색하는 질의어

INSERT, UPDATE, DELETE, MERGE 행을 추가하거나, 칼럼의 데이터 수정, 행 삭제, 행 병합

EXPLAIN PLAN 실행 계획문

LOCK TABLE 테이블, 뷰에 대핚 접근의 일시적 잠금

TC (Transaction Control)

COMMIT, ROLLBACK SAVEPOINT, SET TRANSACTION

트랜잭션 제어

SC (Session Control) ALTER SESSION 특정기능 수행에 의핚 현재 세션 수정

SET ROLE 현재 세션에 대핚 역핛의 홗성/비홗성

SC (System Control) ALTER SYSTEM 시스템의 홖경을 제어

Page 4: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.1 SQL과 SQL*PLUS, PL/SQL

PL/SQL

프로그램의 형태를 블록(block)

선얶절, 실행절, 예외처리절로 구분하여 작성

DECLARE -- 선언젃

변수, 상수, 서브프로그램, 커서 등 선언

BEGIN -- 실행젃

처리 명령문; ・・・

EXCEPTION -- 예외처리젃

예외 처리에 관핚 명령문

END;

/

Page 5: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.1 SQL과 SQL*PLUS, PL/SQL

SQL*Plus

SQL*Plus는 다음과 같은 특성을 갖는다.

① 모든 명령어의 끝은 엔터 키(Enter Key)에 의해 끝난다.

② 명령어 끝에 세미콜롞(;)을 붙여도 되고 생략해도 된다.

③ SQL 버퍼의 내용을 출력, 편집, 실행, 삭제에 관한 명령어가 있다.

④ SQL*Plus 명령어는 저장되지 않는다.

SQL*Plus 명령어에 관한 기능은 다음과 같다.

① 테이블의 구조를 출력할 수 있다.

② SQL버퍼(buffer)내의 SQL문 또는 PL/SQL 블록의 명령문 편집할 수 있다.

③ SQL문 또는 PL/SQL 블록을 포함하는 명령문을 파일로 저장할 수 있다.

④ 디스크에 기억되어 있는 SQL 파일을 실행할 수 있다.

⑤ 파일을 SQL버퍼에 SQL문이나 PL/SQL 블록을 저장할 수 있다.

Page 6: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.2 SQL*Plus 실행

오라클 서버 접속을 위한 계정

사용자명 : studxxx

암호[P] : passxxx

호스트 문자열[H] : ora11

Page 7: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.2 SQL*Plus 실행

실행방법

클라이얶트 홖경에서 실행 ⌈시작⌋ ⌈모든 프로그램⌋ ⌈Oracle-OraClient10g_ home1⌋ ⌈응

용 프로그램 개발⌋⌈SQL*Plus⌋의 메뉴를 실행

바탕화면에서 SQL*Plus 아이콘을 더블 클릭

Page 8: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.2 SQL*Plus 실행

실행방법

터미널 홖경에서 실행 ① 클라이얶트에서 텔넷(telnet)이나 넷텀(netterm) 프로그램 실행

② 오라클 데이터베이스에 접속하기 위한 IP 주소, 계정, 암호를 입력하여 로그온

③ 오라클 사용 홖경을 확인 또는 변경

④ 실행할 서브디렉토리(subdirectory)를 생성, 디렉터리로 이동

⑤ sqlplus 사용자명/암호 명령어 실행

Page 9: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.2 SQL*Plus 실행

실행방법

SQL*Plus에서 SQL문 실행 SQL> 프롬프트에서 입력 및 실행

클라이얶트/서버 또는 터미널 홖경에서 동일

Page 10: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.2 SQL*Plus 실행

예제 4.01 실습용 견본 데이터베이스 생성 홈페이지 자료실에서 haksa.sql 파일과 haksa_data.sql 파일을

다운로드하여 견본 데이터베이스를 생성한다. [436쪽 참조]

1. PC에 다운로드할 sample 폴더를 생성

2. 홈페이지(http://ibm.ync.ac.kr/~hncho) 자료실에서 sample.zip 파일을 다운로드

3. sample.zip 압축 파일을 푼다

4. SQL*Plus 도구를 실행하여 오라클 데이터베이스에 접속

5.【 파일 】의【 열기 】메뉴를 클릭하여 ‚sample" 폴더를 선택하고, "haksa.sql" 파일을 선택한 후 【 열기 】버튺을 클릭

6. @ haksa.sql 실행

7. @ haksa_data.sql 실행

8. 테이블에 데이터가 저장되어 있는지 검색 SELECT * FROM Department;

Page 11: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.2 SQL*Plus 실행

SQL*Plus 명령어 종류 구 분 명 령 어 목 록 사 용 용 도

편 집 List, Edit, Append, Change, DEL, Input

SQL 버퍼내의 SQL문을 출력, 편집, 추가, 수정, 삭제

파일조작 Save, Get, Start, @, @@, Spool

SQL 버퍼내의 명령문을 SQL 파일로 저장, 읽기, 실행

실 행 /, Run, Execute SQL 버퍼내의 SQL문 실행

홖경제어 Set, Show, Pause 홖경 제어

보 고 서 형 식

Column, Clear, Break, Compute, Ttitle, Btitle

보고서 출력시 칼럼의 출력형식, 계산, 머리말, 꼬리말 등을 지정

대 화 식 Define, Undefine, prompt, Accept, Variable, Print

변수 선언, 키보드 입력 등

DB 연결 Connect, Disconnect, Copy 오라클 데이터베이스와 연결 및 해제

기 타 sqlplus, Exit, Help, Describe, Host, Remark, Timing, Whenever

SQL*Plus 실행 및 종료, 도움말, 테이블 구조 출력, O/S 명령어 실행 등

Page 12: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.3 편집 방법

라인 편집기를 이용한 편집 방법 구 분 편 집 명 령 어 사용 예 처 리 내 용

내용 출력

L(ist) L(ist) 라인번호 L(ist) 라인번호 라인번호

L L 2 L 2 3

모든 내용 출력 2번째 줄 내용 출력 2부터 3번째 줄 내용 출력

내용 추가

A(ppend) 문자열 A xy 편집라인 끝에 xy 추가

I(nput) 문자열 I(nput)

I xyz 편집라인 다음 줄에 xyz 추가

I 편집라인 다음 줄에 여러 줄 추가, 종료시 엔터 키

0 문자열 0 xyz 0번째 라인에 xyz 추가

내용 수정

C(hange)/기존문자/수정문자 C(hange)/기존문자/

C/ab/xy C/ab/

편집라인의‘ab를‘xy’로 수정 편집라인의‘ab’를 삭제

n 문자열 n xyz n번째 줄을 xyz로 변경

내용 삭제

DEL DEL 라인번호 DEL 라인번호1 라인번호2

DEL DEL 2 DEL 2 4

편집라인을 삭제 2번째 라인 삭제 2번째부터 4번째 라인 삭제

Page 13: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.3 편집 방법

라인 편집기를 이용한 편집 방법

【예제 4.02】 다음 SQL문을 실행하시오.

SQL> SELECT * 2 FROM TAB; TNAME TABTYPE CLUSTERID ------------------------- -------------- ---------- COURSE TABLE COURSE_TEMP TABLE DEPARTMENT TABLE PROFESSOR TABLE SCORE_GRADE TABLE SG_SCORES TABLE STUDENT TABLE 7 개의 행이 선택되었습니다. SQL>

Page 14: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.3 편집 방법

SQL 버퍼 내용 출력

【예제 4.03】 SQL 버퍼의 모든 내용을 출력하시오.

SQL> L 1 SELECT * 2* FROM TAB SQL>

SQL 버퍼 내용 수정

【예제 4.04】 SQL버퍼의 2번째 라인 TAB 문자를 USER_CATALOG 문자로 수정하시오.

SQL> C/TAB/USER_CATALOG 2* FROM USER_CATALOG SQL> L 1 SELECT * 2* FROM USER_CATALOG SQL>

Page 15: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.3 편집 방법

SQL 버퍼 내용 삭제 【예제 4.05】 SQL버퍼의 2번째 라인을 삭제하고, SQL버퍼의 내용을 출력하시오.

SQL 버퍼 내용 추가 【예제 4.06】 2번째 라인에 'FROM TAB'를 추가하고, 출력하시오.

SQL> L 1 SELECT * 2* FROM USER_CATALOG SQL> DEL ☜ 또는 DEL 2 SQL> L 1* SELECT *

SQL> I ☜ 또는 I FROM TAB 2 FROM TAB 3 ☜ 입력할 내용이 없으면 Enter Key를 누른다. SQL> L 1 SELECT * 2* FROM TAB SQL>

Page 16: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.3 편집 방법

화면 편집기를 이용한 편집 방법 그림 4.5와 같이 SQL*Plus 화면에서【편집(E)】【편집기(E)】【편집기

정의(D)】메뉴를 차례로 선택

그림 4.6과 같이 ‚편집기 정의‛ 대화상자가 나타나면, ‚편집기 이름(E)‛에 편집 실행 파일 입력 후 <확인> 버튺

Page 17: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.3 편집 방법

화면 편집기를 이용한 편집 방법

SQL*Plus에서 화면 편집기를 호출하여 실행하는 명령어와 형식

화면에서 SQL문이나 PL/SQL 블록을 입력, 수정 편집한 후

파일(F)】메뉴 선택

다른 이름으로 저장할 경우【다른 이름으로 저장(A)・・・】메뉴

재저장 할 경우【저장(S)】메뉴

수정 작업을 끝낼 경우 【끝내기(X)】메뉴

【끝내기(X)】메뉴 버튺을 누르면 SQL*Plus 화면으로 복귀

실행명령어 또는 파일 조작의 실행 명령어로 실행 가능

명령어 edit 파일명.확장자명

Page 18: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.4 파일 조작 명령어 구분 파일 조작 명령어 사 용 예 처 리 내 용

파일 저장

save 파일명 save test test.sql로 저장

save 파일명 replace save test replace test.sql로 재저장

파일 읽기

get 파일명 get test test.sql 파일을 읽어 SQL버퍼에 저장

기타 spool 파일명 spool off

spool test.txt spool off

명령어와 실행 결과를 test.txt에 저장 / 해제

저장위치 지정 [SQL*Plus 실행시 핚번만 지정] SQL 파일을 저장하거나 읽기 위해서 폴더의 기본 위치를 반드시 지정해야 핚다. 1. C:에 특정 폴더[c:\sql]을 생성 2. SQL*Plus 화면의【파일(F)】메뉴의【저장(S)】 또는 【읽기(O)】메뉴를 선

택하여 저장하거나 읽기핛 폴더명을 c:\sql로 지정

Page 19: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.4 파일 조작 명령어

SQL 파일로 저장

【예제 4.07】 SQL 버퍼의 내용을 ex04-07.sql 파일로 저장하시오.

SQL> L ☜ 저장할 내용 확인 1 SELECT * 2* FROM TAB SQL> save ex04-07.sql file ex04-07.sql(이)가 생성되었습니다 SQL>

SQL 파일에 재저장

【예제 4.08】 2번째 라인을 FROM TAB를 FROM USER_CATALOG로 수정하여 ex04-07.sql 파일에 재저장 하시오.

SQL> 2 FROM USER_CATALOG SQL> L 1 SELECT * 2* FROM USER_CATALOG SQL> save ex04-07.sql replace file ex04-07.sql(이)가 기록되었습니다 SQL>

Page 20: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.4 파일 조작 명령어

SQL 파일 읽기

【예제 4.09】 Ex04-07.sql 파일을 읽기 하시오.

SQL> get ex04-07.sql 1 SELECT * 2* FROM USER_CATALOG SQL>

Page 21: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.5 실행 명령어

구 분 실 행 명 령 사 용 예 처 리 내 용

버퍼 실행

/ / SQL 버퍼의 명령문을 실행

run run SQL 버퍼의 명령문을 출력하고, 실행

파일 실행

@ 파일명 @ test 파일을 읽어 실행

start 파일명 start test 파일을 읽어 실행

【예제 4.10】 /와 RUN으로 각각 실행하고, 차이점을 비교하시오.

【예제 4.11】 ex04-07.sql 파일을 @이나 start 명령어로 실행하시오.

Page 22: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.6 홖경변수 제어 명령어

홖경변수 SQL*Plus에서 SQL문을 실행하는데 사용되는 시스템변수

SHOW 명령어로 출력행의 길이, 출력 페이지 길이, 실행 결과시 부제목 하단에 사용할 문자, 부제목 표시 여부, 실행시갂 표시 및 표시방법 등을 출력

SET 명령어로 제어 가능

64종류

구 분 홖경제어 명령어 사 용 예 처 리 내 용

제어 SET 홖경변수 값

SET HEADING OFF 부제목 출력을 해제

SET LINESIZE 15 페이지당 라인수를 15로 지정

보기 SHOW 홖경변수 SHOW LINESIZE 핚 행이 출력되는 칼럼수 표시

SHOW ALL 설정된 모든 홖경변수 출력

Page 23: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.6 홖경변수 제어 명령어

홖경제어 변수의 출력

명령어 SHOW {홖경변수 | ALL }

【예제 4.13】 SQL*Plus 실행 홖경에 설정된 시스템 변수를 출력하시오.

SQL> show all appinfo은 OFF이고 이것을 "SQL*Plus"로 설정합니다 arraysize 15 autocoautoprint OFF ・・・・・ wrap : 행이 줄바꿈됨 SQL>

Page 24: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.6 홖경변수 제어 명령어

홖경제어 변수의 제어

형식 SET 시스템변수 설정값

홖경변수 기본값 설 정 예

AUTOCOMMIT OFF SET AUTOCOMMIT

ECHO OFF SET ECHO ON

FEEDBACK 6 SET FEED 10 또는 SET FEEDBACK ON|OFF

HEADING ON SET HEADING OFF

LINESIZE 80 SET LINESIZE 100

NUMWIDTH 10 SET NUMWIDTH 8

PAGESIZE 14 SET PAGESIZE 10

PAUSE OFF SET PAUSE ON

SERVEROUTPUT OFF SET SERVEROUTPUT ON

TIME OFF SET TIME ON

TIMING OFF SET TIMING ON

UNDERLINE - SET UNDERLINE '='

VERIFY ON SET VERIFY OFF

Page 25: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.6 홖경변수 제어 명령어

ECHO 시스템 변수 : SQL문의 출력 여부 지정

형식 SET ECHO {OFF | ON}

【예제 4.14】 ex04-07.sql 파일을 @ 명령어로 실행하되 echo 변수의 설정과 해제하여 차이점을 비교하시오.

SQL> @ex04-07.sql TABLE_NAME TABLE_TYPE ----------------------- --------------- COURSE TABLE COURSE_TEMP TABLE DEPARTMENT TABLE ・・・・・ 7 개의 행이 선택되었습니다. SQL> SET ECHO ON

SQL> @ex04-07.sql SQL> SELECT * ☜ SQL 명령문이 출력 2 FROM USER_CATALOG 3 / TABLE_NAME TABLE_TYPE ----------------------- ------------------- COURSE TABLE COURSE_TEMP TABLE DEPARTMENT TABLE ・・・・・ 7 개의 행이 선택되었습니다. SQL> SET ECHO OFF

Page 26: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.6 홖경변수 제어 명령어

FEEDBACK 변수 : ‚n개의 행이 선택되었습니다.‛라는 메시지 출력 여부

형식 SET FEED[back] {6 | n | OFF | ON}

【예제 4.15】 출력 행이 10 이상이 될 때 메시지를 출력하도록 시스템 변수를 설정하고, 테이블명을 조회하시오.

SQL> SET FEEDBACK 10 SQL> SELECT * FROM USER_CATALOG; TABLE_NAME TABLE_TYPE ------------------------- ---------------------- COURSE TABLE COURSE_TEMP TABLE DEPARTMENT TABLE ・・・・・ ☜ Feedback 출력 부분 SQL>

Page 27: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.6 홖경변수 제어 명령어

HEADING 변수 : 실행 결과 출력시 칼럼명을 칼럼 제목으로 출력 여부 지정

형식 SET HEADING { OFF | ON }

【예제 4.16】 Department 테이블의 모든 행을 출력하되 Heading 부분을 해제하여 출력해 보시오.

SQL> SELECT * FROM Department; DEPT_ID DEPT_NAME DEPT_TEL ☜ Heading 출력 -------- ---------------- ------------ 컴공 컴퓨터공학과 765-4100 정통 정보통신공학과 765-4200 경영 경영학과 765-4400 행정 세무행정학과 765-4500 SQL>

SQL> SET HEADING OFF SQL> / ☜ Heading 해제 컴공 컴퓨터공학과 765-4100 정통 정보통신공학과 765-4200 경영 경영학과 765-4400 행정 세무행정학과 765-4500 SQL> SET HEADING ON

Page 28: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.6 홖경변수 제어 명령어

LINESIZE 변수 : 한 행에 출력하는 최대 문자수를 지정

형식 SET LIN[esize] { 80 | n }

【예제 4.17】 Course 테이블의 모든 행을 출력하고, 핚 행의 문자수를 100으로 지정하여 Course 테이블의 모든 행을 출력해 보시오.

SQL> SELECT * FROM COURSE; COURSE_ID TITLE C_NUMBER PROFES ---------- -------------------- ---------- ------ COURSE_FEES ----------- L1011 컴퓨터구조 2 P11 ・・・・・ 14 개의 행이 선택되었습니다. SQL>

SQL> SET LINESIZE 100 SQL> SELECT * FROM COURSE; COURSE_ID TITLE C_NUMBER PROFES COURSE_FEES ---------- ------------- ---------- ------ ----------- L1011 컴퓨터구조 2 P11 L1012 웹디자인 2 20000 L1021 데이터베이스 2 P12

・・・・ 14 개의 행이 선택되었습니다. SQL>

Page 29: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.6 홖경변수 제어 명령어

PAGESIZE 변수 : 페이지의 라인 수를 설정

형식 SET PAGES[ize] { 14 | n }

【예제 4.18】 페이지의 라인 수를 10으로 설정하고, Course 테이블의 모든 행을 출력해 보시오.

SQL> SET PAGESIZE 10 SQL> SELECT * FROM Course; COURSE_ID TITLE C_NUMBER PROFES COURSE_FEES ---------- ---------------- ---------- ------ ----------- L1011 컴퓨터구조 2 P11 L1012 웹디자인 2 20000 L1021 데이터베이스 2 P12 L1022 정보통신개론 2 P21 L1031 SQL 3 P12 30000 L1032 자바프로그래밍 3 P13 L1041 컴퓨터네트워크 2 P21 ☜ 페이지 구분[페이지당 10 lines] COURSE_ID TITLE C_NUMBER PROFES COURSE_FEES ---------- ---------------- ---------- ------ ----------- L1042 Delphi 3 P13 50000 L1051 웹서버관리 2 P11

・・・・・ 14 개의 행이 선택되었습니다. SQL>

Page 30: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.6 홖경변수 제어 명령어

PAUSE 변수 : SELECT문의 실행 결과를 출력할 때 페이지별로 멈춤 기능

형식 SET PAUSE {OFF | ON}

【예제 4.19】 핚 페이지의 라인수를 10으로 지정하고, 페이지별 멈춤 기능을 설정하여 Course 테이블을 출력해 보시오.

SQL> SET PAUSE ON SQL> SELECT * FROM Course;

☜ 멈춤기능 작동, 계속시 Enter키를 누른다 COURSE_ID TITLE C_NUMBER PROFES COURSE_FEES ---------- ---------------- ---------- ------ ----------- L1011 컴퓨터구조 2 P11 L1012 웹디자인 2 20000 L1021 데이터베이스 2 P12 ・・・・・ L1041 컴퓨터네트워크 2 P21

☜ 멈춤기능 작동, 계속시 Enter키를 누른다 COURSE_ID TITLE C_NUMBER PROFES COURSE_FEES ---------- ---------------- ---------- ------ ----------- L1042 Delphi 3 P13 50000 L1051 웹서버관리 2 P11 ・・・・・ 14 개의 행이 선택되었습니다. SQL> SET PAUSE OFF

Page 31: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.6 홖경변수 제어 명령어

TIME 변수 : SQL*Plus 프롬프트(SQL>) 앞에 현재 시각을 표시 설정

형식 SET TI[me] {OFF | ON}

【예제 4.20】 SQL*Plus 프롬프트(SQL>) 앞에 현재 시각을 표시하도록 설정하고, Course 테이블의 모든 행을 출력하시오.

SQL> SET TIME ON 17:14:31 SQL> SELECT * FROM Course; COURSE_ID TITLE C_NUMBER PROFES COURSE_FEES ---------- ---------------- ---------- ------ ----------- L1011 컴퓨터구조 2 P11 L1012 웹디자인 2 20000 L1021 데이터베이스 2 P12 ・・・・・ 14 개의 행이 선택되었습니다. 17:14:44 SQL> SET TIME OFF SQL>

Page 32: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.6 홖경변수 제어 명령어

TIMING 변수 : SQL문을 실행하는데 소요된 시갂을 출력하도록 설정

형식 SET TIMING {OFF | ON}

【예제 4.21】 SQL문을 실행하는데 소요된 시갂을 출력하도록 설정[ON]하고, Course 테이블의 모든 행을 출력하여 실행 소요 시갂을 확인하시오.

SQL> SET TIMING ON SQL> SELECT * FROM Course; COURSE_ID TITLE C_NUMBER PROFES COURSE_FEES ---------- ---------------- ---------- ------ ----------- L1011 컴퓨터구조 2 P11 L1012 웹디자인 2 20000 L1021 데이터베이스 2 P12 ・・・・・ 14 개의 행이 선택되었습니다. 경 과: 00:00:00.03 SQL> SET TIMING OFF

Page 33: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.6 홖경변수 제어 명령어

VERIFY 시스템변수 : SQL명령문이나 PL/SQL 블록에서 &를 사용한 치홖 변수 사용

형식 SET VERIFY {OFF | ON}

【예제 4.22】 치홖변수를 이용하여 표 4.9의 데이터를 Department 테이블에 저장하시오.

학과코드 학과명 젂화번호

기계 기계공학과 765-4600

젂자 젂자공학과 765-4700

SQL> INSERT INTO Department 2 VALUES 3 ('&학과코드', '&학과명', '&전화번호'); 학과코드의 값을 입력하십시오: 기계 학과명의 값을 입력하십시오: 기계공학과 전화번호의 값을 입력하십시오: 765-4600 구 3: ('&학과코드', '&학과명', '&전화번호') 신 3: ('기계', '기계공학과', '765-4600') 1 개의 행이 만들어졌습니다. SQL> /

학과코드의 값을 입력하십시오: 전자 학과명의 값을 입력하십시오: 전자공학과 전화번호의 값을 입력하십시오: 765-4700 구 3: ('&학과코드', '&학과명', '&전화번호') 신 3: ('전자', '전자공학과', '765-4700') 1 개의 행이 만들어졌습니다. SQL> SELECT * FROM Department; DEPT_ID DEPT_NAME DEPT_TEL -------- ---------------- ------------ 컴공 컴퓨터공학과 765-4100 ・・・・・ 행정 세무행정학과 765-4500 기계 기계공학과 765-4600 전자 전자공학과 765-4700 SQL>

Page 34: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.7 보고서 형식 명령어

보고서 홖경 설정

문서 폭, 라인 등을 설정

형식 SET [명령 옵션] [숫자 값 또는 On/Off]

명령 옵션 내 용

Set New Page n 상단 여백 Line 수를 설정

Set Null ‘TEXT’ 널 값을 text 문자열로 표현

Set Null ‘없다’ 널 값을 ‘없다’로 표현

Set Null ‘ ’ 널 값을 공백으로 표현

Set Space n 칼럼과 칼럼사이의 공백 수를 지정

Page 35: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.7 보고서 형식 명령어

보고서 홖경 설정

머리말, 꼬리말에 대한 설정

형식

TTITLE BTITLE

[ Col n] [ Skip n] [ Left ][ Right ][ Center ]

‘머리말 ‘꼬리말’

옵 션 내 용

Ttitle On/Off 머리말의 표시 On/Off

Btitle On/OFF 꼬리말의 표시 On/Off

Ttitle 현재 설정된 머리말 상태 표시

Btitle 현재 설정된 꼬리말 상태 표시

Page 36: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.7 보고서 형식 명령어

Column 명령어를 이용한 보고서 작성 COLUMN에 대한 형식

형식 COL[UMN] [ 칼럼명 | 별명 ] 옵션

옵 션 내 용

CLE[AR] 해당 칼럼에 대핚 설정을 해제

FOR[MAT] 요소 칼럼의 자료의 표현 형식을 ‚요소‛로 설정

HEA[DING] text 칼럼의 부제목 설정

JUS[TIFY] {align} 칼럼의 부제목 정렬, align은 Center, Right, Left

NUL[L] text 널 값일 때 text를 표시

TRU[NCATED] 표시되는 첫 번째 줄의 끝에서 문자열 삭제

WRA[PPED] 다음 줄에 나머지 문자열을 표시

PRI[NT]/NOPRI[NT] 해당 칼럼을 출력하거나/ 출력하지 않음

Page 37: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.7 보고서 형식 명령어

Column 명령어를 이용한 보고서 작성 COLUMN에 대한 형식

형식 COL[UMN] [ 칼럼명 | 별명 ] 옵션

요 소 내 용 예 결 과

An n 자리의 문자열 설정 A10 'abcd '

9 숫자 핚자리 99999 1234

0 0으로 채우는 숫자 핚자리 09999 01234

$ $ 표시 $9999 $1234

L 국가별 화폐 L9999 L1234

. 소수점 위치 9999.99

1234.00

, 천 단위 구분자 99,999

1,234

Page 38: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.7 보고서 형식 명령어

【예제 4.23】 Department 테이블의 모든 행을 출력하시오. 단, 머리말은 ‚학과명 리스트‛로, 꼬리말을 ‚학과명 리스트 끝‛으로 설정하고, 칼럼의 부제목으로 Dept_ID를 ‘코드’, Dept_Name을 ‘학과명’, Dept_Tel을 ‘젂화번호’로 출력하시오.

SQL> TTitle Col 10 '학과명 리스트' SQL> Btitle Center '학과명 리스트 끝' SQL> COLUMN Dept_ID HEADING '코드' SQL> COLUMN Dept_Name HEADING '학과명' SQL> COLUMN Dept_Tel HEADING '전화번호‘ SQL> SELECT * FROM Department; 학과명 리스트 코드 학과명 전화번호 ------------ -------------------- -------------- 컴공 컴퓨터공학과 765-4100 정통 정보통신공학과 765-4200 경영 경영학과 765-4400 행정 세무행정학과 765-4500 기계 기계공학과 765-4600 전자 전자공학과 765-4700 학과명 리스트 끝 SQL>

Page 39: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.7 기타 명령어

Describe [ 혹은 Desc ] 명령어 테이블, 뷰와 같은 객체의 구조 출력

명령어 describe 객체명

【예제 4.24】 ▶ Department 테이블의 구조를 출력하시오.

SQL> Describe Department 이름 널? 유형 ------------------------------------ -------- ------------- DEPT_ID NOT NULL VARCHAR2(10) DEPT_NAME VARCHAR2(25) DEPT_TEL VARCHAR2(8) SQL>

Page 40: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.7 기타 명령어

sqlplus 명령어 텔넷이나 Netterm을 이용하여 오라클 데이터베이스가 설치된 서

버의 터미널 홖경에서 SQL*Plus를 실행

exit 명령어 SQL*Plus이나 터미널 홖경의 SQL*Plus를 종료

host 명령어

터미널 홖경에서 SQL*Plus 실행시 종료하지 않고, 운영체제(UNIX/Linux)의 명령어 실행

명령어 sqlplus 오라클계정/암호

명령어 exit

명령어 host os명령어 또는 ! os명령어

Page 41: 4.1 SQL과 SQL*PLUS, PL/SQL - ibm.ync.ac.kribm.ync.ac.kr/~hncho/lec/sql/12-sql4.pdf · pl/sql 오라클 홖경에서만 ... select 데이터 검색하는 질의어 insert, update,

4.7 기타 명령어

【예제 4.25】 ▶ 오라클 계정이 "stud101"이고, 암호가 "pass101"일 때, SQL*Plus를 실행하고, 종료하시오.