DB

[MySQL] SHOW 완벽 가이드 사용법(데이터베이스 정보 확인)

인생아 2024. 12. 25. 22:50
반응형

MySQL에서 SHOW 명령어는 데이터베이스, 테이블, 열, 상태 등 MySQL 서버와 관련된 다양한 정보를 조회하는 데 사용됩니다. SHOW 명령어를 활용하면 MySQL 환경을 분석하고 문제를 해결하거나 데이터베이스 구조를 이해하는 데 매우 유용합니다.

SHOW 명령어란?

SHOW 명령어는 MySQL에서 메타데이터(데이터의 데이터)를 조회하는 데 사용됩니다. 즉, 데이터베이스 내부 구조나 MySQL 서버의 설정 정보를 확인할 때 사용됩니다. 이는 데이터베이스 설계자나 관리자가 작업을 더 효과적으로 수행할 수 있도록 도와줍니다.

기본 문법

SHOW 옵션;

여기서 옵션은 사용자가 조회하려는 정보의 종류에 따라 다릅니다.

SHOW 명령어의 주요 활용

1. 데이터베이스 목록 조회

MySQL 서버에 존재하는 모든 데이터베이스를 확인하려면 다음 명령을 사용합니다.

SHOW DATABASES;

출력 예시

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| my_database        |
+--------------------+

2. 테이블 목록 조회

특정 데이터베이스 안에 있는 테이블 목록을 확인하려면 해당 데이터베이스를 선택한 후 다음 명령을 실행합니다.

USE my_database;
SHOW TABLES;

출력 예시

+------------------+
| Tables_in_my_database |
+------------------+
| users            |
| products         |
| orders           |
+------------------+
반응형

SHOW 명령어의 다양한 옵션

1. 열 정보 확인

특정 테이블의 열(컬럼)에 대한 정보를 확인하려면 SHOW COLUMNS를 사용합니다.

SHOW COLUMNS FROM users;

출력 예시

+---------+-------------+------+-----+---------+----------------+
| Field   | Type        | Null | Key | Default | Extra          |
+---------+-------------+------+-----+---------+----------------+
| id      | int         | NO   | PRI | NULL    | auto_increment |
| name    | varchar(50) | YES  |     | NULL    |                |
| email   | varchar(100)| NO   | UNI | NULL    |                |
+---------+-------------+------+-----+---------+----------------+

2. 테이블 구조 확인

테이블의 구조를 더 자세히 확인하려면 SHOW CREATE TABLE을 사용합니다.

SHOW CREATE TABLE users;

출력 예시

CREATE TABLE `users` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  `email` varchar(100) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

3. 서버 상태 정보 확인

MySQL 서버의 현재 상태와 설정을 확인하려면 다음 명령어를 사용합니다.

SHOW STATUS;

출력 예시

+--------------------------------+-------+
| Variable_name                  | Value |
+--------------------------------+-------+
| Aborted_clients                | 0     |
| Aborted_connects               | 0     |
| Bytes_received                 | 254   |
| Bytes_sent                     | 336   |
+--------------------------------+-------+

4. 서버 변수 조회

MySQL 서버에서 설정된 변수와 값을 확인하려면 SHOW VARIABLES를 사용합니다.

SHOW VARIABLES;
 

출력 예시

+----------------------------+-----------------------------+
| Variable_name              | Value                       |
+----------------------------+-----------------------------+
| character_set_server       | utf8mb4                    |
| max_connections            | 151                        |
| sql_mode                   | STRICT_TRANS_TABLES        |
+----------------------------+-----------------------------+
반응형

SHOW 명령어의 고급 활용

1. 데이터베이스 상태 확인

SHOW TABLE STATUS FROM my_database;

출력 예시

+--------+--------+---------+------------+------+-----+-----------+
| Name   | Engine | Version | Row_format | Rows | Avg_row_length | Data_length |
+--------+--------+---------+------------+------+-----+-----------+
| users  | InnoDB | 10      | Dynamic    | 500  | 80            | 40960       |
| orders | InnoDB | 10      | Dynamic    | 1000 | 100           | 102400      |
+--------+--------+---------+------------+------+-----+-----------+

2. 테이블 외래 키 확인

테이블의 외래 키 정보를 확인하려면 SHOW CREATE TABLE을 활용합니다.

SHOW CREATE TABLE orders;

3. 권한 정보 확인

현재 사용자 계정에 할당된 권한을 확인하려면 다음 명령을 사용합니다.

+--------------------------------------------+
| Grants for user@localhost                  |
+--------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' WITH GRANT OPTION |
+--------------------------------------------+

출력 예시

+--------------------------------------------+
| Grants for user@localhost                  |
+--------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' WITH GRANT OPTION |
+--------------------------------------------+
반응형

SHOW 명령어를 사용할 때의 주의점

  1. 사용자 권한
    일부 SHOW 명령어는 관리자 권한이 필요합니다. 예를 들어, 서버 설정 변수나 사용자 권한 정보를 확인하려면 적절한 권한이 있어야 합니다.
  2. 데이터베이스 선택 필수
    데이터베이스 관련 정보를 조회하기 전에 반드시 USE 명령어로 데이터베이스를 활성화해야 합니다.
  3. 대규모 데이터 출력 주의
    SHOW STATUSSHOW VARIABLES는 많은 데이터를 반환할 수 있으므로 필요할 경우 LIKE 절을 사용해 필터링하세요.
SHOW VARIABLES LIKE 'character_set%';

SHOW 명령어로 데이터베이스 이해하기

예제 1: 사용자 정의 데이터 확인

USE company_db;
SHOW TABLES;

SHOW COLUMNS FROM employees;

예제 2: 서버 설정 변경 전 상태 확인

SHOW VARIABLES LIKE 'max_connections';

-- 설정 변경
SET GLOBAL max_connections = 200;

-- 변경 후 확인
SHOW VARIABLES LIKE 'max_connections';

예제 3: 테이블 간 데이터 비교

USE db1;
SHOW TABLE STATUS;

USE db2;
SHOW TABLE STATUS;

참고

MySQL 공식 문서: https://dev.mysql.com/doc/refman/8.0/en/

반응형