ABOUT ME

Today
Yesterday
Total
  • [SQL] SQL SELECT문, 데이터 제한 및 정렬
    카테고리 없음 2021. 9. 6. 11:52

     

     

    --일시적으로 날짜 형식 지정
    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; --&&와 &이 같아야함

    728x90
Designed by Tistory.