1. SQL *Plus
1) SQL *Plus 명령어의 개념
- SQL *Plus는 SQL문을 실행시키고 그 결과를 볼 수 있도록 오라클에서 제공하는 툴
- SQL *Plus 명령어는 툴에서 출력 형식을 지정하는 등 환경을 설정하는 것이고 SQL은 데이터베이스에서 자료를 검색하고 수정, 삭제하는 등 데이터베이스 언어임.
2) SQL *Plus 편집 명령어
a. ED
- 파일의 내용을 메모장에서 쉽게 편집할 수 있도록 ED[IT] 명령어를 제공합니다.
- 주의할 점은 SQL 버퍼를 편집기로 열었을 때 명령문 끝에 붙였던 ; 가 편집화면에서는 /로 보임
EDIT filename
b. SAVE
- 사용자가 가장 최근에 수행한 쿼리문을 파일로 저장할 수 있도록 제공하는 명령어
- SAVE 명령어는 옵션으로 REPLACE 혹은 APPEND를 사용 가능
- REPLACE : 이미 존재하는 파일에 새로운 내용을 덮어쓰기 원할 때 사용
- APPEND : 이미 존재하는 파일 끝에 마지막으로 실행한 명령어가 추가
SAVE filename[.ext] [REPLACE|APPEND]
c. SPOOL
- 실행된 쿼리 결과를 파일로 기록하는 명령어
- 화면에 보여지는 내용 전체를 갈무리해서 하나의 파일로 만듦
- 확장자는 기본으로 .LST가 부여
SPOOL filename
d. SPOOL OFF
- SPOOL를 해제하기 위한 명렁어로 SPOOL OFF가 제공
- 화면 갈무리 작업을 중단하며 해제하기 전까지의 여러 SQL 명령문을 모두 저장
- SPOOL 명령어를 사용할 때 주의할 점은 화면 갈무리한 내용을 저장하기 위해서 반드시 SPOOL OFF를 해줘야 함
- SPOOL OFF를 하지 않고 종료 시 갈무리한 내용이 저장되지 않음
SPOOL OFF
e. GET
- SAVE 명령어를 사용하여 저장한 SQL 명렁어를 다시 사용할 수 있는데 이때 사용하는 명령어- SQL 파일에 저장된 쿼리문을 버퍼에 불러온 후에 /을 입력하여 이전에 실행했던 쿼리문을 재실행 가능
3) 시스템 변수 조작을 위한 SET 명령어a. HEADING (HEA) on | off - SELECT 명령어를 수행한 후 실행결과가 출력될 때 컬럼의 제목을 출력할 것인지의 여부를 제어- 디폴트 값은 ON이므로 컬럼 제목이 출력, 제목이 출력되지 않도록 하려면 OFF 사용
b. LINESIZE(LIN) n
- SELECT 명령어를 수행한 후 결과를 출력할 때 한 라인에 출력할 최대 문자 수를 결정
- 디폴트 값은80이며 출력할 문자 수가 80이상이면 SET LINESIZE 100 이라고 설정
c. PAGESIZE(PAGES) n
- SELECT 명령어를 수행한 후 결과를 출력할 때 한 페이지에 출력할 최대 라인 수를 결정
- 디폴트 값은 14이며 페이지 당 출력할 라인수를 10으로 조절하려면 SET PAGESIZE 10이라고 설정
d. COLUMN FORMAT
- 칼럼 데이터에 대한 출력 형식을 다양하게 지정하기 위한 명령어
2. 특정 데이터 추출하기
1) WHERE조건
- 원하는 로우만 얻으려면 로우 제한하는 조건을 SELECT문에 WHERE 절을 추가하여 제시
SELECT *[column1, colmn2, ... ]
FROM table_name
WHERE 조건절;
- 조건절은 다음의 세 부분으로 구성
WHERE SAL >= 3000;
①컬럼②연산자③비교대상값
2) WHERE 절을 이용한 조건 검색
SELECT * FROM EMP
WHERE DEPTNO = 10;
3) 날짜 데이터 조회
- 1981년 1월 1일 이후에 입사한 사원을 조회하려면?
SELECT * FROM EMP
WHERE HIREDATE <= '1981/01/01';
4) 논리 연산자
a. AND : 두 가지 조건을 모두 만족해야만 검색 가능
[조건1]: 10번 부서 소속인 직원: DEPTNO = 10
[조건2]: 직급이 MANAGER인 사원 : JOB = 'MANAGER'
SELECT * FROM EMP WHERE DEPTNO = 10 AND JOB = 'MANAGER';
b. OR : 두 가지 조건 중에서 한 가지만 만족하더라도 검색 가능
[조건1]: 10번 부서 소속인 직원: DEPTNO = 10
[조건2]: 직급이 MANAGER인 사원 : JOB = 'MANAGER'
SELECT * FROM EMP WHERE DEPTNO = 10 OR JOB = 'MANAGER';
c. NOT : 조건에 만족하지 못하는 것만 검색 가능
부서번호가 10번이 아닌 사원의 사원이름, 부서번호, 직급을 출력
SELECT * FROM EMP WHERE NOT DEPTNO = 10;
5) 논리 연산자의 다양한 활용
[조건1] 커미션이 300 : COMM = 300
[조건2] 커미션이 500 : COMM = 500
[조건3] 커미션이 1400 : COMM = 1400
SELECT * FROM EMP WHERE COMM = 300 OR COMM = 500 OR COMM = 1400;
6) BETWEEN AND
- 특정 범위의 값을 조회하기 위해서 사용
2000에서 3000사이의 급여를 받는 사원을 조회하기 위해 BETWEEN AND 사용
SELECT * FROM EMP
WHERE SAL BETWEEN 2000 AND 3000;
급여가 2000 미만이거나 3000 초과인 사원을 검색하기 위해 비교 연산자와 OR 연산자로 사용
- OR 사용
SELECT * FROM EMP
WHERE SAL < 2000 OR SAL >3000;
- BETWEEN AND 사용
SELECT * FROM EMP
WHERE SAL NOT BETWEEN 2000 AND 3000;
- BETWEEN AND 연산자는 숫자형 뿐만 아니라 문자형 날짜형에도 사용 가능
- 주의할 점은 비교 대상이 되는 값을 단일 따옴표로 둘러싸야 함
SELECT * FROM EMP
WHERE HIREDATE BETWEEN '1987/01/01' AND '1987/12/31';
'DB > Oracle' 카테고리의 다른 글
Oracle DB #6 조인 , 서브 쿼리 (0) | 2021.05.31 |
---|---|
Oracle DB #5 SQL 주요 함수, 그룹 함수 (0) | 2021.05.30 |
Oracle DB #4 SQL 주요 함수 (0) | 2021.05.29 |
Oracle DB #3 SELECT로 특정 데이터 추출(IN 연산자, LIKE 연산자 , IS NULL , ORDER BY) , SQL 주요 함수 (0) | 2021.05.28 |
Oracle DB #1 데이터형, SELECT문 ,DESC, 특정 데이터만 보기, 산술 연산자 (0) | 2021.05.26 |