'SQL 첫걸음' 공부 -Day 4

윤현묵·2021년 10월 25일
1

MySQL

목록 보기
5/12
post-thumbnail

[학습 DAY - 4]

14강 날짜 연산

  • SQL에서의 날짜
    -. 시스템 날짜 (시계 내장)

    • SELECT CURRENT_TIMESTAMP;
  • 날짜의 덧셈과 뺄셈
    -. 날짜시간형 데이터는 기간형 수치데이터와 덧셈 및 뺄셈 가능 (a + 1 DAY 또는 a - 1 DAY)

    • SELECT CURRENT_DATE + INTERVAL 1 DAY;

    -. 날짜형 간의 뺄셈

    • SELECT DATEDIFF('2021-10-24', '2021-01-01');

15강 CASE 문으로 데이터 변환하기

  • CASE 문
    -. RDBMS에서는 사용자가 함수 작성 가능
    -. 임의에 따라 독자적으로 변환 처리를 지정해 데이터를 변환하고자 할 경우 CASE문 사용
    -. WHEN 절에서는 참/거짓을 반환하는 조건식 기술
    -. TEHN 절에서는 기술한 식 처리
    -. WHEN 조건식을 차례로 평가하다가 가장 먼저 조건을 만족한 WHEN절의 THEN 식 결과를 반환
    -. 모두 만족 못할 경우 ELSE 절에 기술한 식이 채택(생략할 경우 NULL로 간주)

    • CASE 문
      -. CASE WHEN 조건식1 THEN 식1
      -. [WHEN 조건식2 THEN 식2...]
      -. [ELSE 식3]
      -. END
  • COALESCE
    -. NULL 값을 반환하는 경우 COALESCE 함수를 사용이 더 편함
    -. SELECT a, COALESCE(a, 0) FROM sample37;
    -. 여러 개의 인수 지정 가능(NULL이 아닌 값에 대해서는 가장 먼저 지정된 인수 값 반환)
    -. a가 NULL이 아니면 a 출력, NULL이면 0 출력

  • 또 하나의 CASE 문
    -. 숫자로 이루어진 코드를 알아보기 쉽게 문자열로 변환하는 경우 CASE문 많이 사용

    • WHEN a = 1 THEN '남자'
      WHEN a = 2 THEN '여자'
  • CASE를 사용할 경우 주의사항
    -. ELSE를 생략하면 NULL이 됨
    -. 대응하는 WHEN이 하나도 없으면 ELSE 절이 사용되는데 이때 생략하면 NULL 반환
    -. CASE 문의 ELSE는 생략하지 않는 편이 낫다

  • WHEN에 NULL 지정하기
    -. NULL 값 판정은 IS NULL 사용
    -. 검색 CASE 문으로 NULL 값 판정

    • SELECT a, CASE WHEN a = 1 THEN '남자' WHEN a = 2 THEN '여자' WHEN a IS NULL THEN '데이터 없음' ELSE '미지정' END FROM sample37;
  • DECODE NVL
    -. Oracle에 CASE 문과 같은 용도로 사용할 수 있는 DECODE 함수 내장
    -. NULL 값을 변환하는 함수로 Oracle에서는 NVL 함수, SQL Server에서는 ISNULL 함수가 있음

profile
진정성 있는 개발자를 꿈꾼다

0개의 댓글