对于各种流行的数据库系统,如何列出表中的所有列?
当前回答
SQL Server
使用实例列出数据库中所有用户定义的表。
use [databasename]
select name from sysobjects where type = 'u'
列出一个表的所有列:
use [databasename]
select name from syscolumns where id=object_id('tablename')
其他回答
对于MySQL,使用:
DESCRIBE name_of_table;
这也适用于Oracle,只要你使用SQL*Plus,或Oracle的SQL Developer。
Oracle (PL/SQL)
SELECT column_name
FROM user_tab_cols
WHERE table_name = 'myTableName'
MySQL
SHOW COLUMNS FROM table_name
对于mssql Server:
select COLUMN_NAME from information_schema.columns where table_name = 'tableName'
SQL Server
使用实例列出数据库中所有用户定义的表。
use [databasename]
select name from sysobjects where type = 'u'
列出一个表的所有列:
use [databasename]
select name from syscolumns where id=object_id('tablename')
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'
or
SELECT
COLUMN_NAME
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'Table_Name'
第二种方法是ANSI标准,因此应该适用于所有符合ANSI标准的数据库。
推荐文章
- 在MySQL中的一个查询中更新多个具有不同值的行
- 如果表存在则删除表并创建它,如果不存在则创建它
- 在SQL中更新多个列
- 如何删除表中特定列的第一个字符?
- MySQL OR与IN性能
- 为什么我应该使用基于文档的数据库而不是关系数据库?
- 哪个更快/最好?SELECT *或SELECT columnn1, colum2, column3等
- 将值从同一表中的一列复制到另一列
- 什么是数据库池?
- GROUP BY with MAX(DATE)
- 删除id与其他表不匹配的sql行
- 等价的限制和偏移SQL Server?
- 关于数据库,每个开发人员应该知道些什么?
- MySQL CPU使用率高
- 如何从SQL Server中的字符串中剥离所有非字母字符?