MySQL에서는 특정 사용자에게 고정적으로 지정되는 '기본 데이터베이스'라는 개념이 존재하지 않습니다. 다만 현재 세션(current session)에 한해서는 기본 데이터베이스가 설정될 수 있습니다. 현재 세션에서 어떤 데이터베이스가 기본으로 지정되어 있는지는 다음 쿼리로 간단히 확인할 수 있습니다.
mysql> SELECT DATABASE(); +------------+ | DATABASE() | +------------+ | sample | +------------+ 1 row in set (0.00 sec)
위 결과 집합은 현재 세션에서 'sample' 데이터베이스를 사용하고 있음을 보여줍니다. 즉, 'sample'이 이 세션의 기본 데이터베이스로 설정된 상태입니다. 이 설정은 해당 세션에만 유효하며, 다른 접속에는 영향을 주지 않습니다.
USE 문으로 기본 데이터베이스 변경하기
USE 문을 사용하면 현재 세션의 기본 데이터베이스를 다른 데이터베이스로 손쉽게 전환할 수 있습니다.
mysql> USE query; Database changed mysql> SELECT DATABASE(); +------------+ | DATABASE() | +------------+ | query | +------------+ 1 row in set (0.00 sec)
이제부터는 'query'가 현재 세션의 기본 데이터베이스가 됩니다. 이후 실행되는 테이블 조회나 쿼리는 별도로 데이터베이스 이름을 명시하지 않는 한 모두 'query' 데이터베이스를 대상으로 수행됩니다.
알아두면 좋은 점
기본 데이터베이스 설정은 세션이 종료되면 함께 사라지므로, 새로 접속할 때마다 다시 지정해야 합니다. 접속 시점에 바로 기본 데이터베이스를 지정하려면 mysql 클라이언트 실행 시 데이터베이스 이름을 함께 입력하거나, 접속 직후 USE 문을 실행하면 됩니다.
또한 기본 데이터베이스를 선택하지 않은 상태에서 테이블에 접근하려고 하면 "No database selected(데이터베이스가 선택되지 않았습니다)" 오류가 발생하므로 주의해야 합니다. 정리하자면, MySQL의 '기본 데이터베이스'는 사용자에게 부여되는 것이 아니라 세션 단위로 설정·유지되는 작업 대상 데이터베이스라고 이해하는 것이 정확합니다.