Beschreiben der Tabellenstruktur


84

Welche Abfrage gibt die Tabellenstruktur mit Spaltendefinitionen in SQL an?


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:



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)


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

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


11
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'student'


5

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

DESCRIBE 'TABLE_NAME';

4

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


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).


1

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


1

In DBTools for Sybase ist es sp_columns your_table_name.


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

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;
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.