Опишите структуру таблицы


88

Какой запрос даст структуру таблицы с определениями столбцов в SQL?


3
Вы должны указать поставщика вашей базы данных, поскольку команды различаются.


2
Это не дубликат, поскольку там указана база данных.
schmijos

2
@schmijos: в лучшем случае это подразумевается. «sql» НЕ означает «MS Sql Server», и вызывает раздражение то, что так много людей, кажется, считают приемлемым использование общего термина для указания конкретного поставщика. «sql» означает язык структурированных запросов, и Microsoft - не единственный «sql».
Bane

2
@bane На самом деле я подумал то же самое и попытался ответить на общий вопрос «SQL». Но OP удалил мой ответ. Это было причиной для вывода. А пока вопрос был отредактирован с MSSQL на SQL. Так что я этого больше не понимаю.
schmijos 01

Ответы:



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>'

Вы можете получить подробную информацию, такую ​​как тип данных столбца и размер по этому запросу





4

Выделите имя таблицы в консоли и нажмите ALT+F1


9
OP попросил запрос, а не расплывчатые шаги в неуказанной консоли.
Wranorn

1

Это зависит от поставщика вашей базы данных. В основном это «информационная схема», которую вы должны найти в Google (применимо к MySQL, MSSQL и, возможно, другим).


1

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

Для SQL Server используйте exec sp_help

USE db_name;
exec sp_help 'dbo.table_name'

Для MySQL используйте description

DESCRIBE table_name;
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.