3.4 데이터베이스 및 테이블 정보 가져 오기
데이터베이스 및 테이블의 이름을 잊어 버렸거나 특정 테이블의 구조 (컬럼 이름 등)을 분실 한 경우 어떻게합니까? MySQL에서는이 문제를 해결하기 위해 지원하는 데이터베이스와 테이블에 대한 정보를 제공하는 문이 일부 포함되어 있습니다.
앞의 SHOW DATABASES
는 서버에서 관리되는 데이터베이스의 목록을 표시합니다. 현재 어떤 데이터베이스가 선택되어 있는지 확인하려면 DATABASE()
함수를 사용합니다.
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| menagerie |
+------------+
아직 어떤 데이터베이스도 선택하지 않은 경우, 결과는 NULL
이됩니다.
테이블의 이름이 확실하지 않은 경우에 기본 데이터베이스에 어떤 테이블이 포함되어 있는지 확인하려면 다음 명령을 사용합니다.
mysql> SHOW TABLES;
+---------------------+
| Tables_in_menagerie |
+---------------------+
| event |
| pet |
+---------------------+
이 문에서 생성 된 출력 컬럼 이름은 항상 Tables_in_
됩니다. 여기서 db_name
db_name
은 데이터베이스의 이름입니다. 자세한 내용은 섹션 13.7.5.38 "SHOW TABLES 구문" 을 참조하십시오.
테이블의 구조를 알고 싶다면, DESCRIBE
문이 유용합니다. 이 문은 테이블의 각 컬럼의 정보를 표시합니다.
mysql> DESCRIBE pet;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| owner | varchar(20) | YES | | NULL | |
| species | varchar(20) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
Field
는 컬럼 명, Type
은 컬럼의 데이터 형식 NULL
은 컬럼에 NULL
값을 포함 할 수 있는지 여부 Key
는 컬럼에 인덱스가 설정되어 있는지, Default
는 컬럼의 기본값을 나타냅니다. Extra
에는 열에 대한 특별한 정보가 표시됩니다. 컬럼이 AUTO_INCREMENT
옵션으로 작성된 경우, 값은 하늘이 아니라 auto_increment
됩니다.
DESC
는 DESCRIBE
의 생략 형식입니다. 자세한 내용은 섹션 13.8.1 "DESCRIBE 구문" 을 참조하십시오.
기존 테이블을 만드는 데 필요한 CREATE TABLE
문을 SHOW CREATE TABLE
문을 사용하여 얻을 수 있습니다. 섹션 13.7.5.12 "SHOW CREATE TABLE 구문" 을 참조하십시오.
테이블에 인덱스가 설정되어있는 경우, SHOW INDEX FROM
에서 그 정보를 볼 수 있습니다. 이 문에 대한 자세한 내용은 섹션 13.7.5.23 "SHOW INDEX 구문" 을 참조하십시오. tbl_name