对于各种常见的数据库系统,如何列出表中的所有列?
对于各种常见的数据库系统,如何列出表中的所有列?
对于MySQL,请使用:
DESCRIBE name_of_table;
只要你使用 SQL*Plus 或者 Oracle 的 SQL Developer,这个方法同样适用于 Oracle。
DESCRIBE
name_of_table``; - beahacker对于 MS SQL Server:
select COLUMN_NAME from information_schema.columns where table_name = 'tableName'
select COLUMN_NAME from information_schema.columns where table_name = 'tableName' and table_schema = 'databaseName'
。该语句可用于检索指定数据表在指定数据库中的所有列名。 - But those new buttons though..对于Oracle (PL/SQL)
SELECT column_name
FROM user_tab_cols
WHERE table_name = 'myTableName'
对于MySQL
SHOW COLUMNS FROM table_name
DESCRIBE name_of_table
也是有效的。 - Pigueirasuser_tab_cols
是什么意思? - JogiSYS_NC00064$
这样的列。当您在表上创建索引时,数据库会自动向表中添加系统生成的列以支持索引和搜索。这些列以 SYS_NC 开头,后跟一个数字值。您可以通过在查询中添加 AND column_name not like 'SYS%'
来过滤掉这些列。 - Jacob van Lingen五年后,为了荣誉PostgreSQL——王国最先进的数据库
在PostgreSQL中:
\d table_name
或者,使用 SQL:
select column_name, data_type, character_maximum_length
from INFORMATION_SCHEMA.COLUMNS
where table_name = 'table_name';
我知道现在已经很晚了,但是我使用这个命令来操作Oracle:
select column_name,data_type,data_length from all_tab_columns where TABLE_NAME = 'xxxx' AND OWNER ='xxxxxxxxxx'
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标准的数据库。[
和 ]
的,因此查询语句不能使用它们,只能使用纯表名。如果这不是 OP 的意图,请至少注意这一点。 - JonBrave在 MS SQL Server 中调用以下代码:
sp_columns [tablename]
dbo.MyTable
时按下ALT+F1相当于运行EXEC sp_help 'dbo.MyTable'
根据此网站。针对 SQL Server
sp_help tablename
在SQL Server中,其他人的一点纠正(架构前缀变得更加重要!):
SELECT name
FROM sys.columns
WHERE [object_id] = OBJECT_ID(N'dbo.tablename');