SELECT 가 질문
SELECT 가 변경 안 하고 질문 만 하는 유일한 SQL. 행을 반환; DB 절대 수정 안 함. "유저 다 보여줘", "지난달 매출 얼마", "오늘 배송된 주문 뭐야" — 모든 read 쿼리가 SELECT 로 시작.
모든 SELECT 의 모양
이 절 순서 외워 — 모든 쿼리에 이 순서로 등장, 은퇴할 때까지:
SELECT <컬럼/표현식> FROM <테이블/JOIN> WHERE <행 필터> GROUP BY <그룹핑> HAVING <그룹 필터> ORDER BY <정렬> LIMIT <상한> OFFSET <스킵>
실행 순서는 다른 리스트 (FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT). 다시 돌아옴 — HAVING 은 aggregate 참조 가능한데 WHERE 는 안 되는 이유 설명함.
SELECT * 보다 명시 컬럼
프로덕션 코드에선 원하는 컬럼 나열. SELECT * 는 wire 에 추가 byte, 컬럼 추가/재배치 시 미묘하게 깨짐, 쿼리 의도 흐림. 탐색은 psql 터미널에서 SELECT *; 커밋 코드엔 거의 안 씀.