[KT AIVLE 4기] SQL

이장래 강사님께서 SQL을 주제로 강의를 진행해주셨다.

관련 코드 링크

외워야 할 부분들만 따로 정리했다.

변수 저장

SET @Today = CURDATE();
SELECT @Today;

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

  1. 특수 기호 사용
  • ‘abc%’ : ‘abc’로 시작하는 문자열
  • ‘%def’ : ‘def’로 끝나는 문자열
  • ‘%ghi%’ : ‘ghi’를 포함하는 문자열
  • ‘j_k’ : ‘j’와 ‘k’ 사이에 하나의 문자를 가지는 세 글자로 이루어진 문자열
  • ___@%: 이메일에서 @ 앞의 글자가 3개인 문자열
  1. 대소문자 구분 없이 일치
  • 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;

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 테이블명;

Categories:

Updated:

Leave a comment