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

88

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

Antoops
источник
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только для столбцов)
Schmijos
источник
21

В MySQL вы можете использовать DESCRIBE <table_name>

Анакс
источник
18
select * from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='<Table Name>'

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

Панкадж Упадхьяй
источник
11
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'student'
Neeraj
источник
5

Для Sybase aka SQL Anywhere следующая команда выводит структуру таблицы:

DESCRIBE '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 используйте ключевое слово sp_help. введите описание изображения здесь

манеш
источник
1

В DBTools для Sybase это sp_columns your_table_name.

Куан В.О.
источник
1

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

USE db_name;
exec sp_help 'dbo.table_name'

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

DESCRIBE table_name;
Harry_pb
источник