For the various popular database systems, how do you list all the columns in a table?

1

12 Answers

For MySQL, use:

DESCRIBE name_of_table; 

This also works for Oracle as long as you are using SQL*Plus, or Oracle's SQL Developer.

5

For Oracle (PL/SQL)

SELECT column_name FROM user_tab_cols WHERE table_name = 'myTableName' 

For MySQL

SHOW COLUMNS FROM table_name 
5

For MS SQL Server:

select COLUMN_NAME from information_schema.columns where table_name = 'tableName' 
4

(5 years laters, for the Honor of PostgreSQL, the most advanced DDBB of the Kingdom)

In PostgreSQL:

\d table_name 

Or, using SQL:

select column_name, data_type, character_maximum_length from INFORMATION_SCHEMA.COLUMNS where table_name = 'table_name'; 
1

I know it's late but I use this command for Oracle:

select column_name,data_type,data_length from all_tab_columns where TABLE_NAME = 'xxxx' AND OWNER ='xxxxxxxxxx' 
3

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' 

The second way is an ANSI standard and therefore should work on all ANSI compliant databases.

4

Call below code in MS SQL Server:

sp_columns [tablename] 

Microsoft SQL Server Management Studio 2008 R2:

In a query editor, if you highlight the text of table name (ex dbo.MyTable) and hit ALT+F1, you'll get a list of column names, type, length, etc.

ALT+F1 while you've highlighted dbo.MyTable is the equivalent of running EXEC sp_help 'dbo.MyTable' according to this site

I can't get the variations on querying INFORMATION_SCHEMA.COLUMNS to work, so I use this instead.

2

For SQL Server

sp_help tablename 

SQL Server

To list all the user defined tables of a database:

use [databasename] select name from sysobjects where type = 'u' 

To list all the columns of a table:

use [databasename] select name from syscolumns where id=object_id('tablename') 
1

Just a slight correction on the others in SQL Server (schema prefix is becoming more important!):

SELECT name FROM sys.columns WHERE [object_id] = OBJECT_ID('dbo.tablename'); 

Example:

select Table_name as [Table] , column_name as [Column] , Table_catalog as [Database], table_schema as [Schema] from information_schema.columns where table_schema = 'dbo' order by Table_name,COLUMN_NAME 

Just my code

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy