2010-07-29 93 views
51

哪个查询将为SQL表中的列定义赋予表结构?描述表结构

+2

应指定数据库供应商为命令不同。 – 2010-07-29 12:08:50

+2

[可以使用哪种SQL命令查看SQL Server上表的结构?](http://stackoverflow.com/questions/3159236/which-sql-command-can-i-use-to-请参阅-sql-server上的表结构) – 2014-03-20 10:17:57

+2

由于在那里指定了数据库,因此它不是重复的。 – schmijos 2015-02-27 16:15:16

回答

41

sp_help表名在SQL Server - sp_help [ [ @objname = ] 'name' ]

desc表名在Oracle - DESCRIBE { table-Name | view-Name }

+0

链接已关闭 – 2017-06-02 07:02:58

1

这取决于您的数据库供应商。大多数情况下,这是Google应该使用的“信息模式”(适用于MySQL,MSSQL和其他应用程序)。

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

您可以通过此查询得到像列数据类型和大小的详细信息

15

在MySQL中,你可以使用DESCRIBE <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 
23

它取决于您使用的数据库。下面是一个不完整的列表:

  • 的sqlite3:.schema table_name
  • Postgres的:\d table_name
  • SQL服务器:sp_help table_name(或sp_columns table_name仅列)
  • 甲骨文DB2:desc table_namedescribe table_name
  • MySQL的:describe table_name (或者仅列show columns from table_name
+2

'\ d table_name'只能在'psql' afaict中使用。 – 2016-06-17 15:45:31

4
在控制台

突出显示的表名,并按ALT + F1

+0

OP要求查询不是在未指定的控制台中进行模糊步骤。 – Wranorn 2017-12-14 08:11:58

4

对于Sybase又名SQL Anywhere的以下命令输出表的结构:

DESCRIBE 'TABLE_NAME'; 
4
SELECT * 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE table_name = 'student'