테이블의 열 이름을 표시하는 방법은 무엇입니까?


17

SQL 쿼리 인터페이스 만 있고 쿼리로 데이터베이스 구조를 알고 싶은 MySQL 데이터베이스가 있습니다. show tables;명령을 사용하여 테이블을 나열 할 수 있지만 개별 열 이름은 어떻게 표시됩니까?

( SELECT문은 Empty set데이터가 없어서 사용할 수 없는지를 나타냅니다 .)


허용되는 솔루션은 desc명령 에 대한 맨 아래 솔루션입니다 . 궁금한 점은 가장 짧지 만 투표 수가 가장 적습니다. 나에게도 최고입니다.
mico

2
간단한 SQL 쿼리를 요청했습니다. 귀하의 답변은 SQL이 아니므로 투표 수가 적습니다. 쿼리 제목을 "테이블의 열 이름을 표시하는 방법"으로 변경해야합니다.
Lennart

좋은 생각, 이제 내 대답은 질문에 더 잘 어울립니다.
mico

답변:


36
select column_name from information_schema.columns where table_name='table'

2
한편이 쿼리도 유용하다는 것을 알았습니다. show create table <table_name><table_name> 대신 테이블 이름을 일반 텍스트로 입력하십시오. 이것은 또한 유형을 제공하지만 귀하는 귀하의 목록 작성 목적에 매우 적합합니다.
mico

@mico가 말했듯이 : "show create table tbl_name \ G"가 해결책 일 수 있습니다. dev.mysql.com/doc/refman/5.7/en/show-create-table.html을 참조하십시오 . "\ G"부분은 출력 형식을 지정하기위한 것입니다. 문안 인사.
tdaget

6

내가 스스로 알아 낸 가장 좋은 해결책은 desc table_name명령이었습니다. 자세한 내용은 List MySQL Tables에 있습니다. 이 명령은 정확히 하나의 데이터베이스 테이블에 대한 설명을 제공합니다.


6

현재 데이터베이스의 테이블에 열을 나열하려면 DATABASE () 또는 SCHEMA () 함수를 사용하십시오 . 현재 데이터베이스에 없으면 NULL을 반환합니다. 이 쿼리는 열이 정의 된 순서대로 테이블의 열을 표시합니다.

SELECT column_name,column_type
FROM information_schema.columns
WHERE table_schema = DATABASE()
AND table_name='table'
ORDER BY ordinal_position;


3

개별 테이블 제목은 어떻게 보입니까?

표 주석 을 의미 합니까?

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 |
+------------+------------------+

나는 그 열 이름을 원했고 빠른 답변 덕분에 이미 몇 가지 방법이 있습니다. 이 의견에 대해서도 감사드립니다, 잭.
mico

1
당신이 당신이 따르는 열인지 명확하게하기 위해 질문에 약간의 단어를 다시 쓰시겠습니까?
Jack Douglas

2
SHOW COLUMNS FROM mydb.mytable;

여기서 mydb-필요한 테이블이 포함 된 데이터베이스

mytable-필요한 테이블입니다

열 정보를 반환합니다 (예 : 열 이름, 유형 등)


1
OP의 문제를 해결하는 방법에 대한 설명이없는 작은 코드 스 니펫은 권장하지 않습니다. 답변에 자세한 내용을 추가하십시오.
Erik

0

테이블 목록과 해당 열의 세부 정보를 얻으려면 조인 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 
;
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.