본문 바로가기
Experience/- KT AIVLE School

KT AIVLE School 15주차 정리 - SQL

by Yoojacha 2023. 5. 8.

저는 SQL에 대해서 많이 접해왔기 때문에 기본적인 문법은 체화가 되어있어서 조금 낯설거나, 외워둘만한 것을 정리했습니다.


변수 저장하기

SET @Today = CURDATE();

SELECT @Today;

LIKE를 사용하여 특정 패턴을 일치시키는 방법

  1. 와일드카드 사용
    • 'abc%' : 'abc'로 시작하는 문자열
    • '%def' : 'def'로 끝나는 문자열
    • '%ghi%' : 'ghi'를 포함하는 문자열
    • 'j_k' : 'j'와 'k' 사이에 하나의 문자를 가지는 세 글자로 이루어진 문자열
    • ___@%: 이메일에서 @ 앞의 글자가 3개인 문자열
  2. 대소문자 구분 없이 일치
    • COLLATE 절을 사용
    • WHERE 이름 COLLATE UTF8_GENERAL_CI LIKE 'a%'

CONCAT을 사용하여 조회를 다채롭게 하기

SELECT CONCAT(이름, '(', 영어이름, ')' AS 이름, 부서아이디, AS 부서, 성별

FROM employee

WHERE 퇴직일 IS NULL;


CASE 문 사용하기

WHEN 조건 THEN 변경해서 보여줄 값 ELSE 변경해서 보여줄 값 END

 

SELECT 부서, 성별 

        WHEN 0 THEN "남자"

        WHEN 1 THEN "여자"

        ELSE "기타"

        END, 이름

FROM 직원

ORDER BY 이름;

 

SELECT emp_name, emp_id, gender, hire_date, salary,
       CASE WHEN retire_date IS NULL THEN '근무'
            ELSE '퇴사' END AS status
FROM employee;


IF 문 사용하기

IF(조건문, 참일 때 값, 거짓일 때 값)


Null 값 다루기

  • IS NULL, IS NOT NULL을 활용한 NULL 값 조건 적용
  • IFNULL( 컬럼 이름, 대체값 )으로 NULL 값 대체값 적용 ( 오라클은 NVL() )
  • COALESCE( 값1, 값2, 값3, ...)으로 주어진 인자 중에 NULL 이 아닌 첫번째 값을 반환

MySQL의 데이터 형변환

  • '10' + '20AX' -> 30
  • '10' + 'AX20' -> 10
  • 문자열을 붙일 때는 CONCAT() 사용

순위 출력 방법

SELECT
<순위함수이름> ( arguments )
OVER ([ PARTITION BY <partion_by_list>] )
ORDER BY <order_by_list>)
FROM 테이블명;

댓글