Answers:
对于MySQL,请使用:
DESCRIBE name_of_table;
只要您使用的是SQL * Plus或Oracle的SQL Developer,这对Oracle也适用。
DESCRIBE
name_of_table``;
DESCRIBE
不是Oracle PLSQL指令,而是SQL * Plus命令,因此进行编辑,因此在大多数SQL IDE中均不起作用。
对于Oracle(PL / SQL)
SELECT column_name
FROM user_tab_cols
WHERE table_name = 'myTableName'
对于MySQL
SHOW COLUMNS FROM table_name
DESCRIBE name_of_table
。
user_tab_cols
在你的查询?
对于MS SQL Server:
select * from information_schema.columns where table_name = 'tableName'
select COLUMN_NAME from information_schema.columns where table_name = 'tableName' and table_schema = 'databaseName'
(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';
我知道已经晚了,但是我将以下命令用于Oracle:
select column_name,data_type,data_length from all_tab_columns where TABLE_NAME = 'xxxx' AND OWNER ='xxxxxxxxxx'
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的数据库上工作。
[
]
周围,所以查询必须不使用它们,只有简单的表名。如果那不是OP的意图,至少要意识到这一点。
<Table Name>
可以避免歧义。无论如何,我意识到您在写评论时可能已经打算---以防万一,警告其他人也无害。
Microsoft SQL Server管理Studio 2008 R2:
在查询编辑器中,如果突出显示表名的文本(例如dbo.MyTable)并按ALT+ F1,则将获得列名,类型,长度等的列表。
ALT+ F1当您突出显示时dbo.MyTable
,相当于按照此网站运行EXEC sp_help 'dbo.MyTable'
我无法获得有关查询INFORMATION_SCHEMA.COLUMNS的各种信息,因此我改用它。
SQL服务器
要列出数据库的所有用户定义表:
use [databasename]
select name from sysobjects where type = 'u'
列出表的所有列:
use [databasename]
select name from syscolumns where id=object_id('tablename')