テーブルの列名を表示する方法は?


17

ケースは簡単です。SQLクエリインターフェイスのみを持つMySQLデータベースがあり、クエリのデータベース構造を知りたい場合。show tables;コマンドを使用してテーブルを一覧表示できますが、個々の列名をどのように表示しますか?

SELECTステートメントはEmpty setデータが存在せず、したがって使用できない場合に表示します。)


受け入れられる解決策はdescコマンドに関する一番下の解決策であることに注意してください。好奇心が強い、それは最短ですが、投票数が最も少ないです。私にとっても最高です。
mico

2
簡単なSQLクエリを要求しました。あなたの答えはSQLではないので、それは低い投票数を説明するかもしれません。おそらくにクエリのタイトルを変更する必要があります。「テーブルの列名を表示する方法」
レナート

良いアイデアです。今、私の答えは質問によりよくマッチします。
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コマンドでした。詳細については、MySQLテーブルのリストを参照してください。このコマンドは、1つのデータベーステーブルの説明を提供します。これはまさに私が見つけようとしていたものです。




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
質問の内容を少し変更して、後の列であることが明確になるようにしてください。
ジャックダグラス

2
SHOW COLUMNS FROM mydb.mytable;

mydb-必要なテーブルを含むデータベース

mytable-必要なテーブルです

列の情報を返します(たとえば、列の名前、タイプなど)。


1
OPの問題をどのように解決するかの説明のない小さなコードスニペットは推奨されません。回答に詳細を追加してみてください。
エリック

0

テーブルとその列の詳細のリストを取得するにはinformation_schema.tablesinformation_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.