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


当前回答

Microsoft SQL Server Management Studio 2008 R2:

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

ALT+F1,同时高亮dbo。MyTable相当于运行EXEC sp_help 'dbo。MyTable”

我无法获得查询INFORMATION_SCHEMA的变体。列来工作,所以我用这个代替。

其他回答

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

在PostgreSQL:

\d table_name

或者,使用SQL:

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

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'

or

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

第二种方法是ANSI标准,因此应该适用于所有符合ANSI标准的数据库。

在MS SQL Server中调用以下代码:

sp_columns [tablename]

SQL Server

使用实例列出数据库中所有用户定义的表。

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

列出一个表的所有列:

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

Oracle (PL/SQL)

SELECT column_name
FROM user_tab_cols
WHERE table_name = 'myTableName'

MySQL

SHOW COLUMNS FROM table_name