💥 SQL에서 자주 나타나는 오류 총정리! (실무 & 시험 대비)
SQL 초보부터 중급자까지 꼭 알아야 할 SQL 오류 케이스 TOP 8을 실전 예제와 함께 정리했습니다!
❌ORA-00904: invalid identifier
원인: 존재하지 않는 컬럼명을 조회하려 할 때
SELECT empnmae FROM employees;
해결: 컬럼명 오타 확인 (예: empname
)
❌ORA-00936: missing expression
원인: SELECT, WHERE 등에서 표현식이 빠짐
SELECT FROM employees;
해결: SELECT 다음에는 반드시 컬럼명이 와야 함
❌ORA-00933: SQL command not properly ended
원인: SQL 문이 올바르게 끝나지 않음
UPDATE employees SET salary = 5000 WHERE employee_id = 100 -- 세미콜론 빠짐
해결: SQL 문 끝에 ;
확인!
❌ORA-00911: invalid character
원인: 허용되지 않는 문자 포함
SELECT * FROM employees WHERE last_name = 'O'Brien';
해결: 작은따옴표는 두 번 사용 'O''Brien'
❌ORA-01722: invalid number
원인: 숫자로 변환 불가능한 값을 숫자형 컬럼에 비교
SELECT * FROM employees WHERE salary = 'abc';
해결: 숫자형 컬럼에는 숫자만, 문자열은 CAST 사용
❌ORA-00937: not a single-group group function
원인: GROUP BY 없이 집계함수와 일반 컬럼을 같이 사용
SELECT department_id, AVG(salary) FROM employees;
해결:
SELECT department_id, AVG(salary) FROM employees GROUP BY department_id;
❌ORA-00001: unique constraint violated
원인: PK 또는 UNIQUE 컬럼에 중복 값 입력
INSERT INTO departments (department_id, department_name) VALUES (10, 'Sales'); -- 이미 존재하는 ID
해결: 중복되지 않는 값 입력
❌ORA-02291: integrity constraint violated - parent key not found
원인: 자식 테이블에서 참조하는 부모 키가 없음
INSERT INTO employees (employee_id, manager_id) VALUES (300, 9999); -- manager_id 9999가 없음
해결: 부모 테이블에 해당 키가 있는지 먼저 확인
🧠 시험 꿀팁 요약 테이블
오류 코드 | 기억 포인트 |
---|---|
ORA-00904 | 오타? 컬럼명 확인 |
ORA-00936 | SELECT 절 점검 |
ORA-00933 | 세미콜론 확인 |
ORA-00911 | 문자열 escape |
ORA-01722 | 숫자형 확인 |
ORA-00937 | GROUP BY 추가 |
ORA-00001 | 중복 입력 방지 |
ORA-02291 | FK 참조 키 확인 |
✨ 마무리
SQL은 작은 오타 하나로도 오류가 날 수 있어요. 에러 메시지를 잘 읽고 원인을 유추하는 연습이 중요합니다! 😊
'SQL > SQL_이론' 카테고리의 다른 글
SQL문의 실행순서 (0) | 2024.09.19 |
---|---|
트랜잭션(Transaction) (0) | 2024.09.19 |
SQL의 종류 (1) | 2024.09.19 |
관계형 데이터베이스와 테이블 (0) | 2024.09.19 |
SELECT 문 (0) | 2024.06.25 |