컴퓨터 공부/Advanced Database

[6월 1일 1교시] SQL Plus 명령 1

려리군 2009. 6. 1. 14:07

Join 

내가 원하는 정보(column)이 여러 테이블에 있을 때 사용한다.


Set Operator(집합 연산자)

결합된 쿼리에서 각각 SELECT 리스트에서 대응되는 표현식은 숫자와 데이터 타입이 맞아야(같아야) 한다.

UNION ALL : 중복을 허용한 합집합

UNION : 합집합

INTERSECT : 교집합

MINUS : 차집합


SELECT deptno, job, sum(sal)

FROM emp

GROUP BY GROUPING SETS((deptno,job),(job),0);


SELECT deptno, job, sum(sal)

FROM emp

GROUP BY deptno,job

UNION ALL

SELECT null, job, sum(sal)

FROM emp

GROUP BY job
UNION ALL

SELECT null, null, sum(sal)

FROM emp


위의 쿼리와 아래 쿼리의 결과는 동일하다.




SQL

SQL은 Structured Query Language

DDL, DML, DCL로 구성된다.


SQL*Plus

SQL은 오라클에 의해 제작된 툴이다.

SQL 명령과 PL/SQL 블록을 조작 가능하게 하며 많은 추가적인 일도 수행한다.


SPOOL 명령

당신이 지정한 파일에서 SPOOL 명령을 입력하면 화면에 출력된 모든 정보를 저장한다.

SPO[OL] [파일이름[.확장자]] | OFF | OUT ]


SET 명령

현재 세션에서 환경 변수를 본다.

SET 시스템변수 값

show all : 모든 환경 변수의 내용을 본다.

show 환경변수명 : 해당 환경변수명의 내용을 본다.


glogin.sql 항상 환경변수를 저장하고 싶을 때 사용하는 파일.


시스템 변수

ECHO [ON/OFF]: 명령으로 실행된 명령 파일에서 각 명령을 START명령에 의해 보여줄 것인지 제어한다.

FEEDBACK [ON/OFF] : 무엇을 수행했는지 on이면 보여주고 OFF면 안 보여준다. 

(몇 개 행이 리턴되었나 출력)

HEAD [ON/OFF] : 열 이름을 on이면 표시하고 OFF면 표시하지 않는다.

PAUSE [ON/OFF] : 한 페이지 씩 쿼리 결과를 표시한다.

SERVEROUT [OFF/on] : 

SQLP[ROMPT] {SQL>|text} : SQL Plus 프롬프트를 지정한다.

TIME [OFF/ on] : 현재 시간을 보여준다.


column(열) 명령

COLUMN 컬럼명 옵션

옵션

FOR[MAT] format

예시)

COLUMN sal for a8

폭을 8칸으로 봉급 컬럼(열)을 출력한다.

예시)

COLUMN sal for 9,999

봉금 컬럼(열)의 출력 형식은 ?,???형태로 돈을 출력한다.


Substitution variables(치환 변수)

사용법 : &치환변수명

예시)

select * from &table_name;

table_name의 값을 입력하세요: emp

키보드로 입력하면 table_name 변수에 emp가 대입된다.


select empno, ename, sal

from emp

where ename = &emp_name


select empno, ename, sal

from emp

where ename = '&emp_name'


위의 쿼리보다 아래 쿼리가 더 바람직하다.
아래 쿼리는 ''때문에 emp_name 치환변수가 상수로 인식 되기 때문이다.

ACCEPT
치환 변수를 자동적으로 생성하고 그 변수에 대한 프롬프트를 설정하기 위해 PROMPT와 ACCEPT를 사용한다.
accept 치환변수명 prompt '사원이름:'
예시)

sql>SELECT empno, ename, sal FROM emp WHERE ename = '&emp_name';

sql>ACCEPT emp_name PROMPT '사원이름:';
사원이름:SCOTT
※ 사용자가 SCOTT이라고 입력하였다.
sql>/
구 1 : SELECT empno, ename, sal FROM emp WHERE ename = '&emp_name';
신 1 : SELECT empno, ename, sal FROM emp WHERE ename = 'SCOTT';
※ 쿼리 결과가 출력된다.