web-dev-qa-db-fra.com

Comment lister toutes les colonnes d'une table?

Comment répertoriez-vous toutes les colonnes d'une table pour les divers systèmes de base de données populaires?

208
MattGrommes

Pour MySQL, utilisez:

DESCRIBE name_of_table;

Cela fonctionne également pour Oracle tant que vous utilisez SQL * Plus, ou le développeur SQL d'Oracle.

235
dave

Pour Oracle (PL/SQL)

SELECT column_name
FROM user_tab_cols
WHERE table_name = 'myTableName'

Pour MySQL

SHOW COLUMNS FROM table_name
109
MattGrommes

Pour MS SQL Server:

select * from information_schema.columns where table_name = 'tableName'
86
Jeff Meatball Yang

(5 ans plus tard, pour l'honneur de PostgreSQL, la DDBB la plus avancée du Royaume)

Dans PostgreSQL:

\d table_name

Ou, en utilisant SQL:

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

Je sais qu'il est tard mais j'utilise cette commande pour Oracle:

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

Serveur 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'

ou

SELECT 
    COLUMN_NAME 
FROM 
    INFORMATION_SCHEMA.COLUMNS
WHERE 
    TABLE_NAME  = 'Table_Name'

La seconde méthode est une norme ANSI et donc devrait fonctionne sur toutes bases de données compatibles ANSI.

25
Russ Cam

MS SQL Server:

sp_columns [nom_table]

13
Bryan

Microsoft SQL Server Management Studio 2008 R2:

Dans un éditeur de requête, si vous mettez en surbrillance le texte du nom de la table (ex dbo.MyTable) et cliquez sur ALT+F1, vous obtiendrez une liste de noms de colonnes, type, longueur, etc.

ALT+F1 alors que vous avez mis en surbrillance dbo.MyTable équivaut à exécuter EXEC sp_help 'dbo.MyTable'selon ce site

Je ne parviens pas à utiliser les variantes d'interrogation de INFORMATION_SCHEMA.COLUMNS, je l'utilise donc à la place.

10
Leslie Sage

Pour SQL Server

sp_help tablename
4
Luv

Juste une légère correction sur les autres de SQL Server (le préfixe de schéma devient plus important!):

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

Exemple:

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

Juste mon code

3
Matthew lowe

SQL Server

Pour lister toutes les tables définies par l'utilisateur d'une base de données:

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

Pour lister toutes les colonnes d'un tableau:

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