데이터베이스나 테이블의 이름, 테이블 구조, 컬럼 이름 등을 잊어버리는 경우는 생각보다 흔합니다. 다행히 MySQL은 데이터베이스와 테이블에 대한 다양한 정보를 조회할 수 있는 여러 문장(statement)을 지원하기 때문에 이러한 문제를 손쉽게 해결할 수 있습니다.
'SHOW DATABASES' 쿼리를 사용하면 서버가 관리하는 모든 데이터베이스 목록을 확인할 수 있으며, 현재 어떤 데이터베이스가 사용 중인지 확인하려면 'DATABASE()' 함수를 이용하면 됩니다.
현재 사용 중인 데이터베이스 확인
다음 쿼리로 현재 선택된 데이터베이스를 확인할 수 있습니다.
mysql> SELECT DATABASE();
Output
+---------------------+ | DATABASE() | +---------------------+ | databaseInUse | +---------------------+
만약 아무 데이터베이스도 선택하지 않은 상태라면 결과는 'NULL'로 표시됩니다.
기본 데이터베이스의 테이블 목록 보기
현재 데이터베이스에 어떤 테이블들이 있는지 확인하려면 아래 쿼리를 사용합니다.
mysql> SHOW TABLES;
Output
+-----------------------------------+ | Tables_in_databaseInUse | +-----------------------------------+ | val1 | | val1 | +-----------------------------------+
출력 결과의 컬럼 이름은 'Tables_in_databaseInUse' 형태로 표시되며, 여기서 databaseInUse는 현재 사용 중(선택된) 데이터베이스의 이름입니다.
테이블 구조 자세히 살펴보기
테이블 구조에 대한 더 자세한 정보가 필요하다면 'DESCRIBE' 문을 사용할 수 있습니다. 이 문은 테이블의 각 컬럼에 대한 정보를 보여줍니다.
mysql> DESCRIBE pet;
Output
+---------+-------------+-------+------+-----------+--------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+-------+------+-----------+--------+ | name | varchar(20) | YES | | NULL | | | owner | varchar(20) | YES | | NULL | | +---------+-------------+-------+------+-----------+--------+
각 항목의 의미는 다음과 같습니다.
- Field: 컬럼 이름
- Type: 컬럼의 데이터 타입
- Null: 해당 컬럼에 NULL 값 저장 가능 여부
- Key: 컬럼의 인덱스 설정 여부
- Default: 컬럼의 기본값
- Extra: 컬럼에 대한 특수 정보
'Extra' 항목에는 컬럼에 대한 특별한 정보가 표시됩니다. 예를 들어 컬럼이 'AUTO_INCREMENT' 옵션으로 생성된 경우 이 값은 비어 있지 않고 'auto_increment'로 표시됩니다.