SELECT * FROM emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------- ---------- ---------- ----------
7839 KING PRESIDENT 81/11/17 5000 10
7698 BLAKE MANAGER 7839 81/05/01 2850 30
7782 CLARK MANAGER 7839 81/05/09 2450 10
7566 JONES MANAGER 7839 81/04/01 2975 20
7654 MARTIN SALESMAN 7698 81/09/10 1250 1400 30
7499 ALLEN SALESMAN 7698 81/02/11 1600 300 30
7844 TURNER SALESMAN 7698 81/08/21 1500 0 30
7900 JAMES CLERK 7698 81/12/11 950 30
7521 WARD SALESMAN 7698 81/02/23 1250 500 30
7902 FORD ANALYST 7566 81/12/11 3000 20
7369 SMITH CLERK 7902 80/12/11 800 20
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------- ---------- ---------- ----------
7788 SCOTT ANALYST 7566 82/12/22 3000 20
7876 ADAMS CLERK 7788 83/01/15 1100 20
7934 MILLER CLERK 7782 82/01/11 1300 10
14개 행이 선택되었습니다.
검색을 원하는 문자 데이터를 검색 하려면 어떻게 해야 할까 ?
숫자 데이터를 검색하는 것과 같이 WHERE 절을 사용 하면 된다.
1.
이름이 SCOTT인 사원의,
이름, 월급, 직업, 입사일, 부서 번호 출력 하기.
SELECT ename, sal, job, hiredate, deptno
FROM emp
WHERE ename = 'SCOTT';
ENAME SAL JOB HIREDATE DEPTNO
---------- ---------- --------- -------- ----------
SCOTT 3000 ANALYST 82/12/22 20
숫자와 다르게 싱글 쿼테이션 마크에 감싸 주면 된다.
감싸줌으로써, 숫자가 아니라, 문자 라는것을 오라클 에게 알려 주는 것이다.
2.
81년 11월 17일에 입사한 사원의 이름과 입사일 출력 하기.
SELECT ename, hiredate
FROM emp
WHERE hiredate = '81/11/17';
ENAME HIREDATE
---------- --------
KING 81/11/17
문자와 동일하게 날짜도 싱글 쿼테이션 마크를 감싸준다.
날짜 데이터 검색의 경우, 현재 접속한 세션의 날짜 형식에 맞춰서,
작성 해야 한다.
우리 나라는, 연/월/일 이지만,
미국의 경우는, 일/월/연 이기 때문에,
17/11/81 로 검색 해야 한다.
따라서, 날짜를 검색 하기 전에 현재 접속한 세션의 날짜 형식을 확인 하는 것이 좋다.
3.
현재 접속한 세션의 날짜 형식 확인 하기.
SELECT *
FROM NLS_SESSION_PARAMETERS
WHERE PARAMETER = 'NLS_DATE_FORMAT';
PARAMETER VALUE
------------------------------ ----------------------------------------------------------------
NLS_DATE_FORMAT RR/MM/DD
RR : 년도
MM : 달
DD : 일
4.
현재 세션의 날짜 형식을 변경 하기.
ALTER SESSION SET NLS_DATE_FORMAT = 'YY/MM/DD';
Session이(가) 변경되었습니다.
YY : 현재 세기의 연도. (2000년대)
RR : 이전 세기의 연도. (1900년대)
위와 같이, YY로 바꾸고, 아래와 같이 쿼리문을 작성 하면 어떻게 될까 ?
SELECT ename, sal
FROM emp
WHERE hiredate = '81/11/17';
선택된 행 없음
선택된 행이 없다고 뜨게 된다.
왜냐하면, YY로 바꾸었기 때문이다.
YY는 2081년을 의미한다.
RR은 1981년을 의미한다.
ALTER SESSION SET 명령어 ?
현재 내가 접속한 세션의 파라미터를 변경하는 명령어 이다.
세션은 데이터 베이스 유저로 로그인 해서 로그아웃 할 때까지의 한 단위를 말한다.
SCOTT 유저로 접속해서 SCOTT 유저로 로그아웃 할 때까지 이다.
즉, NLS_DATE_FORMAT 은 현재 세션 에서만 유효한 파라미터 이다.
만약에, SCOTT 유저로 로그아웃 했다가 재 접속 하면,
NLS_DATE_FORMAT은 RR/MM/DD 로 다시 초기화 된다. (기본값)
'초보자를 위한 SQL 200제 > 이론 & 예제' 카테고리의 다른 글
010 비교 연산자 배우기 1 (>, <, >=, <=, =, !=, <>, ^=) (0) | 2023.07.09 |
---|---|
009 산술 연산자 배우기 (*, /, +, -) (0) | 2023.07.09 |
007 WHERE절 배우기 (숫자 데이터 검색) (0) | 2023.07.07 |
006 데이터를 정렬해서 출력하기 (ORDER BY) (0) | 2023.07.07 |
005 중복된 데이터를 제거해서 출력하기 (DISTINCT) (0) | 2023.07.06 |