300x250
MySQL 쿼리 실행 시 발생하는 오류로 Error Code: 1046. No database selected 오류는
MySQL에서 데이터베이스를 지정하지 않고 쿼리를 실행하려고 할 때 발생합니다.
데이터베이스를 명시적으로 선택하거나 설정하지 않으면 MySQL은 어떤 데이터베이스를 대상으로 쿼리를 실행해야 할지 알 수 없습니다.
오류 원인
- 데이터베이스 선택 누락
- 쿼리를 실행하기 전에 특정 데이터베이스를 선택하지 않았기 때문에 발생합니다.
- 워크벤치에서 기본 데이터베이스 미설정
- MySQL Workbench에서 데이터베이스를 선택하지 않은 경우 발생합니다.
- 쿼리 작성 시 데이터베이스 지정 누락
- 테이블 이름 앞에 데이터베이스 이름을 지정하지 않은 경우 발생할 수 있습니다.
해결 방법
1. USE 명령어로 데이터베이스 선택
쿼리 실행 전에 사용할 데이터베이스를 명시적으로 지정하기
USE 데이터베이스_이름;
이후 쿼리를 실행하면 해당 데이터베이스가 기본으로 설정됩니다.
보통 테이블명만 명시하고 써서 오류가 나는데 이렇게 USE로 한번 설정을 하고나면 테이블명만 작성해도 돼서 편리합니다.
2. MySQL Workbench에서 데이터베이스 선택
MySQL Workbench를 사용하는 경우:
- 왼쪽 SCHEMAS 패널에서 원하는 데이터베이스 이름을 더블 클릭합니다.
- 선택된 데이터베이스는 굵은 글씨로 표시됩니다.
- 이후 작성한 쿼리는 해당 데이터베이스를 기본으로 사용합니다.
3. 쿼리에서 데이터베이스 이름 포함
쿼리를 실행할 때 데이터베이스 이름을 포함하여 작성합니다:
SELECT * FROM 데이터베이스_이름.테이블_이름;
4. 연결 설정에서 기본 데이터베이스 설정
MySQL Workbench 또는 다른 클라이언트 도구에서 연결 설정 시:
- Default Schema 또는 Database 옵션에 사용할 데이터베이스를 입력합니다.
- 연결 시 자동으로 기본 데이터베이스가 설정됩니다.
추가 팁
이 오류는 데이터베이스를 명확히 설정하지 않아서 발생하는 일반적인 문제입니다.
쿼리를 실행하기 전, 데이터베이스를 항상 명시적으로 선택하는 습관을 들이면 해결할 수 있습니다.
300x250
'IT > DB' 카테고리의 다른 글
데이터 삭제 delete와 truncate 차이는? (0) | 2024.12.07 |
---|---|
left join 과 left outer join 차이는? (2) | 2024.12.05 |
AND EXISTS (SELECT 1 FROM 테이블) 쿼리 조건 뜻? (0) | 2024.12.04 |
group by a, group by a,b 차이 (0) | 2024.12.03 |
데이터베이스 SQL JOIN, LEFT JOIN 차이는? (0) | 2024.12.03 |