아래 독학 계획 블로그 포스트에서 소개한 웹사이트들 중에서, 먼저 튜토리얼과 문제 풀이가 결합된 사이트를 활용해 기초를 다진 후, 이후에는 코딩테스트 / 문제 풀이 위주의 웹사이트로 옮겨서 공부를 할 계획이다.
나의 계획:
튜토리얼 (SQLZoo, SQLBolt, W3Resources, DataLemur - Tutorial) → 연습문제 사이트 (Leetcode, HackerRank, StrataScratch, DataLemur - problems)
SQL 독학 시작! 나만의 커리큘럼, 연습 문제 사이트 추천
현재 일에서는 SQL을 사용하지 않지만, 대부분의 데이터 과학 관련 직무에서 SQL은 필수로 요구되는 기술이라는 것을 알 수 있다.올해 말이나 내년에는 이직을 준비해야 하기 때문에, 새해 결심으
benn.tistory.com
이번 글은 SQLZoo 튜토리얼 #0-3, SQLBolt #1-4 정리한 내용이다.
이 글에서 정리한 명령어
- SELECT
- WHERE
- DISTINCT
- ORDER BY
- LIMIT / OFFSET
이 글에서 사용하는 예제 데이터셋
- SQLZoo - world 데이터셋: 나라 이름, 대륙, 면적, 인구, GDP 정보를 포함한 세계 데이터.
- SQLBolt - movies 데이터셋: 픽사 영화의 ID, 제목, 감독, 개봉 연도, 길이를 포함한 영화 데이터.
💜
SELECT
SELECT 열1, 열2, ...
FROM 테이블이름;
- SELECT: 조회할 열(column)을 지정, 모든 열을 조회하려면 * 사용.
- FROM: 데이터를 가져올 테이블의 이름을 지정
SELECT 예문)
- movies 테이블의 모든 열 조회:
SELECT *
FROM movies
- movies 테이블에서 제목과 연도만 조회:
SELECT Title, Year
FROM movies
WHERE
특정 조건을 만족하는 데이터만 필터링.
SELECT 열1, 열2, …
FROM 테이블이름
WHERE 조건1
AND/OR 조건2
AND/OR …;
여러 개의 AND 또는 OR 키워드를 결합해 복잡한 조건문을 만들 수 있다.
유용한 연산자
연산자 | 설명 | 예제 |
=, !=, <, <=, >, >= | Standard numerical operators | age = 30 |
LIKE | 유사한 패턴을 찾을 때 사용 | |
LIKE + % | %는 임의의 개수의 문자를 대체. (0개 이상의 문자 포함 가능) 문자열의 일부만 알고 있을 때 사용. |
이름 LIKE '김%' (이름이 '김'으로 시작하는 모든 직원) 제품명 LIKE '%TV' (제품명이 'TV'로 끝나는 모든 제품) |
LIKE + - | _는 임의의 한 문자를 대체. (정확히 한 글자) 특정 위치의 문자만 모를 때 사용. |
WHERE 이름 LIKE '이_호' (이로 시작하고, 두 번째 글자가 무엇이든 상관없으며, '호'로 끝나는 이름의 직원) |
BETWEEN | 범위 내에 포함 | age BETWEEN 20 AND 30 |
IN | 여러 값 중 하나에 해당 | Country IN ('Korea', 'Australia') |
NOT | 부정 | Country NOT IN ('Korea', 'Australia') |
예제)
- 프랑스의 인구 조회
SELECT population
FROM world
WHERE name = 'France'
- 이름이 'y'로 끝나는 나라 조회
SELECT name
FROM world
WHERE name LIKE '%y'
- 2000~2010년 사이에 개봉한 영화 조회:
SELECT *
FROM movies
WHERE year BETWEEN 2000 AND 2010;
DISTINCT
중복 데이터 제거: 특정 열의 고유 값만 반환.
데이터 정리, 분석, 또는 특정 열/조합의 고유 데이터를 확인하려는 상황에서 유용하다.
주의점: 선택한 열의 조합을 기준으로 동작하며, NULL 값도 고유 값으로 처리.
SELECT DISTINCT 열1, 열2
FROM 테이블
WHERE 조건;
예제)
- 픽사 영화의 모든 감독 이름 중복 제거:
SELECT DISTINCT Director
FROM movies;
ORDER BY
ORDER BY 절로 결과를 오름차순(ASC) 또는 내림차순(DESC)으로 정렬 가능.
SELECT 열1, 열2
FROM 테이블
WHERE 조건
ORDER BY 열이름 ASC/DESC;
LIMIT / OFFSET
결과를 일부만 반환하여 효율적으로 처리한다. 대량의 데이터가 있는 테이블에서 효율적으로 데이터를 조회할 수 있도록 돕는다.
LIMIT: 반환할 행의 수를 제한.
OFFSET: 반환을 시작할 행의 위치를 지정.
SELECT 열1, 열2
FROM 테이블
WHERE 조건
LIMIT 행 개수
SELECT 열1, 열2
FROM 테이블
WHERE 조건
LIMIT 행 개수 OFFSET 시작 위치;
예제
- 가장 최근 개봉한 영화 4개 조회:
예제
- 픽사의 첫 다섯 편의 영화를 알파벳 순으로 정렬:
- 그다음 다섯 편 조회:
'ᐧ༚̮ᐧ Data Science | AI > SQL' 카테고리의 다른 글
SQL 독학 #2. JOIN (0) | 2025.01.23 |
---|---|
SQL 독학 시작! 나만의 커리큘럼, 연습 문제 사이트 추천 (1) | 2025.01.17 |
파이썬에서 SQLite 사용하기 (연결, 데이블 생성, 데이터 입력, 데이터 조회) (0) | 2023.02.14 |
[SQL 독학] SQLite 설치하기 (GUI 추천) (0) | 2023.02.10 |
[윈도우] MySQL 다운로드 & 설치하기 (0) | 2022.08.23 |