쿼리를 통해 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_schema
is 데이터베이스명
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
'source' 카테고리의 다른 글
쉼표로 구분된 문자열을 배열로 분할하시겠습니까? (0) | 2022.09.12 |
---|---|
배열의 indexOf 함수와 findIndex 함수의 차이 (0) | 2022.09.11 |
도커에서 마리애드브에 원격접속하는 방법은? (0) | 2022.09.11 |
암호화 및 복호화, md5 (0) | 2022.09.11 |
통합 테스트에서 콩 덮어쓰기 (0) | 2022.09.11 |