[SQL] SQL SELECT문, 데이터 제한 및 정렬
--일시적으로 날짜 형식 지정
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD';
--우선 순위 규칙
--산술 연산자 / 연결 연산자 / 비교 조건 / IS [NOT] NULL, LIKE, [NOT] IN / [NOT] BETWEEN / 같지않음 / NOT 논리 연산자 / AND 논리 연산자 / OR 논리 연산자
--LIKE
SELECT FIRST_NAME
FROM EMPLOYEES
WHERE FIRST_NAME LIKE 'S_____';
SELECT FIRST_NAME
FROM EMPLOYEES
WHERE FIRST_NAME LIKE 'S%';
--ESCAPE 문자 : '_' 혹은 '%' 를 문자로 검색하고자 할 때 사용
SELECT FIRST_NAME
FROM EMPLOYEES
WHERE FIRST_NAME LIKE 'S_\_%' ESCAPE '\';
SELECT FIRST_NAME
FROM EMPLOYEES
WHERE FIRST_NAME LIKE 'S_*_%' ESCAPE '*';
--NULL
SELECT FIRST_NAME
FROM EMPLOYEES
WHERE MANAGER_ID IS NOT NULL;
--대체 인용(Q) 연산자
SELECT DEPARTMENT_NAME || Q'[department's Manager ID:]' || MANAGER_ID
AS "DEPARTMENT AND MANAGER"
FROM DEPARTMENTS;
--IN 연산자
SELECT EMPLOYEE_ID,LAST_NAME,SALARY,MANAGER_ID
FROM EMPLOYEES
WHERE MANAGER_ID IN(100,101,102);
--NOT IN 연산자
--NOT BETWEEN 연산자
SELECT LAST_NAME,MANAGER_ID
FROM EMPLOYEES
WHERE MANAGER_ID NOT BETWEEN 100 AND 200;
--BETWEEN 연산자
SELECT LAST_NAME,MANAGER_ID
FROM EMPLOYEES
WHERE MANAGER_ID BETWEEN 100 AND 200;
--<> 연산자
SELECT LAST_NAME,MANAGER_ID
FROM EMPLOYEES
WHERE MANAGER_ID<>100 AND MANAGER_ID!=101;
--1차적으로 DEPARTMENT_ID 를 이용해 전체 사원 데이터를 오름차순으로 정렬 , 2차적으로 같은 부서에 있는 사원들에 대해 SALARY를 이용해 정렬
SELECT LAST_NAME,DEPARTMENT_ID,SALARY
FROM EMPLOYEES
ORDER BY DEPARTMENT_ID, SALARY DESC;
--행 제한
SELECT LAST_NAME,EMPLOYEE_ID,SALARY
FROM EMPLOYEES
ORDER BY EMPLOYEE_ID
FETCH FIRST 5 ROWS ONLY;
SELECT LAST_NAME,EMPLOYEE_ID,SALARY
FROM EMPLOYEES
ORDER BY EMPLOYEE_ID
OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY;
--치환 변수 (SUBSTITUTION VARIABLE): &단일 앰퍼샌드 및 &&이중 앰퍼샌드 치환을 사용한다.
SELECT EMPLOYEE_ID,LAST_NAME
FROM EMPLOYEES
WHERE EMPLOYEE_ID = &EMPLYEE_ID;
SELECT EMPLOYEE_ID,LAST_NAME
FROM EMPLOYEES
WHERE EMPLOYEE_ID = &HEY;
SELECT EMPLOYEE_ID,LAST_NAME,&SELECT
FROM EMPLOYEES
WHERE &WHERE
ORDER BY &ORDERBY;
SELECT EMPLOYEE_ID,LAST_NAME,&&1
FROM EMPLOYEES
ORDER BY &1; --&&와 &이 같아야함