[SQL] 코딩 테스트 대비 SQL 문법 정리

2025. 3. 6. 20:22·코테/알고리즘
728x90

SELECT * FROM 테이블

집계함수

AVG() - 평균값을 반환한다
COUNT() - 값의 수를 반환한다.
MAX() - 최댓값을 반환한다
MIN() - 최솟값을 반환한다.
SUM() - 값의 합계를 반환한다.

반올림/절사 함수

ROUND 함수 (반올림)
함수 : ROUND("값", "자리수")

TRUNC 함수 (절삭)
함수 : TRUNC ("값", "자리수")

LIMIT절

반환되는 데이터의 수를 제한

SELECT *
FROM 테이블
LIMIT 수;

GROUP BY 절

SELECT [DISTINCT] 컬럼, 그룹 함수(컬럼)
FROM 테이블명
[WHERE 조건]
[GROUP BY Group대상]
[HAVING 그룹 함수 포함 조건]
[ORDER BY 정렬대상 [ASC/DESC]]

 

HAVING 절 - 그룹화된 데이터에 조건을 주어 데이터 추출
HAVING 절은 GROUP BY 절과 함께 사용되며, 그룹화된 결과 집합에 대한 조건을 지정하는 데 사용

✨WHERE 절은 개별 행에 대한 조건을 지정하고, HAVING 절은 그룹화된 결과 집합에 대한 조건 지정
간단 요약

Having은 그룹화 또는 집계가 발생한 후 레코드를 필터링하는데 사용된다.
Where은 그룹화 또는 집계가 발생하기 전에 레코드를 필터링하는데 사용된다.

 

작성순서

셀프웨구해오

 

조건문

IF

IF(조건, 조건이 참일 때, 조건이 거짓일 때)

 

CASE WHEN 조건 여러개

NVL함수

NVL(대상데이터 , NULL일때 데이터)

NVL2함수

NVL2 ( 대상데이터 , NULL아닐때 데이터 , NULL일때 데이터)

DATEDIFF

두 개의 날짜값의 차이를 Int형으로 반환하고자 할 때 사용

 

- 기본적으로 날짜1 - 날짜2 로 계산됩니다.

문법 : DATEDIFF(날짜1, 날짜2)

 

TIMESTAMPDIFF

TIMESTAMPDIFF(단위, 날짜1, 날짜2);

 

- 단위의 종류로는 아래와 같습니다.

  • SECOND : 초
  • MINUTE : 분
  • HOUR : 시간
  • DAY : 일
  • WEEK : 주
  • MONTH : 월
  • QUARTER : 분기
  • YEAR : 연도

DATE_FORMAT(date string, '날짜 형식')

  • 시간을 원하는 형태로 반환하고자 할 때 사용
  • 문법 : DATE_FORMAT(DATETIME date, FORMAT);
SELECT DATE_FORMAT(NOW(), "%Y%c/%e %r");

 

 

포맷문자 설명(예시) 포맷문자 설명(예시)
%Y 년도 (2021) %m 월 (01, 02, 11)
%y 년도 (21) %c 월 (1, 8)
%d 일(01, 19) %M 월 (January, August)
%e 일(1, 19) %b 월(Jan, Aug)
%T 시간 (12:30:00) %W 요일(Wednesday, friday)
%r 시간 (12:30:00 AM) %a 요일(Wed, Fri)
%H 24시간 시간(01, 14, 18) %i 분 (00)
%l 12시간 시간 (01, 02, 06) %S 초 (00)

 

 

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

 

 

IS NULL

IS NOT NULL

IFNULL

해당 Column의 값이 NULL을 반환할 때, 다른 값으로 출력할 수 있도록 하는 함수이다. 

  • 기본 구조
SELECT IFNULL(Column명, "Null일 경우 대체 값") FROM 테이블명; 

 

CASE

해당 Column 값을 조건식을 통해 True, False를 판단하여 조건에 맞게 Column값을 변환할 때 사용하는 함수이다.

  • 기본 구조
CASE 
    WHEN 조건식1 THEN 식1
    WHEN 조건식2 THEN 식2
    ...
    ELSE 조건에 맞는경우가 없는 경우 실행할 식
END

 

Like 

LIKE + '%', '_'

LIKE 연산자와 함께 쓰이는 와일드 카드인 %, _ 는 각각 아래와 같은 뜻을 지닌다

 

  • %: 0개 이상의 모든 문자를 대체 (글자 개수를 지정하지 않는 와일드 카드)
  • _: 1개 이상의 모든 문자를 대체 (_ 개수 만큼 글자 수가 지정되는 와일드 카드)

문자열 자르기

- SUBSTRING( 문자열, 시작위치, 길이 ) >> 문자열에서 시작 위치부터 길이만큼 출력합니다.
- LEFT( 문자열, 길이 ) >> 문자열에서 왼쪽부터 길이만큼 출력합니다.
- RIGHT( 문자열, 길이 ) >> 문자열에서 오른쪽부터 길이만큼 출력합니다.

SELECT SUBSTRING(NAME, 2, 4) // NAME의 2번째글자부터 4글자 출력
     , SUBSTRING(NAME, 1, 4) // NAME의 1번째글자부터 4글자 출력
     , LEFT(MAIL, 7) // MAIL을 왼쪽부터 7글자 출력
     , RIGHT(MAIL, 5) // MAIL을 오른쪽부터 5글자 출력
  FROM TABLE
728x90
반응형

'코테 > 알고리즘' 카테고리의 다른 글

[JAVA]위상정렬 알고리즘  (3) 2025.08.13
[Java] Stream()의 기초 문법 및 예시코드  (1) 2025.06.26
[JAVA] 자주 사용하는 코딩테스트 문법 정리  (1) 2025.02.16
[JAVA] 유니온 파인드(Union-Find)  (0) 2025.02.16
[JAVA] 완전탐색(Exhaustive Search)  (0) 2025.02.16
'코테/알고리즘' 카테고리의 다른 글
  • [JAVA]위상정렬 알고리즘
  • [Java] Stream()의 기초 문법 및 예시코드
  • [JAVA] 자주 사용하는 코딩테스트 문법 정리
  • [JAVA] 유니온 파인드(Union-Find)
lakedata
lakedata
lakedata 님의 블로그 입니다.
  • lakedata
    lakedata 님의 블로그
    lakedata
  • 전체
    오늘
    어제
    • 분류 전체보기 (188)
      • cs (82)
        • dev (28)
        • sec (29)
        • ops (25)
      • 자격증 (32)
        • 정보처리기사 (20)
        • 정보보안기사 (1)
        • aws dva (6)
        • aws dop (2)
      • IT서적 (27)
        • 클린아키텍처 (10)
        • 객체지향의사실과오해 (7)
        • 오브젝트 (10)
      • 코테 (42)
        • 알고리즘 (20)
        • 백준 (13)
        • 프로그래머스 (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    Security
    알고리즘
    docker
    AWS
    Spring
    SQL
    Java
    CS
  • 최근 댓글

  • 최근 글

  • 반응형
    250x250
  • hELLO· Designed By정상우.v4.10.3
lakedata
[SQL] 코딩 테스트 대비 SQL 문법 정리
상단으로

티스토리툴바