返回表的字段名称的SQL命令是什么?

时间:2008-09-19 08:33:25

标签: sql mysql sql-server database

假设我有一个名为myTable的表。返回此表的所有字段名称的SQL命令是什么?如果答案是特定于数据库的,那么我现在需要SQL Server,但也有兴趣看到其他数据库系统的解决方案。

12 个答案:

答案 0 :(得分:59)

MySQL 3和4(和5):

desc tablename

的别名
show fields from tablename

SQL Server(自2000年起)和MySQL 5:

select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS 
where TABLE_NAME = 'tablename'

完成答案:如下面的人所说,在SQL Server中你也可以使用存储过程sp_help

exec sp_help 'tablename'

答案 1 :(得分:12)

SQL-92标准定义了符合MS SQL Server支持的rdbms符合的INFORMATION_SCHEMA。以下适用于MS SQL Server 2000/2005/2008和MySql 5及更高版本

select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'myTable'

MS SQl Server特定:

exec sp_help 'myTable'

此解决方案返回多个结果集,其中包含您想要的信息,前者可以为您提供所需的信息。

同样只是为了完整性,您可以直接查询sys表。建议不要这样做,因为架构可以在SQL Server版本之间更改,而INFORMATION_SCHEMA是这些表之上的抽象层。但是这里无论如何都是SQL Server 2000

select [name] from dbo.syscolumns where id = object_id(N'[dbo].[myTable]')

答案 2 :(得分:4)

您可以使用提供的系统视图执行此操作:

例如

select * from INFORMATION_SCHEMA.COLUMNS
where table_name = '[table name]'

或者,您可以使用系统proc sp_help

例如

sp_help '[table name]'

答案 3 :(得分:4)

对于那些在Oracle中寻找答案的人:

SELECT column_name FROM user_tab_columns WHERE table_name = 'TABLENAME'

答案 4 :(得分:4)

PostgreSQL理解

select column_name from information_schema.columns where table_name = 'myTable'

语法。如果你在psql shell中工作,你也可以使用

\d myTable

用于描述(列,及其数据类型和约束)

答案 5 :(得分:3)

为了完整起见,因为已经提到过MySQL和Postgres:使用SQLite,使用“pragma table_info()

sqlite> pragma table_info('table_name');
cid         name        type        notnull     dflt_value  pk        
----------  ----------  ----------  ----------  ----------  ----------
0           id          integer     99                      1         
1           name                    0                       0         

答案 6 :(得分:2)

这也是MySQL特定的:

show fields from [tablename];

这不仅仅显示表名,但它也会提取有关字段的所有信息。

答案 7 :(得分:2)

在Sybase SQL Anywhere中,列和表信息是分开存储的,因此您需要一个连接:

select c.column_name from systabcol c 
       key join systab t on t.table_id=c.table_id 
       where t.table_name='tablename'

答案 8 :(得分:1)

如果您只想要列名,那么

select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'tablename'

在MS SQL Server上,有关表格的更多信息,例如列的类型,请使用

sp_help 'tablename'

答案 9 :(得分:1)

MySQL是一样的:

select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'tablename'

答案 10 :(得分:1)

对于IBM DB2(将在周一仔细检查以确定。)

SELECT TABNAME,COLNAME from SYSCAT.COLUMNS where TABNAME='MYTABLE'

答案 11 :(得分:0)

的MySQL

describe tablename