Descrivi la struttura della tabella


88

Quale query fornirà la struttura della tabella con le definizioni delle colonne in SQL?


3
È necessario specificare il fornitore del database poiché i comandi differiscono.


2
Non è un duplicato poiché lì è specificato il database.
schmijos

2
@schmijos: in realtà è implicito, nella migliore delle ipotesi. "sql" NON significa "MS Sql Server" ed è irritante che così tante persone sembrano pensare che sia accettabile usare il termine generico per specificare un fornitore specifico. "sql" significa Structured Query Language e Microsoft non è l'unico "sql".
Bane

2
@bane In realtà ho pensato la stessa cosa e ho provato a rispondere alla domanda generica "SQL". Ma l'OP ha cancellato la mia risposta. Questa era la ragione dell'implicazione. E nel frattempo la domanda è stata modificata da MSSQL a SQL. Quindi non capisco più.
schmijos

Risposte:


69

sp_help tablename nel server sql -sp_help [ [ @objname = ] 'name' ]

desc tablename in oracle -DESCRIBE { table-Name | view-Name }


57

Dipende dal database che utilizzi. Ecco un elenco incompleto:

  • sqlite3: .schema table_name
  • Postgres (psql): \d table_name
  • SQL Server: sp_help table_name(o sp_columns table_namesolo per colonne)
  • Oracle DB2: desc table_nameodescribe table_name
  • MySQL: describe table_name(o show columns from table_namesolo per colonne)


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

È possibile ottenere dettagli come il tipo di dati e la dimensione della colonna da questa query


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


5

Per Sybase aka SQL Anywhere il seguente comando restituisce la struttura di una tabella:

DESCRIBE 'TABLE_NAME';

4

Evidenziare il nome della tabella nella console e premere ALT+F1


9
OP ha chiesto la query non per passaggi vaghi in una console non specificata.
Wranorn

1

Dipende dal fornitore del database. Principalmente è lo "schema delle informazioni" per cui dovresti cercare su Google (vale per MySQL, MSSQL e forse altri).


1

Server 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


1

In DBTools per Sybase, è sp_columns your_table_name.


1

Per SQL Server utilizzare exec sp_help

USE db_name;
exec sp_help 'dbo.table_name'

Per MySQL, usa descrivere

DESCRIBE table_name;
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.