如何列出表中的所有列?

时间:2009-10-16 21:10:05

标签: sql mysql sql-server database oracle

对于各种流行的数据库系统,如何列出表中的所有列?

12 个答案:

答案 0 :(得分:224)

对于MySQL,请使用:

DESCRIBE name_of_table;

只要您使用的是SQL * Plus或Oracle的SQL Developer,这也适用于Oracle。

答案 1 :(得分:106)

对于Oracle(PL / SQL)

SELECT column_name
FROM user_tab_cols
WHERE table_name = 'myTableName'

对于MySQL

SHOW COLUMNS FROM table_name

答案 2 :(得分:85)

对于MS SQL Server:

select * from information_schema.columns where table_name = 'tableName'

答案 3 :(得分:32)

我知道现在已经很晚了但是我对Oracle使用了这个命令:

select column_name,data_type,data_length from all_tab_columns where TABLE_NAME = 'xxxx' AND OWNER ='xxxxxxxxxx'

答案 4 :(得分:32)

(5年后,为PostgreSQL的荣誉,王国最先进的DDBB)

在PostgreSQL中:

\d table_name

或者,使用SQL:

select column_name, data_type, character_maximum_length
    from INFORMATION_SCHEMA.COLUMNS 
    where table_name = 'table_name';

答案 5 :(得分:25)

SQL Server

SELECT 
    c.name 
FROM
    sys.objects o
INNER JOIN
    sys.columns c
ON
    c.object_id = o.object_id
AND o.name = 'Table_Name'

SELECT 
    COLUMN_NAME 
FROM 
    INFORMATION_SCHEMA.COLUMNS
WHERE 
    TABLE_NAME  = 'Table_Name'

第二种方式是ANSI标准,因此所有 ANSI兼容数据库上工作。

答案 6 :(得分:13)

MS SQL Server:

sp_columns [tablename]

答案 7 :(得分:10)

Microsoft SQL Server Management Studio 2008 R2:

在查询编辑器中,如果突出显示表名的文本(ex dbo.MyTable)并点击 ALT + F1 ,您将获得列的列表名称,类型,长度等。

突出显示dbo.MyTable

ALT + F1 相当于运行EXEC sp_help 'dbo.MyTable' according to this site

我无法获得有关查询INFORMATION_SCHEMA.COLUMNS的变化,所以我改用它。

答案 8 :(得分:4)

对于SQL Server

sp_help tablename

答案 9 :(得分:3)

SQL Server

列出数据库的所有用户定义表:

use [databasename]
select name from sysobjects where type = 'u'

列出表格的所有列:

use [databasename]
select name from syscolumns where id=object_id('tablename')

答案 10 :(得分:3)

对SQL Server中的其他人稍作修改(架构前缀变得越来越重要!):

SELECT name
  FROM sys.columns 
  WHERE [object_id] = OBJECT_ID('dbo.tablename');

答案 11 :(得分:3)

示例:

select Table_name as [Table] , column_name as [Column] , Table_catalog as [Database], table_schema as [Schema]  from information_schema.columns
where table_schema = 'dbo'
order by Table_name,COLUMN_NAME

只是我的代码