퍼온곳 : www.jigi.net
1. 주로 사용되는 명령어
LIST, SAVE, GET, EDIT, SPOOL 편집 명령과 파일 조작
RUN, @, / 실행
HOST, EXIT 데이터베이스 접속 및 종료
LINE, PAGE 출력 형식
1) LIST
SELECT ename, sal*12 FROM emp;
LIST
방금 실행한 쿼리문을 다시한번 보여줍니다.
L 이라고 단축으로 실행하셔도 됩니다.
2) RUN
LIST로 버퍼에 저장된 쿼리문을 실행하기 위한 명령어 입니다.
RUN 은 R 이나 / (슬레시)로 단축키를 사용할수 있습니다.
3) EDIT
버퍼에 저장된 쿼리문을 편집하기 위한 명령어
EDIT 는 ED 라는 단축키를 사용할수 있습니다.
편집창이 호출되고 명령문을 편집완료 하였다면 창을 닫으면 저장할지 여부를 묻습니다.
저장하게 되면 SQL Plus 화면에 편집된 쿼리문을 보여 줍니다.
실행 하시려면 R 이나 / 를 입력하시면 됩니다.
4) HOST
도스 프롬프트로 나가서 다른 작업을 수행할수 있습니다.
완전히 종료되는 것은 아니고 일시적으로 수행 창을 도스 프롬프트로 바꾸어 줍니다.
다시 SQL Plus 로 돌아가려면 도스 프롬프트 창을 닫으시면 됩니다.
5) EXIT
SQL Plus 를 완전히 종료 합니다.
6) SAVE
마지막에 실행한 명령어를 저장하는 명령어 입니다.
SAVE a001
a001.sql 이 생성됩니다.
저장된 파일을 실행하려면
@a001
처럼 @기호와 파일 이름을 써주고 엔터키를 누르면 됩니다.
저장된 파일에 새로운 결과를 저장하려면
select * from dept;
라는 명령문을 실행했다고 본다면
SAVE a001 REPLACE
를 실행합니다.
결과를 다시 확인하려면 불러들이면 되죠...
@a001
7) GET
파일로 저장된 쿼리문을 불러와서 보여줍니다.
실행은 R 이나 / 기호를 이용하여야 합니다.
8) SPOOL
SPOOL b001
b001 로 실행결과를 저장하겠다는 표현이며,
select * from emp;
select * from dept;
의 실행 결과를 최종 저장하기 위해선
SPOOL OFF
가 최종 실행되어야 합니다.
HOST로 잠시 도스프로프트창으로 나가서
dir *.lst
를 실행하시면 결과파일이 생성됨을 보실수 있습니다.
notepad b001.lst
exit
다시 돌아옵니다.
9) 시스템 변수 설정하기 위한 SET 명령어
형식:
SET 시스템_변수명 값
SET HEADING OFF
select * from emp;
컬럼제목이 나오지 않게 합니다
SET HEADING ON
select * from emp;
다시 복원 합니다.
10) 한 화면에 출력되는 라인의 수를 결정하는 LINESIZE 변수
SET LINESIZE 40
desc emp;
11) 한 페이지에 출력되는 페이지의 크기를 결정하는 PAGESIZE 변수
SET PAGESIZE 10
select * from emp;
12) 컬럼제목을 설정하기 위한 COLUMN HEADING
COLUMN empno HEADING '사원번호'
select * from emp;
13) 컬럼에 대한 설정된 값을 확인하거나 해제하기
확인:
COLUMN empno
해제:
COLUMN empno CLEAR
14) 컬럼 제목의 출력 형식을 변경하기 위한 COLUMN FORMAT
COLUMN dname FORMAT A10
해당 컬럼의 크기를 10으로 지정합니다.
숫자 데이터 출력형식 변경
COLUMN sal FORMAT 0,000,000
숫자의 경우 다시 복원하려면
COLUMN dname FORMAT 999999
출처 : http://www.netme.kr/bbs/board.php?bo_ta ••• page%3D2
sqlplus 에서 edit를 리눅스에서 자동으로 vi가 실행되도록 하자.
--> 디렉터리 이동 ( 오라클 홈 디렉터리/sqlplus/admin )
cd /$ORA_HOME/oracle/product/9.2.0/sqlplus/admin
--> 아래와 같은 파일을 찾아보자.
glogin.sql
--> 위의 파일 편집
vi glogin.sql
--> 아래와 같은 내용 glogin.sql에 추가
define _editor=vi
1) edit(ed) -
2) save(sav) - 현재 버퍼에 저장된 쿼리문을 별도의 파일에 저장
ex) SQL > save savetest01.sql
ex) SQL > save savetest01.sql replace --> 기존 파일이 있으면 덮어씌우기
ex) SQL > save savetest01.sql append --> 기존 파일에 추가하기
3) get - 쿼리문을 파일로부터 불러오기
ex) SQL > get savetest01.sql
4) start(sta) - get으로 불러온 쿼리문 실행
ex) SQL > start savetest01.sql
ex) SQL > @ savetest01.sql --> 같다.
5) spool(spo) - 기능을 켜놓은 상태의 모든 화면을 텍스트 형태로 저장한다.
ex) SQL > spool spooltest.txt --> spooltest.txt에 저장 시작
ex) SQL > spool off --> spool 끄기
----------------------------------------------------------------------------------------------
Oracle SQL* Plus
----------------------------------------------------------------------------------------------
SQL > show all --> 모든것 보기
SQL > show autocommit
SQL > set autocommit on --> DML 구문실행시 자동 commit, 롤백 불가.
SQL > show feedback --> 결과값이 6행(기본값) 이상일 때, 몇개가 나왔는지 알려줌.
SQL > set feedback 3 --> 3행 이상의 결과값이 나올때... 로 변경
SQL > set heading off --> 결과물의 컬럼명 나타내기 / 숨기기
SQL > set line(linesize) 100 --> 한 화면에 최대 사용가능한 글자 수.(기본값 80)
SQL > set pause on
--> 한 화면에 모두 나오지 않는 결과값의 경우 엔터키에 의해 한 페이지씩 넘긴다.
ex) select * from dictionary;
SQL > set time on --> 16:55:24 SQL > 이렇게 시계가 생긴다. (기본값 : off)
--> 불의의 사고로 인한 백업/복구 작업시 실수한 작업당시의 시간을 알아야 하므로 중요하다.
SQL >제 set timing on --> 쿼리문 작업 처리 시간 보기
ex) select * from dept;
--> 14 개의 행이 선택되었습니다.
--> 경 과: 00:00:01.00
SQL > col empno format 9999 --> 리턴된 값의 표를 깔끔히 하기위해 자릿수를 지정한다.
SQL > col ename format a10
SQL > col job format a9 --> 문자 9자리
SQL > col mgr format 9999 --> 숫자 4자리
SQL > col hiredate format a9
SQL > col sal format $9,999 --> 숫자 3자리마다 컴마(,)가 생기고, 앞에 $가 붙는다.
SQL > col comm format $99,999.99 --> 정수 총 5자리에서 3자리마다 컴마, 나머지는 소수부 점(.)
SQL > col deptno format 099
SQL > col ename clear --> 저장된 값 삭제
SQL > set sqlprompt 하하하 SQL >--> SQL > 가 하하하 SQL > 로 변경된다.
--> 세션 종료시까지만 유지되는 단점이 있어서 다음과 같은 방법으로 고정 가능.
--> C:\oracle\ora92\sqlplus\admin\glogin.sql 파일을 워드패드로 불러와서, 아래 행 추가.
----------------------------------------------------------------------------------------------
-- USER DEFINE
SET SQLPROMPT "하하하 SQL > "
----------------------------------------------------------------------------------------------
* 치환변수
----------------------------------------------------------------------------------------------
SQL > select ename,deptno
1 > from EMP
2 > where deptno=&buno; --> 엔터 실행
buno의 값을 입력하시오 : 10 --> 사용자가 10을 입력하여, buno에 10이 입력된다.
구 3: where deptno=&buno --> 입력받을 값이 숫자일 경우
신 3: where deptno=10
ENAME DEPTNO
---------- ----------
CLARK 10
KING 10
MILLER 10
----------------------------------------------------------------------------------------------
SQL > select ename,job,sal
2 from emp
3 where job=upper('&jik'); --> 입력받을 값이 문자열일 경우
jik의 값을 입력하십시오: salesman
구 3: where job=upper('&jik')
신 3: where job=upper('salesman') --> jik에 salesman이란 값이 치환되었다.
ENAME JOB SAL
---------- --------- ----------
ALLEN SALESMAN 1600
WARD SALESMAN 1250
MARTIN SALESMAN 1250
TURNER SALESMAN 1500
----------------------------------------------------------------------------------------------
SQL> select * from dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
----------------------------------------------------------------------------------------------
SQL> insert into dept values(&dno,'&dna','&lo'); --> 숫자타입, 문자타입 구분
dno의 값을 입력하십시오: 50
dna의 값을 입력하십시오: 연구부
lo의 값을 입력하십시오: 서울
구 1: insert into dept values(&dno,'&dna','&lo')
신 1: insert into dept values(50,'연구부','서울') --> 이렇게 치환된다.
1 개의 행이 만들어졌습니다.
SQL> select * from dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
50 연구부 서울
----------------------------------------------------------------------------------------------
* 메모장을 열어 아래와 같이 입력하여, accepttest01.sql로 저장한다.
accept v_deptno prompt '부서번호를 입력하세요 : '
accept v_job prompt '직종을 입력하세요 : '
col empno format 9999
col ename format a10
col job format a9
col mgr format 9999
col hiredate format a9
col sal format $9,999
col comm format $99,999.99
col deptno format 099
select empno,ename,deptno,job,sal
from emp
where deptno=&v_deptno and job=upper('&v_job')
/
col empno clear
col ename clear
col job clear
col mgr clear
col hiredate clear
col sal clear
col comm clear
col deptno clear
----------------------------------------------------
--> 실행
SQL> @ C:\oracle\ora92\sqlplus\admin\accepttest01.sql
--> 위의 파일을 폴더에 저장하였다. C:\oracle\ora92\sqlplus\admin\
부서번호를 입력하세요 : 10 --> 10입력
직종을 입력하세요 : MANAGER --> MANAGER 입력
구 3: where deptno=&v_deptno and job=upper('&v_job')
신 3: where deptno=10 and job=upper('MANAGER')
--> 결과값
EMPNO ENAME DEPTNO JOB SAL
----- ---------- ------ --------- -------
7782 CLARK 010 MANAGER $2,450
출처 : http://heyjoon.egloos.com/2764458
'Oracle > SQL' 카테고리의 다른 글
2012.01.03 SQL 2일차(2) 일반함수(nvl,nvl2,decode,case) (0) | 2012.01.09 |
---|---|
2012.01.03 SQL 2일차(1) 문자함수(LPAD,RPAD,REPLACE), 숫자함수, 날짜함수, 변환함수 (0) | 2012.01.09 |
2012.01.02 SQL 1일차(3) 연습노트( RTRIM의 미묘한 삭제, SUBSTR연습 ) (0) | 2012.01.09 |
2012.01.02 SQL 1일차(2) (sql함수,문자함수,대소문자변환함수,문자열길이반환함수,문자조작함수) (0) | 2012.01.09 |
2012.01.02 SQL 1일차(1) (literal,연결연산자,where,between,in,like,null,집합연산자,정렬) (0) | 2012.01.09 |