Experience/- KT AIVLE School
KT AIVLE School 15주차 정리 - SQL
Yoojacha
2023. 5. 8. 09:28
저는 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;
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 테이블명;
반응형