programing tip

쿼리를 통해 MySQL에서 데이터베이스 구조를 얻는 방법

itbloger 2020. 6. 5. 20:19
반응형

쿼리를 통해 MySQL에서 데이터베이스 구조를 얻는 방법


어떻게 든 MySQL 데이터베이스의 구조를 얻거나 간단한 쿼리로 테이블을 얻을 수 있습니까?

아니면 다른 방법이 있습니까? 어떻게 할 수 있습니까?


당신이 쫓아 온 것이 DESCRIBE

DESCRIBE table;

당신은 또한 사용할 수 있습니다 SHOW TABLES

SHOW TABLES;

데이터베이스의 테이블 목록을 가져옵니다.


전체 데이터베이스 구조를 CREATE TABLE세트로 가져 오려면 mysqldump를 사용하십시오 .

mysqldump database_name --compact --no-data

단일 테이블의 경우 mysqldump에서 db 이름 뒤에 테이블 이름을 추가하십시오. SQL과 SHOW CREATE TABLE을 사용하여 동일한 결과를 얻습니다 .

SHOW CREATE TABLE table;

열 목록을 선호하는 경우 DESCRIBE 또는

DESCRIBE table;

를 살펴보십시오 INFORMATION_SCHEMA. TABLES표. 모든 테이블에 대한 메타 데이터가 포함되어 있습니다.

예:

SELECT * FROM `INFORMATION_SCHEMA`.`TABLES`
WHERE TABLE_NAME LIKE 'table1'

다른 방법에 비해이 방법의 장점은 위와 같은 쿼리를 다른 쿼리의 하위 쿼리로 쉽게 사용할 수 있다는 것입니다.


이것을 사용하여 :

SHOW CREATE TABLE `users`;

해당 테이블에 대한 DDL제공 합니다

DESCRIBE `users`

해당 테이블의 열을 나열합니다.


SELECT *
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME ='products'; 

Table_schema데이터베이스 이름은 어디에 있습니까


이것이 SHOW CREATE TABLE 쿼리입니다. SCHEMA TABLES쿼리 할 수 ​​있습니다 .

SHOW CREATE TABLE YourTableName;

내가 찾은 첫 번째 답변의 변형

명령 프롬프트를 열고 입력하십시오 (mysql 서버에 로그인 할 필요가 없습니다)

mysqldump -hlocalhost -u<root> -p<password>  <dbname>  --compact --no-data > </path_to_mydump/>mysql.dmp

COLUMN_NAMEFROM에서 선택하십시오 INFORMATION_SCHEMA. COLUMNS어디에 TABLE_SCHEMA= 'bodb'AND TABLE_NAME= 'abc';

모든 열 이름을 가져옵니다.


요즘 사람들은 DESC대신에 사용 합니다 DESCRIPTION. 예를 들면 다음과 같습니다.DESC users;


다음 예에서

playground데이터베이스 이름이고 equipment테이블 이름입니다.

또 다른 방법은 사용 SHOW-열 : 5.5 (사용할 수를도에 대한 5.5>)

$ mysql -uroot -p<password> -h<host> -P<port> -e \
    "SHOW COLUMNS FROM playground.equipment"

그리고 출력 :

mysql: [Warning] Using a password on the command line interface can be insecure.
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| type  | varchar(50) | YES  |     | NULL    |                |
| quant | int(11)     | YES  |     | NULL    |                |
| color | varchar(25) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+

하나는 사용할 수 mysqlshow 데이터 클라이언트 (도 사용할 수를 5.5>다음과 같이) :

$ mysqlshow -uroot -p<password> -h<host> -P<port> \
    playground equipment

그리고 출력 :

mysqlshow: [Warning] Using a password on the command line interface can be insecure.
Database: playground  Table: equipment
+-------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
| Field | Type        | Collation         | Null | Key | Default | Extra          | Privileges                      | Comment |
+-------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
| id    | int(11)     |                   | NO   | PRI |         | auto_increment | select,insert,update,references |         |
| type  | varchar(50) | latin1_swedish_ci | YES  |     |         |                | select,insert,update,references |         |
| quant | int(11)     |                   | YES  |     |         |                | select,insert,update,references |         |
| color | varchar(25) | latin1_swedish_ci | YES  |     |         |                | select,insert,update,references |         |
+-------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+

참고 URL : https://stackoverflow.com/questions/898688/how-to-get-database-structure-in-mysql-via-query

반응형