SQL 쿼리 인터페이스 만 있고 쿼리로 데이터베이스 구조를 알고 싶은 MySQL 데이터베이스가 있습니다. show tables;명령을 사용하여 테이블을 나열 할 수 있지만 개별 열 이름은 어떻게 표시됩니까?
( SELECT문은 Empty set데이터가 없어서 사용할 수 없는지를 나타냅니다 .)
SQL 쿼리 인터페이스 만 있고 쿼리로 데이터베이스 구조를 알고 싶은 MySQL 데이터베이스가 있습니다. show tables;명령을 사용하여 테이블을 나열 할 수 있지만 개별 열 이름은 어떻게 표시됩니까?
( SELECT문은 Empty set데이터가 없어서 사용할 수 없는지를 나타냅니다 .)
답변:
select column_name from information_schema.columns where table_name='table'
show create table <table_name><table_name> 대신 테이블 이름을 일반 텍스트로 입력하십시오. 이것은 또한 유형을 제공하지만 귀하는 귀하의 목록 작성 목적에 매우 적합합니다.
내가 스스로 알아 낸 가장 좋은 해결책은 desc table_name명령이었습니다. 자세한 내용은 List MySQL Tables에 있습니다. 이 명령은 정확히 하나의 데이터베이스 테이블에 대한 설명을 제공합니다.
현재 데이터베이스의 테이블에 열을 나열하려면 DATABASE () 또는 SCHEMA () 함수를 사용하십시오 . 현재 데이터베이스에 없으면 NULL을 반환합니다. 이 쿼리는 열이 정의 된 순서대로 테이블의 열을 표시합니다.
SELECT column_name,column_type
FROM information_schema.columns
WHERE table_schema = DATABASE()
AND table_name='table'
ORDER BY ordinal_position;
테이블 제목의 의미를 이해하지 못하지만 INFORMATION_SCHEMA 에서 테이블 및 해당 열에 대한 대부분의 정보를 얻을 수 있습니다.
개별 테이블 제목은 어떻게 보입니까?
표 주석 을 의미 합니까?
use stack;
create table t(v integer primary key) comment 'My Special Table';
show tables;
+-----------------+
| Tables_in_stack |
+-----------------+
| t |
+-----------------+
select table_name, table_comment from information_schema.tables where table_name='t';
+------------+------------------+
| table_name | table_comment |
+------------+------------------+
| t | My Special Table |
+------------+------------------+
테이블 목록과 해당 열의 세부 정보를 얻으려면 조인 information_schema.tables하고 information_schema.columns함께 결합해야합니다 .
information_schema.columns테이블에 대한 세부 정보뿐만 아니라 뷰도 표시합니다. 이 시스템보기에서 테이블 세부 사항 만 필터링 할 수있는 방법이 없습니다.
따라서 가입해야합니다.
쿼리 예 :
select t.TABLE_SCHEMA, t.TABLE_NAME, c.COLUMN_NAME, c.COLUMN_TYPE, c.DATA_TYPE
from information_schema.tables t , information_schema.columns c where 2=2
and t.table_schema=c.table_schema
and t.table_name=c.table_name
and t.table_type ='BASE TABLE'
order by t.table_schema, t.table_name, c.column_name
;
desc명령 에 대한 맨 아래 솔루션입니다 . 궁금한 점은 가장 짧지 만 투표 수가 가장 적습니다. 나에게도 최고입니다.