对于各种流行的数据库系统,您如何列出表中的所有列?如何列出表格中的所有列?
回答
对于Oracle(PL/SQL)
SELECT column_name
FROM user_tab_cols
WHERE table_name = 'myTableName'
对于MySQL
SHOW COLUMNS FROM table_name
对于MySQL /甲骨文,用途:
DESCRIBE name_of_table;
+1。这将显示表格中的所有列,并显示每个列的详细信息。 – Navigatron 2013-05-30 11:10:00
此解决方案适用于MYSQL而非MSSQL – 2013-07-18 12:14:20
这也适用于Oracle – dmvianna 2013-08-28 03:29:05
MS SQL服务器:
SP_COLUMNS [tablename]
对于MS SQL服务器:
select * from information_schema.columns where table_name = 'tableName'
此处感兴趣的列将是COLUMN_NAME。 – Buggieboy 2013-03-27 19:53:47
这应该适用于许多DBMS。 'information_schema.columns'系统视图是ANSI ANSI标准的一部分([link](http://en.wikipedia.org/wiki/Information_schema))。 – 2013-07-28 20:12:44
很好的答案,但为了避免重复使用,我会使用:'从information_schema.columns中选择COLUMN_NAME,其中table_name ='tableName'和table_schema ='databaseName'' – billynoah 2015-02-25 15:14:17
SQL服务器
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工作兼容数据库。
这些工作都不像书面形式(或者至少是暗示的,因为我读它) MS SQL Server。在这两种情况下,表名称列都在其周围存储名称_without_任何'['']',所以查询不能使用它们,只能使用普通表名。如果这不是OP的意图,至少应该意识到这一点。 – JonBrave 2016-07-20 11:03:08
@JonBrave - 没错,方括号在那里意味着_“在这里插入你的表名”_ :) – 2016-07-20 11:22:16
作为方括号,我把它看作是“将表名插入方括号中(因为可能为保留字) here_“,然后没有匹配:)也许BNF'
你几乎大概要订购由COLUMN_ID – 2009-10-18 12:09:03
的Oracle查询对于Oracle也是'DESCRIBE name_of_table'。 – Pigueiras 2013-10-29 09:42:52
使用; 显示中的列,如'%';将让您只列出以指定前缀开头的列。当然省略尖括号。 –
rstackhouse
2014-04-10 21:10:13