Опишіть структуру таблиці


84

Який запит дасть структуру таблиці з визначеннями стовпців у SQL?


3
Ви повинні вказати постачальника бази даних, оскільки команди відрізняються.


2
Це не дублікат, оскільки там вказана база даних.
schmijos

2
@schmijos: насправді це, мабуть, мається на увазі. "sql" НЕ означає "MS Sql Server", і це дратує, що стільки людей, здається, вважає прийнятним використовувати загальний термін для вказівки конкретного постачальника. "sql" означає мову структурованих запитів, і Microsoft - не єдиний "sql".
Бейн

2
@bane Я насправді думав те саме і намагався відповісти на загальне "SQL" питання. Але ОП видалив мою відповідь. Це було причиною цього. А тим часом питання було відредаговано з MSSQL на SQL. Тож я вже не розумію.
schmijos

Відповіді:



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 запитав запит, а не туманні кроки у невстановленій консолі.
Вранорн

1

Це залежить від постачальника вашої бази даних. Переважно це "інформаційна схема", для якої вам слід Google (стосується MySQL, MSSQL та, можливо, інших).




0

Сервер 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

0

Для SQL Server використовуйте exec sp_help

USE db_name;
exec sp_help 'dbo.table_name'

Для MySQL використовуйте опис

DESCRIBE table_name;
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.