저는 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 테이블명;
'Experience > - KT AIVLE School' 카테고리의 다른 글
KT AIVLE School 빅프로젝트 - 개발 환경 설정 (0) | 2023.07.19 |
---|---|
KT AIVLE School 빅프로젝트 - Django와 React 소통하기 (0) | 2023.07.19 |
AIVLE School 17주차 정리 - 미니프로젝트 7차 (0) | 2023.05.27 |
KT AIVLE School 14주차 정리 - ec2, k8s (0) | 2023.05.08 |
KT AIVLE School 11주차 정리 - 미니프로젝트 5차 (0) | 2023.04.14 |
KT AIVLE School 10주차 정리 - 미니프로젝트 4차 (0) | 2023.04.09 |
댓글