对于各种流行的数据库系统,如何列出表中的所有列?
答案 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
只是我的代码