Beschreiben der Tabellenstruktur

84

Welche Abfrage gibt die Tabellenstruktur mit Spaltendefinitionen in SQL an?

Antoops
quelle
3
Sie sollten Ihren Datenbankanbieter angeben, da sich die Befehle unterscheiden.
2
Es ist kein Duplikat, da dort die Datenbank angegeben ist.
schmijos
2
@schmijos: eigentlich ist es bestenfalls impliziert. "sql" bedeutet NICHT "MS Sql Server" und es ist irritierend, dass so viele Leute denken, dass es akzeptabel ist, den Oberbegriff zu verwenden, um einen bestimmten Anbieter anzugeben. "sql" bedeutet strukturierte Abfragesprache und Microsoft ist nicht die einzige "sql".
Bane
2
@bane Ich dachte eigentlich das gleiche und versuchte die generische "SQL" -Frage zu beantworten. Aber das OP hat meine Antwort gelöscht. Das war der Grund für die Implikation. In der Zwischenzeit wurde die Frage von MSSQL nach SQL bearbeitet. Also verstehe ich es nicht mehr.
schmijos

Antworten:

68

sp_help Tabellenname im SQL Server -sp_help [ [ @objname = ] 'name' ]

absteigender Name in Orakel -DESCRIBE { table-Name | view-Name }

Pranay Rana
quelle
56

Dies hängt von der verwendeten Datenbank ab. Hier ist eine unvollständige Liste:

  • sqlite3: .schema table_name
  • Postgres (psql): \d table_name
  • SQL Server: sp_help table_name(oder sp_columns table_namenur für Spalten)
  • Oracle DB2: desc table_nameoderdescribe table_name
  • MySQL: describe table_name(oder show columns from table_namenur für Spalten)
schmijos
quelle
20

In MySQL können Sie verwenden DESCRIBE <table_name>

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

Mit dieser Abfrage können Sie Details wie Spaltendatentyp und -größe abrufen

Pankaj Upadhyay
quelle
11
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'student'
neeraj
quelle
5

Für Sybase aka SQL Anywhere gibt der folgende Befehl die Struktur einer Tabelle aus:

DESCRIBE 'TABLE_NAME';
Ozair Kafray
quelle
4

Markieren Sie den Tabellennamen in der Konsole und drücken Sie ALT+F1

Krishna Teja
quelle
9
OP fragte nach der Abfrage, nicht nach vagen Schritten in einer nicht spezifizierten Konsole.
Wranorn
1

Dies hängt von Ihrem Datenbankanbieter ab. Meistens ist es das "Informationsschema", für das Sie Google verwenden sollten (gilt für MySQL, MSSQL und möglicherweise andere).

Karel Petranek
quelle
1

Verwenden Sie für SQL das Schlüsselwort 'sp_help'. Geben Sie hier die Bildbeschreibung ein

maneesh
quelle
1

In DBTools for Sybase ist es sp_columns your_table_name.

Quan VO
quelle
0

SQL Server

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
Gabriele Petrioli
quelle
0

Verwenden Sie für SQL Server exec sp_help

USE db_name;
exec sp_help 'dbo.table_name'

Verwenden Sie für MySQL beschreiben

DESCRIBE table_name;
Harry_pb
quelle