본문 바로가기
C.W.K.
Stream
Lesson 01 of 16 · published

SELECT로 데이터에 질문하기

~12 min · queries, select

Level 0스키마 새싹
0 XP0/86 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

원하는 결과의 모양을 선언해

SELECT는 행을 바꾸지 않고 결과를 읽는 문장이야. 열 이름과 표현식을 고르고 FROM으로 출처를 정하면 PostgreSQL의 계획기가 실행 방법을 결정해. 절은 SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY → LIMIT/OFFSET 순서로 쓰지만, 논리적으로는 FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT 순서로 실행돼.

별표보다 의도를 적어

SELECT *는 탐색할 때 편하지만 운영 코드에서 또 하나의 SELECT *를 남기기보다 필요한 열을 직접 나열하는 편이 좋아. 필요한 열만 적으면 전송 바이트를 줄이고, 열 추가·재배치 때 결과 위치에 의존한 코드가 깨지는 일을 막으며, 읽는 사람도 결과 계약을 바로 이해할 수 있어. 여러 테이블을 잇는 질의라면 users u, orders o처럼 별칭을 붙여 출처를 드러내. 불필요한 열까지 무심코 가져오는 습관보다 결과 계약을 분명히 하는 습관이 오래가.

Code

기본 모양·sql
-- 모든 컬럼, 모든 행 (탐색만)
SELECT * FROM users LIMIT 10;

-- 명시 컬럼 (production-ready)
SELECT id, name, email FROM users;

-- 계산 컬럼 + alias
SELECT id,
       UPPER(name)                AS shouting_name,
       price * quantity           AS line_total,
       AGE(now(), created_at)     AS account_age
FROM   order_items;
DISTINCT와 기본 함수·sql
SELECT DISTINCT category FROM products ORDER BY category;

SELECT COUNT(*) AS total,
       COUNT(DISTINCT customer_id) AS unique_customers
FROM   orders;

External links

Exercise

Pagila나 가지고 있는 샘플 데이터베이스에서 점차 복잡해지는 SELECT 5개를 작성해. (1) 전체 행 조회, (2) 명시한 열만 조회, (3) 별칭을 붙인 계산 열, (4) DISTINCT를 적용한 열, (5) 필터를 적용한 COUNT 순서로 만들어.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.