본문으로 건너뛰기
SQL 기초집LESSON 06

SELECT로 데이터 조회하기

난이도입문 → 초급
예상 시간30분
선수지식이전 강의

6강. SELECT로 데이터 조회하기

1. 이번 강의에서 해결할 문제​

SELECT *만 사용하면 필요 없는 데이터까지 가져오고 열 추가에 결과 구조가 바뀝니다. 질문에 필요한 열과 계산 결과만 명시합니다.

2. 학습 목표​

3. 핵심 개념​

SELECT 목록은 결과 열, FROM은 행의 출처를 정합니다. SQL의 논리적 처리 순서는 작성 순서와 다를 수 있지만 이번 단계에서는 FROM에서 행을 읽고 SELECT 표현식으로 결과 열을 만든다고 이해합니다.

조회는 저장된 원본을 화면에 그대로 복사하는 작업이 아니라, 질문에 맞는 **결과 집합(result set)**을 새로 만드는 작업입니다. 결과 집합도 행과 열 모양이지만 쿼리가 끝난 뒤 테이블로 자동 저장되지는 않습니다.

용어 정리​

용어역할예
SELECT 목록결과에 보여 줄 열과 계산식 선택username, duration_seconds / 60.0
FROM원본 행을 읽을 테이블 선택FROM players
별칭(alias)결과 열에 읽기 쉬운 임시 이름 부여AS player_name
리터럴쿼리에 직접 작성한 고정값60.0, 'active'
표현식열·리터럴·함수를 조합한 계산ROUND(duration_seconds / 60.0, 1)

가장 작은 조회부터 확인하기​

SELECT 120 AS score, 120 + 30 AS score_after_bonus;

테이블이 없어도 한 행을 만들 수 있습니다. 첫 결과 열은 120이고, 둘째 열은 계산 결과 150입니다. AS는 저장된 값을 바꾸지 않고 이번 결과에서만 열 이름을 정합니다.

4. 단계별 SQL 예시​

대상 테이블: players, games (읽기 전용)
파일 경로: C:\dev\game-ranking-db\sql\06-select.sql

시작 전에는 4강에서 테이블을 만들고 5강에서 샘플 행을 넣어 두어야 합니다. 이 파일은 INSERT, UPDATE, DELETE를 포함하지 않으므로 실행 전후 원본 행은 같습니다.

sql/06-select.sql
SELECT
player_id,
username AS player_name,
region,
created_at
FROM players;

SELECT
game_id,
mode,
duration_seconds,
ROUND(duration_seconds / 60.0, 1) AS duration_minutes
FROM games;

쿼리를 한 줄씩 이해하기​

첫 쿼리의 흐름:

  1. FROM players가 플레이어 테이블의 각 행을 읽습니다.
  2. player_id, username, region, created_at만 결과 열로 선택합니다.
  3. username AS player_name은 결과 헤더만 player_name으로 바꿉니다. 테이블 열 이름은 여전히 username입니다.
  4. WHERE가 없으므로 현재 저장된 모든 플레이어 행이 결과에 포함됩니다.

둘째 쿼리의 흐름:

  1. FROM games가 경기 행을 읽습니다.
  2. 각 행의 duration_seconds를 60.0으로 나눠 분 단위 값을 만듭니다.
  3. ROUND(..., 1)이 소수점 첫째 자리까지 표시할 새 값을 계산합니다.
  4. 계산된 값은 duration_minutes 결과 열에 보이지만 원본 duration_seconds는 변경되지 않습니다.
PowerShell · 실행 순서
sqlite3 -header -box .\data\game_ranking.db ".read .\sql\06-select.sql"

실행 결과 읽기​

5강 샘플 데이터가 다음과 같다고 가정하면:

game_id mode duration_seconds duration_minutes
------- ------ ---------------- ----------------
1 ranked 125 2.1

125 / 60.0은 약 2.0833이고 ROUND(..., 1) 결과가 2.1입니다. 원본 값을 다시 조회하면 duration_seconds는 여전히 125입니다. SELECT가 만든 계산 열과 실제 저장 열을 구분해야 합니다.

5. 쿼리가 동작하는 이유​

열을 명시하면 결과 계약이 안정적입니다. AS는 원본 스키마를 바꾸지 않고 결과 열 이름만 지정합니다. 60.0으로 나누어 실수 계산을 유도하고 ROUND로 표시 자릿수를 정합니다.

6. 자주 하는 실수와 안전한 해결법​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

다음 강의 연결​

지금은 모든 행을 조회했습니다. 7강. WHERE와 비교·논리 연산자에서는 region, 점수, 경기 모드 같은 조건으로 필요한 행만 고릅니다.

MINI QUIZ

SELECT로 데이터 조회하기 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“SELECT로 데이터 조회하기” 실습 결과를 해석하는 올바른 기준은 무엇인가요?
  2. 문제 2‘정수 나눗셈 결과 가정’ 실수를 판단할 때 “SELECT로 데이터 조회하기” 강의가 제시한 기준은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

6강. SELECT로 데이터 조회하기 미완료 상태