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
'ETC. > Job Preparation' 카테고리의 다른 글
[Job Preparation] 코딩 테스트 준비 : 자료구조 (with Python) (1) | 2024.09.22 |
---|---|
[Job Preparation] 개발 환경 구축 (React.js) (1) | 2024.09.20 |
[Job] 기술 인터뷰 준비 (예상 질문 모음) (0) | 2023.08.08 |