SQL 코테 준비

문재경·2025년 11월 7일

이코테

목록 보기
9/9

SUM, MAX, MIN, COUNT

  • MAX(컬럼1): 컬럼1의 최대값을 리턴하는데, 단순히 값의 형태가 아니라 하나의 테이블로 취급하는듯..?
    • 그래서 MAX()의 위치는 SELECTFROM 사이에 온다.
    • MIN(컬럼1): 같은 방식으로 컬럼 내 최소값을 리턴
    • COUNT(*): 전체 행의 개수를 리턴
    • COUNT(DISTINCT 컬럼1): 컬럼1에서 중복을 제거하고 행의 개수 리턴
  • 최대값 또는 최소값에 해당하는 행을 가져오고 싶다면,
    • WHERE에서 바로 MAX(...)를 통해 비교할 수 없음
    • MAX/MIN의 결과로 테이블이 리턴되고, 그 테이블과 비교를 WHERE 구문에서 수행

SET

  • MySQL에서 변수를 할당할 때 사용
SET  @변수명 = 초기값;
SELECT @변수명 := @변수명 + 1 AS 컬럼명 #초기값에 1이 더해진 값부터 시작해서 행마다 1씩 더해지는 반복문
	...
FROM 테이블명
WHERE 종료 조건 # 한 줄씩 실행된 후에 마지막에 점검; 0 > 점검 > 1 > 점검 > ... > 22 > 점검 > 23 > 점검: 종료

날짜 및 시간 계산

  • INTERVAL UNIT: SECOND, MINUTE, HOUR, DAY, MONTH, YEAR
  • DATE_ADD('날짜', INTERVAL n UNIT): 날짜에 n UNIT 만큼 더하기
  • DATE_SUB('날짜', INTERVAL n UNIT): 날짜에 n UNIT 만큼 빼기
  • DATEDIFF('종료일', '시작일'): 두 날짜 사이의 일수 차이를 정수로 계산
    • 양끝을 포함하지 않기 때문에, 어떤 두 날짜 사이의 일수가 30일 이상이라면 DATEDIFF(...) + 1 >=30
  • TIMEDIFF('시간1', '시간2'): 두 시간 사이의 차이를 HH:MM:SS 형식으로 계산; 날짜 차이도 시간 형태로 표현된다.
  • PERIODDIFF('연월1', '연월2'): 두 연월(YYYYMM 또는 YYMM) 사이의 개월 수 차이만 정수로 계산
  • TIMESTAMPDIFF(UNIT, '시간1', '시간2'): 두 시간 사이의 간격을 UNIT을 기준으로 정수로 계산

문자열 사용

  • CONCAT(컬럼/데이터, 텍스트): 컬럼에 텍스트를 붙여서 출력하거나, 데이터에 단순히 텍스트를 붙이는데 사용
  • '텍스트1' LIKE '텍스트2': 두 텍스트를 비교하기 위해 사용; %를 사용해서 특정 문자열이 포함되는지 확인
  • SUBSTRING('텍스트', 시작 인덱스, 길이): 텍스트의 시작 인덱스부터 길이만큼 잘라서 리턴; MySQL은 인덱스의 시작이 0이 아니라 1임

기타 구문

  • ROUND(숫자, 자릿수): 반올림 함수
  • TRUNCATE(숫자, 버릴 자릿수): 버림 함수; 음수로 주면 정수 부분에서 반올림 수행
  • IFNULL(컬럼1, NULL일 경우 대체값): NULL이 아니면 원래대로 표시하고, NULL인 경우에만 대체
profile
안녕하세요...

0개의 댓글