728x90
728x90

코딩 테스트 준비 : SQL

들어가며

  • 코딩 테스트 전에 가볍게 읽어볼 SQL 관련 내용들을 정리해본다.

 

SELECT 문

기본 개념

  • 데이터 조회하기
SELECT column1, column2 
FROM table_name;

 

  • @DISTINCT@ 키워드를 이용하여 중복된 데이터를 제거할 수 있다.
SELECT DISTINCT column1 
FROM table_name;

 

데이터 필터링

  • 조건을 활용하여 데이터 필터링하기
    • @WHERE@ 절을 이용하여 특정 조건에 맞는 데이터를 필터링한다.
SELECT * 
FROM table_name 
WHERE condition;

 

  • 논리 연산자로 @AND@, @OR@, @NOT@을 사용할 수 있다.
  • @IN@ 연산자는 여러 값 중 하나와 일치하는 데이터츨 찾을 때 사용한다.
SELECT * 
FROM table_name 
WHERE column IN ('value1', 'value2');

 

  • @BETWEEN@ 연산자를 이용하여 특정 범위 내의 데이터를 찾을 수 있다.
SELECT * 
FROM table_name 
WHERE column BETWEEN value1 AND value2;

 

  • @LIKE@ 연산자를 이용하여 패턴 매칭을 통해 데이터를 검색할 수 있다.
SELECT * 
FROM table_name 
WHERE column LIKE 'A%'; -- A로 시작하는 값

 

데이터 정렬

  • @ORDER BY@ 문을 이용하여 데이터를 특정 컬럼 기준으로 정렬할 수 있다.
SELECT * 
FROM table_name 
ORDER BY column1 ASC; -- 오름차순 정렬

SELECT * 
FROM table_name
ORDER BY column1 DESC; -- 내림차순 정렬

 

데이터 집계

  • 통계적 처리를 위하여 다음과 같은 집계 함수를 사용할 수 있다.
    • @COUNT()@ : 레코드 수 세기
    • @SUM()@ : 특정 컬럼의 값 합산하기
    • @AVG()@ : 특정 컬럼의 평균값 구하기
    • @MAX()@ / @MIN()@ : 최대/최소값 구하기
SELECT COUNT(*), SUM(column1), AVG(column2) 
FROM table_name;

 

그룹화 및 조건 필터링

  • @GROUP BY@ 문을 이용하여 특정 컬럼을 기준으로 데이터를 그룹화 시킬 수 있다.
SELECT column1, COUNT(*) 
FROM table_name 
GROUP BY column1;

 

  • @HAVING@ 절에는 @GROUP BY@로 그룹화된 결과에 조건을 적용한다.
SELECT column1, COUNT(*) 
FROM table_name 
GROUP BY column1 
HAVING COUNT(*) > 1;

 

조인(JOIN)

  • 여러 테이블을 결합하여 데이터를 조회할 수 있다.

 

INNER JOIN

  • 두 테이블에서 일치하는 데이터만 조회한다.
SELECT column1, COUNT(*) 
FROM table_name 
GROUP BY column1 
HAVING COUNT(*) > 1;

 

LEFT JOIN

  • 왼쪽 테이블모든 행오른쪽 테이블에서 일치하는 데이터를 조회한다.
SELECT * 
FROM table1 
LEFT JOIN table2 ON table1.id = table2.id;

 

RIGHT JOIN

  • 오른쪽 테이블모든 행 왼쪽 테이블에서 일치하는 데이터를 조회한다.
SELECT * 
FROM table1 
RIGHT JOIN table2 ON table1.id = table2.id;

 

서브쿼리(Subquery)

  • 쿼리 안에 다른 쿼리를 포함하는 형태이다.
SELECT * 
FROM table_name 
WHERE column1 = (SELECT MAX(column1) FROM table_name);

 

LIMIT

  • 조회할 데이터의 개수를 제한한다.
SELECT * 
FROM table_name 
LIMIT 10;   -- 최대 10개의 데이터만 조회

 

NULL 값 처리

  • @IS NULL@ 또는 @IS NOT NULL@을 이용하여 값이 비어 있는 데이터를 찾거나 제외시킬 수 있다.
SELECT * 
FROM table_name 
WHERE column1 IS NULL;

 

728x90
728x90