원하는 결과의 모양을 선언해
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처럼 별칭을 붙여 출처를 드러내. 불필요한 열까지 무심코 가져오는 습관보다 결과 계약을 분명히 하는 습관이 오래가.