[KT AIVLE 4기] SQL
이장래 강사님께서 SQL을 주제로 강의를 진행해주셨다.
외워야 할 부분들만 따로 정리했다.
변수 저장
SET @Today = CURDATE();
SELECT @Today;
LIKE를 사용하여 특정 패턴을 일치시키는 방법
- 특수 기호 사용
- ‘abc%’ : ‘abc’로 시작하는 문자열
- ‘%def’ : ‘def’로 끝나는 문자열
- ‘%ghi%’ : ‘ghi’를 포함하는 문자열
- ‘j_k’ : ‘j’와 ‘k’ 사이에 하나의 문자를 가지는 세 글자로 이루어진 문자열
- ___@%: 이메일에서 @ 앞의 글자가 3개인 문자열
- 대소문자 구분 없이 일치
- 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 테이블명;
Leave a comment