본문 바로가기
기타(🎸X)/코딩테스트

[코테/SQL] 코딩테스트 SQL 요약 (MySQL)

by 푸_푸 2023. 1. 25.
728x90

코딩테스트를 보면 대부분 SQL 한 문제씩은 출제된다.

대부분 간단한 SELECT 문을 출제하거나 GROUP BY, JOIN, INNER를 사용하는 정도의 수준인 것 같다.

코딩테스트를 볼 때마다 프로그래머스에서 SQL 문제를 풀곤 하는데 SQLD를 취득했음에도 좀 지나면 다 까먹어서 정리해 두어야겠다.

SQL배워본 사람이 한 번 읽고 정리하기에 도움이 될 만한 내용이다.

내용은 점차 추가할 예정이다(는 암튼 할꺼다 =3).

 

> DML, DDL, DCL, TCL 이란?

DML (Data Manipulation Language : 데이터 조작어) - SELECT, INSERT, UPDATE, DELETE

데이터베이스의 데이터를 조회, 검색하거나 테이블에 들어있는 데이터에 변형(삽입, 수정, 삭제)하는 명령어

DDL (Data Definition Language : 데이터 정의어) - CREATE, ALTER, DROP, RENAME, TRUNCATE

테이블과 같은 데이터 구조를 정의(생성, 변경, 삭제, 이름 변경)하는데 사용되는 명령어

DCL (Data Control Language : 데이터 제어어) - GRANT, REVOKE

데이터베이스에 접근하고 사용할 수 있도록 권한을 주거나 회수하는 명령어

TCL (Transaction Control Language : 트랜잭션 제어어) - COMMIT, ROLLBACK, SAVEPOINT

트랜잭션을 제어하는 명령어

 


> SELECT

SELECT : 조회할 데이터 선택

FROM : 테이블 선택

ORDER BY : 정렬

기본 오름차순(ASC) 내림차순(DESC를 붙임)

WHERE : 조건

= : 일치하는 데이터

!=, <> : 일치하지 않는 데이터

>, <, >=, <= : 대소비교

 

AND, OR : 여러 개의 조건을 함께 사용해야 하는 경우에 사용

 

DISTINCT : 중복 제거

COUNT : 개수 세기

AS : 명명

LIMIT : 제한

 

GROUP BY : 테이블을 그룹 지음

HAVING : GROUP BY를 사용할 때 WHERE 대신 사용

 

BETWEEN A AND B : AB 사이(A 이상 B 이하)에 해당하는 데이터

 

IN() : 포함되는 것 찾기

LIKE : 포함 여부 찾기

_ : 어떤 값이든 상관없이 한 개의 문자 데이터

% : 길이와 상관없이(없는 경우도 포함) 모든 문자 데이터

 


> NULL

IS NULL : 널값인지 체크

IS NOT NULL : 널이 아닌지 체크

IFNULL(A, B) : A의 결과값이 NULL이면 B의 값을 출력

ISNULL(A, B) :  A의 결과값이 NULL이면 B의 값을 출력

NULLIF(A, B) : A와 B가 같으면 NULL, 같지 않으면 A를 출력

 

> DATE

YEAR, MONTH, DAY, HOUR, MINUTE, SECOND : 날짜 추출

SYSDATE() : 현재 시간 출력 (함수 호출 시점) //2023-01-25 06:53:22

NOW(): 현재 시간 출력 (쿼리 단위)

DATE() :  날짜 형식 // 'YYYY-MM-DD' 형식

TIME() : 시간 형식 // 'hh:mm:ss'  형식

DATE_FORMAT(,) : 원하는 날짜 출력 포맷 지정

 

> IF문

IF(A,B,C) : A가 참이면 B, 거짓이면 C 반환

 

IF 조건문 THEN
    실행문
ELSEIF 조건문 THEN
    실행문

    ...
ELSE
    실행문
END IF

 

CASE
    WHEN 조건문 THEN 실행문
    WHEN 조건문 THEN 실행문
    ..,
    ELSE 실행문
END CASE


> JOIN : 테이블 결합

> UNION, INTERSECT, EXCEPT

 

> 문자형

 

> 숫자형

 

728x90

댓글