CodeGym /행동 /SQL SELF /SELECT 사용할 때 흔히 하는 실수들

SELECT 사용할 때 흔히 하는 실수들

SQL SELF
레벨 3 , 레슨 3
사용 가능

프로그래밍 다른 분야랑 마찬가지로 SELECT 쓸 때도 실수는 피할 수 없어. SQL 쿼리에서 버그가 생기는 건 진짜 잘하는 개발자들도 마찬가지야. 오늘은 SELECT 쓸 때 자주 하는 실수, 그 원인, 그리고 어떻게 피할 수 있는지 알아볼 거야.

SQL은 문법 규칙을 엄청 엄격하게 지키는 언어야. 쉼표 하나 빠지거나, 연산자 빼먹거나, 단어 순서가 틀리면—DB가 바로 "빨간 깃발" 들고 에러 내지.

키워드 빼먹기

가장 흔한 실수는 필수 키워드 하나 까먹는 거야. 예를 들어, 이런 명령어를 실행해보자:

SELECT name age FROM students;

뭔가 빠진 것 같지? 여기서는 name이랑 age 사이에 , 쉼표 키워드가 빠졌어. 이렇게 고치면 돼:

SELECT name, age FROM students;

이런 실수는 왜 생기냐면, 아직 쿼리 작성에 익숙하지 않거나, 그냥 급하게 치다 보면 그래. SQL은 급한 거 진짜 싫어해!

컬럼명/테이블명 오타

SQL 명령어는 컬럼명이나 테이블명 정확하게 써야 해. 이런 쿼리 한번 해보자:

SELECT naem, agge FROM studnts;

DB 입장에선 이건 그냥 말도 안 되는 소리야: naem이랑 agge 컬럼, 그리고 studnts 테이블은 존재하지 않거든. 이렇게 고쳐야지:

SELECT name, age FROM students;

팁: 이름이 헷갈리면 psql에서 \d table_name 쓰거나, pgAdmin 같은 인터페이스로 테이블 구조 확인해봐.

따옴표 빼먹기

컬럼명이나 테이블명에 공백이나 특수문자가 들어가면, 꼭 큰따옴표로 감싸야 해. 예시:

SELECT "first name", age FROM students;

따옴표 빼먹으면 SQL이 뭔 말인지 못 알아듣고 에러 뱉어.

논리적 실수: 실행은 되는데 결과가 이상할 때

가끔 쿼리는 잘 실행되는데, 결과가 "이상해" 보일 때가 있어. 이게 바로 논리적 실수야. 이런 건 더 무서운 게, DB가 뭐가 잘못됐는지 알려주지도 않거든.

  1. 비교 연산자 잘못 쓰기. 예를 들어, 18살 넘는 학생들만 뽑고 싶다고 해보자:
SELECT * FROM students WHERE age > 18;

이번엔 다른 연산자로 쿼리해볼게:

SELECT * FROM students WHERE age = 18;

이 쿼리는 정확히 18살인 학생만 나와. 만약 18살 넘는 학생을 뽑고 싶었는데 이렇게 썼다면, 이건 논리적 실수야.

팁: 이런 디테일 꼭 확인해봐. 헷갈리면 LIMIT 써서 소량만 먼저 뽑아보는 것도 좋아.

조건 조합 실수

예시를 보자:

SELECT * FROM students WHERE age > 18 OR grade = 'A' AND city = 'New York';

이 쿼리는 의외로 뉴욕에 살지 않는 학생도 나올 수 있어. 왜냐면, SQL은 AND 먼저, 그 다음 OR 순서로 처리하거든. 괄호로 명확하게 바꿔보자:

SELECT * FROM students WHERE (age > 18 OR grade = 'A') AND city = 'New York';

이제 제대로 됐지.

필터링 안 함

가끔 SELECT * FROM students; 이런 쿼리 치면 데이터가 엄청 많이 나와. 사실 특정 도시 학생만 찾고 싶었을 수도 있잖아. 해결책? WHERE로 필터 추가해:

SELECT * FROM students WHERE city = 'New York';

성능 문제

데이터가 많아질수록 쿼리 성능이 진짜 중요해져. 성능 떨어뜨리는 흔한 실수들 한번 보자.

SELECT *는 개발할 때는 편한데, 실제로는 성능에 안 좋아. 필요한 컬럼만 명확하게 지정해줘야 해.

-- 나쁨:
SELECT * FROM students;

-- 좋음:
SELECT name, age FROM students;

왜 중요하냐면, SELECT *모든 컬럼을 다 가져와. 안 쓰는 컬럼까지 포함해서 데이터 전송량이 늘어나지.

실전 팁: 실수 피하는 법

SQL 쿼리를 더 믿을 수 있게 만들려면, 몇 가지 팁만 지키면 돼:

  • 문법 체크 꼭 하고 실행해: IDE나 pgAdmin의 힌트 기능 쓰면 미리 에러 잡아줘.
  • 작은 데이터부터 시작해. LIMIT 5LIMIT 10 써서 먼저 확인해봐.
  • 주석 달기—쿼리가 뭘 하는지 이해하기 쉽게:
    -- 18살 넘는 학생 다 뽑기
    SELECT name, age FROM students WHERE age > 18;
    
  • 여러 데이터로 테스트해서 논리가 맞는지 꼭 확인해.
  • SELECT * 남용하지 마, 특히 큰 테이블에서.

면접에서 나오는 함정

SQL 면접에서 자주 나오는 문제 중 하나가 쿼리에서 실수 찾기야. 예를 들어:

SELECT name FROM employees WHERE salary > 50000 ORDER BY department;

스스로 물어봐: 이 쿼리 논리적으로 맞아? ORDER BY를 썼으면, 아마도 급여로 정렬해야 할 거야:

SELECT name FROM employees WHERE salary > 50000 ORDER BY salary DESC;

SELECT 다루는 건 SQL의 기본이고, 처음엔 실수하는 게 당연해. 근데 하다 보면 쿼리 작성이 메신저로 채팅하는 것만큼 쉬워질 거야. 진짜 개발자는 고양이뿐만 아니라 DB로도 연습하니까! 😉

1
설문조사/퀴즈
데이터 정렬, 레벨 3, 레슨 3
사용 불가능
데이터 정렬
데이터 정렬
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION