ᐧ༚̮ᐧ Data Science | AI/SQL

SQL 독학 #1. 기본 of 기본 SELECT + 조건

데이터과학자B 2025. 1. 18. 08:10
728x90
반응형

 

 

아래 독학 계획 블로그 포스트에서 소개한 웹사이트들 중에서, 먼저 튜토리얼과 문제 풀이가 결합된 사이트를 활용해 기초를 다진 후, 이후에는 코딩테스트 / 문제 풀이 위주의 웹사이트로 옮겨서 공부를 할 계획이다.

 

나의 계획:

튜토리얼 (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개 조회:

 

 

 

예제

  1. 픽사의 첫 다섯 편의 영화를 알파벳 순으로 정렬:
  2. 그다음 다섯 편 조회:

 

728x90
반응형