テーブル構造を説明する


84

SQLの列定義を含むテーブル構造を提供するクエリはどれですか?


3
コマンドが異なるため、データベースベンダーを指定する必要があります。


2
データベースが指定されているため、重複ではありません。
schmijos 2015

2
@schmijos:実際には、せいぜい暗示されています。「sql」は「MSSQLServer」を意味するものではなく、特定のベンダーを指定するために一般的な用語を使用することは許容できると多くの人が考えているように思われるのは苛立たしいことです。「sql」は構造化照会言語を意味し、Microsoftだけが「sql」ではありません。
ベイン

2
@bane私は実際に同じことを考えて、一般的な「SQL」の質問に答えようとしました。しかし、OPは私の答えを削除しました。それが含意の理由でした。その間に、質問はMSSQLからSQLに編集されました。だから私はもうそれを取得しません。
schmijos 2018

回答:



57

使用するデータベースによって異なります。不完全なリストは次のとおりです。

  • sqlite3: .schema table_name
  • Postgres(psql): \d table_name
  • SQL Server :(sp_help table_nameまたはsp_columns table_name列のみ)
  • Oracle DB2:desc table_nameまたはdescribe table_name
  • MySQL :(describe table_nameまたはshow columns from table_name列のみ)


18
select * from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='<Table Name>'

このクエリにより、列のデータ型やサイズなどの詳細を取得できます




5

Sybase、別名SQL Anywhereの場合、次のコマンドはテーブルの構造を出力します。

DESCRIBE 'TABLE_NAME';

4

コンソールでテーブル名を強調表示し、を押します ALT+F1


9
OPは、指定されていないコンソールでのあいまいな手順ではなく、クエリを要求しました。
Wranorn 2017

1

これは、データベースベンダーによって異なります。ほとんどの場合、これはGoogleが必要とする「情報スキーマ」です(MySQL、MSSQLなどに適用されます)。




0

SQLサーバー

DECLARE @tableName nvarchar(100)
SET @tableName = N'members' -- change with table name
SELECT
    [column].*,
    COLUMNPROPERTY(object_id([column].[TABLE_NAME]), [column].[COLUMN_NAME], 'IsIdentity') AS [identity]
FROM 
    INFORMATION_SCHEMA.COLUMNS [column] 
WHERE
    [column].[Table_Name] = @tableName

0

SQL Serverの場合は、execsp_helpを使用します

USE db_name;
exec sp_help 'dbo.table_name'

MySQLの場合、describeを使用します

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