MySQLデータベースのテーブルのスキーマを表示するにはどうすればよいですか?


回答:


535
describe [db_name.]table_name;

フォーマットされた出力、または

show create table [db_name.]table_name;

テーブルの作成に使用できるSQLステートメントの場合。


2
これは答えではありません。OPは「db_name」の部分を理解しようとしていますが、このソリューションは、あなたがすでにそれを知っていることを前提としています
Antonio Ortells

40
OPは7年前にその回答を受け入れました。彼はその答えに満足していたと思います。
Omry Yadan 2016

データベースはスキーマではありません。
Coder

1
またはdesc [db_name.]table_name;略して。
yakout

1
Antionioの弁護では、システムによっては、関連するテーブルのコレクションをデータベースではなくスキーマと呼んでいます。どちらがなぜかわからない。
dlamblin 2018年


18

descテーブルの説明のように、describeの省略形を使用することもできます。

desc [db_name。] table_name;

または

db_nameを使用します。
desc table_name;

explainテーブルの説明にも使用できます。

説明[db_name。] table_name;

公式ドキュメントを見る

次のような出力が得られます:

+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(10)     | NO   | PRI | NULL    |       |
| name     | varchar(20) | YES  |     | NULL    |       |
| age      | int(10)     | YES  |     | NULL    |       |
| sex      | varchar(10) | YES  |     | NULL    |       |
| sal      | int(10)     | YES  |     | NULL    |       |
| location | varchar(20) | YES  |     | Pune    |       |
+----------+-------------+------+-----+---------+-------+

12

おそらく、2つの異なる方法で読むことができるので、ここで何が必要かについて、質問をもう少し正確にする必要があります。すなわち

  1. mysqlでテーブルの構造/定義を取得するにはどうすればよいですか?
  2. このテーブルが存在するスキーマ/データベースの名前を取得するにはどうすればよいですか?

受け入れられた回答が与えられた場合、OPは明確に最初の方法で解釈されることを意図しました。質問を読んでいる人は別の方法で試してください

SELECT `table_schema` 
FROM `information_schema`.`tables` 
WHERE `table_name` = 'whatever';

2番目の点に対するあなたの答えは、私が探しているものを手助けしてくれました。私のエディターが使用しようとしたテーブルに「無効なオブジェクト」というエラーをスローしました。この情報を取得するまで、テーブルはすでに他のユーザーによって作成されているため、テーブルが該当するDBまたはスキーマについての手掛かりがありません
mannedear

5
SELECT COLUMN_NAME, TABLE_NAME,table_schema
FROM INFORMATION_SCHEMA.COLUMNS;
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.