SELECT ENAME, SAL*12
2 FROM EMP;
SAVE A001
HOST
D:\test2>DIR
2024-01-11 오후 04:36 56 a001.sql
ED A001
SACE TEMP REPlACE
SAVE TEMP APPEND
@ filename
SPOOL filename
SPOOL OFF
GET filename
SHOW USER : 현재 연결되어 있는 계정을 보여준다
SHOW/SET HEADING(HEA) on | off : SELECT 명령어를 수행한 후 실행결과가 출력될 때 컬럼의 제목을 출력할 것인지 여부를 제어한다.
디폴트 값은 on이고, 컬럼 제목이 출력되지 않도록 하려면 SET HEADING OFF 명령을 입력하면 된다.
SHOW/SET LINESIZE(LIN) n : SELECT 명령어를 수행한 후 결과를 출력할 때 라인에 출력할 최대 문자(Character) 수를 결정한다. 디폴트 80.
SHOW/SET PAGESIZE(PAGES) n : SELECT 명령어를 수행한 후 결과를 출력할 때 한 페이지에 출력할 최대 라인 수를 결정한다. 디폴트 14.
COLUMN 컬럼이름 FORMAT AN : 문자형식 컬럼의 출력 길이 조정. A다음에 컬럼의 길이를 지정한다.
COLUMN 컬럼이름 FORMAT 99,999..00,000.. : 숫자형식 컬럼의 출력 길이 조정. 숫자 개수는 자리수를 의미한다.
0은 출력할 자리수보다 작은 데이터를 출력할 경우에는 0으로 채운다.
컴마가 들어가면 출력결과에 그대로 반영된다.
SELECT EMPNO, ENAME, SAL
2 FROM EMP
3 WHERE SAL=3000;
📁 BETWEEN ~ AND ~
SELECT *
FROM EMP
WHERE SAL<2000 OR SAL>3000;
SELECT *
FROM EMP
WHERE SAL NOT BETWEEN 2000 AND 3000;
📁IN
COLUMN_name IN(A, B ,C)
SELECT *
FROM EMP
WHERE COMM IN(300, 500, 1400);
📁 'F'로 시작하는 이름 찾기
SELECT *
FROM EMP
WHERE ENAME LIKE 'F%';
📁이름의 두 번째 글자가 A인 사람 찾기
SELECT *
FROM EMP
WHERE ENAME LIKE '_A%';
📁이름에 A가 포함되지 않는 사람 찾기
SELECT *
FROM EMP
WHERE ENAME NOT LIKE '%A%';
SELECT *
FROM EMP
WHERE COMM IS NULL;
SELECT *
FROM EMP
WHERE COMM IS NOT NULL;
| ASC(오름차순) | DESC(내림차순) | |
|---|---|---|
| 숫자 | 작은 값부터 정렬 | 큰 값부터 정렬 |
| 문자 | 사전 순으로 정렬 | 사전 반대 순서로 정렬 |
| 날짜 | 오래 된 -> 최근 | 최근 -> 오래 된 |
| NULL | 가장 마지막에 나온다. | 가장 먼저 나온다. |
ORDER BY만 입력하고 형식을 정해주지 않으면 디폴트로 ASC 적용한다.
정렬을 병렬로 할 수도 있다. SAL 기준으로 내림차순으로 정리하고, 그 값에서 중복되는 값들을 ENAME을 기준으로 오름차순으로 정렬하도록 작동한다. 아래 코드를 보면 SAL 컬럼을 기준으로 내림차순 정렬이 되어 있는데, 중복되는 3,000 / 1,250 에서는 ENAME컬럼을 기준으로 정렬된 결과가 출력된다.
SELECT *
FROM EMP
ORDER BY SAL DESC. ENAME ASC;
[출력결과]
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- -------- ------------ ---------- -------- ---------- ------ ------
7839 KING PRESIDENT 81/11/17 5,000 10
7902 FORD ANALYST 7566 81/12/03 3,000 20
7788 SCOTT ANALYST 7566 87/07/13 3,000 20
7566 JONES MANAGER 7839 81/04/02 2,975 20
7698 BLAKE MANAGER 7839 81/05/01 2,850 30
7782 CLARK MANAGER 7839 81/06/09 2,450 10
7499 ALLEN SALESMAN 7698 81/02/20 1,600 0,300 30
7844 TURNER SALESMAN 7698 81/09/08 1,500 0,000 30
7934 MILLER CLERK 7782 82/01/23 1,300 10
7654 MARTIN SALESMAN 7698 81/09/28 1,250 1,400 30
7521 WARD SALESMAN 7698 81/02/22 1,250 0,500 30
7876 ADAMS CLERK 7788 87/07/13 1,100 20
7900 JAMES CLERK 7698 81/12/03 950 30
7369 SMITH CLERK 7902 80/12/17 800 20
14 rows selected.
📁단일 행 함수(single-row Functions)
📁DUAL 테이블
SELECT 20*40
from EMP;
20*40
----------
800
800
800
800
800
800
800
800
800
800
800
800
800
800
SELECT 20*40
from DUAL;
20*40
----------
800
📁ABS 함수
📁FLOOR 함수
SELECT -34.5678, FLOOR(-34.5678)
FROM DUAL;
-34.5678 FLOOR(-34.5678)
---------- ---------------
-34.5678 -35
📁ROUND 함수
ROUND(대상, 자릿수)
SELECT 34.5678, ROUND(34.5678, 2)
FROM DUAL;
34.5678 ROUND(34.5678,2)
---------- ----------------
34.5678 34.57
SELECT 34.5678, ROUND(34.5678, -1)
from DUAL;
34.5678 ROUND(34.5678,-1)
---------- -----------------
34.5678 30
📁TRUNC 함수
SELECT TRUNC(34.5678, 2), TRUNC(34.5678, -1), TRUNC(34.5678)
from DUAL;
TRUNC(34.5678,2) TRUNC(34.5678,-1) TRUNC(34.5678)
---------------- ----------------- --------------
34.56 30 34
📁MOD 함수
SELECT MOD(27,2), MOD(27,5), MOD(27,7)
from DUAL;
MOD(27,2) MOD(27,5) MOD(27,7)
---------- ---------- ----------
1 2 6
📁여러 문자 처리 함수
| 구분 | 설명 |
|---|---|
| LOWER | 소문자로 변환 |
| UPPER | 대문자로 변환 |
| INITCAP | 첫 글자만 대문자로, 나머지 글자는 소문자로 변환한다. |
| CONCAT | 문자의 값을 연결한다. |
| SUBSTR | 문자를 잘라 추출한다. |
| LENGTH | 문자의 길이를 반환한다. |
SELECT SUBSTR(HIREDATE, 1, 2) 년도, SUBSTR(HIREDATE, 4, 2) 달
from EMP;
년도 달
---------------- ----------------
80 12
81 02
81 02
81 04
81 09
81 05
81 06
87 07
81 11
81 09
87 07
81 12
81 12
82 01