- SQL 사전2024년 09월 10일
- 31514
- 작성자
- 2024.09.10.:58
SQL을 사용하면서 몰랐던 부분에 대해 정리하는 글(계속 수정)
NULL 관련
- IFNULL(컬럼명, 대체값)
GROUP BY 관련
- HAVING 절에 집계 함수를 사용할 수 있다.
UNION 관련
- UNION을 사용하여 테이블을 합친 뒤 ORDER BY를 사용할 수 있다.
윈도우 함수 관련
- PERCENT_RANK() OVER (ORDER BY 컬럼명)
사칙연산 관련
- N DIV M : N을 M으로 나눈 몫을 구할 수 있다.
ORDER BY 관련
SELECT CONCAT(컬럼명, '추가') FROM TABLE ORDER BY 1;
만약 위와 같은 쿼리가 있을 때, 컬럼명이 숫자 자료형이라면 의도한 대로 정렬되지 않을 수 있다.
그 이유는 숫자 자료형이 문자 자료형으로 바뀌기 때문이다.
만약 숫자에 문자를 추가한 다음 숫자를 기준으로 정렬하고 싶다면 아래와 같은 쿼리를 사용하자.
SELECT CONCAT(컬럼명, '추가') FROM TABLE ORDER BY 컬럼명;
문자열 관련
length
select length(컬럼명) char_length from table -- 문자열의 문자 개수를 반환
position
select position('찾고 싶은 문자열' in 컬럼명) from table; -- 컬럼에서 찾고자 하는 문자열의 위치를 알 수 있음
locate
select locate('찾고 싶은 문자열', 컬럼명, 시작 위치) from table; -- 시작 위치에서 시작하는 찾고자 하는 문자열의 위치를 찾음
replace
select replace(원래 문자열, 바꿀 문자열, 대체할 문자열) from table; -- 원래 문자열에서 바꿀 문자열과 일치하는 모든 문자열이 대체됨
substring
select substring(문자열, 시작 위치, 길이) -- 문자열의 시작 위치에서 길이만큼 추출함
숫자 데이터 관련
mod
select mod(N, M) -- N을 M으로 나눈 나머지
pow
select pow(N, M) -- N의 M 제곱 수
sign
select sign(컬럼명) from table; -- 숫자가 양수면 1, 0이면 0, 음수면 -1
시간 데이터 관련
DBMS에 설정된 시간대 확인 및 변경
select @@global.time_zone, @@session.time_zone; set time_zone = 'Europe/Zurich';
date_format
select date_format(컬럼명, '%Y-%m-%d') from table; -- 날짜 형식의 데이터를 2018-06-25 형식으로 변경
cast
select cast(날짜 문자열 as [datetime | date | time]) -- 서버가 날짜 데이터라고 판단할 수 없거나, 기본 형식이 아닌 형식을 사용하면 -- cast를 사용하여 문자열을 날짜 데이터로 변환할 수 있음
str_to_date
문자열에서 시간 데이터를 생성해야 하는데, 문자열이 cast를 사용하기에는 적절한 형식이 아닐 경우 사용
date_add
지정된 날짜에 일정 기간을 더해서 다른 날짜 생성
last_day
특정 월의 마지막 날을 찾음
dayname
해당 날짜의 요일을 알려줌
datediff
select datediff(날짜1, 날짜2) -- 두 날짜 사이의 일수 차이를 계산
select (날짜1 - 날짜2) -- 직접 날짜 뺄셈은 데이터베이스 시스템에 따라 다르게 동작할 수 있다. -- 일부 시스템에서는 시간 정보도 포함하여 계산할 수 있다.
'개발' 카테고리의 다른 글
[MySQL] DELETE & UPDATE (0) 2024.10.04 멀티 프로세싱 & 멀티 스레딩 & 비동기 처리 (0) 2024.10.02 하둡 기초 개념 (0) 2024.09.30 새로운 웹 크롤링 도구 Playwright (0) 2024.09.27 쿼리가 무한 루프에 빠지는 문제 (0) 2024.09.19 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)