source

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

factcode 2022. 9. 11. 17:10
반응형

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

MySQL 데이터베이스의 구조를 얻을 수 있을까요, 아니면 간단한 쿼리로 테이블을 얻을 수 있을까요?

아니면 다른 방법이 있을까요? 어떻게 하면 될까요?

네가 원하는 건

DESCRIBE table;

를 사용할 수도 있습니다.

SHOW TABLES;

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

데이터베이스 구조 전체를 CREATE TABLE 문의 세트로 가져오려면 mysqldump를 사용합니다.

mysqldump database_name --compact --no-data

단일 테이블의 경우 mysqldump에서 db name 뒤에 테이블 이름을 추가합니다.SQL 및 SHOW CREATE TABLE에서도 동일한 결과를 얻을 수 있습니다.

SHOW CREATE TABLE table;

또는 열 목록을 원하는 경우 설명:

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_schemais 데이터베이스명

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

다음 명령어 중 하나를 선택할 수 있습니다.모든 것이 거의 동일합니다.

SHOW CREATE TABLE TABLE_NAME;

DESC TABLE_NAME;

SHOW FULL COLUMNS FROM TABLE_NAME; (열 속성용)

EXPLAIN TABLE_NAME;

DESCRIBE TABLE_NAME;

다음 예제에서는

playground 는 데이터베이스 이름과 테이블 이름입니다.

다른 방법으로는 SHOW-COLUMNS: 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-client도 사용할 수 있습니다(다음 주소에서도 사용 가능).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 |         |
+-------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+

선택한다.COLUMN_NAME부터INFORMATION_SCHEMA.COLUMNS어디에TABLE_SCHEMA='bodb' ANDTABLE_NAME='아예';

모든 열 이름을 가져오는 데 사용됩니다.

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

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

반응형