Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2146 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Lister les colonnes d'une table

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Lister les colonnes d'une table

n°1224852
soupochou
Posté le 17-10-2005 à 18:52:41  profilanswer
 

Salut,
 
Quelle est la commande SQL qui permet de voir la liste des colonnes dans une table ? (désolé, je débute).
 
Merci.

mood
Publicité
Posté le 17-10-2005 à 18:52:41  profilanswer
 

n°1224856
flo850
moi je
Posté le 17-10-2005 à 18:54:34  profilanswer
 
n°1224870
Beegee
Posté le 17-10-2005 à 19:13:16  profilanswer
 

Ca c'est avec mySql.
 
En gros, chaque SGBD a ses propres commandes pour ça.
 
Oracle:
 
SELECT column_name
FROM user_tab_columns
WHERE table_name = '<ta table>';

n°1224941
moi23372
Posté le 17-10-2005 à 21:36:09  profilanswer
 

Beegee a écrit :

Ca c'est avec mySql.
 
En gros, chaque SGBD a ses propres commandes pour ça.
 
Oracle:
 
SELECT column_name
FROM user_tab_columns
WHERE table_name = '<ta table>';


 
en oracle il y a plus simple
 
DESCRIBE nomtable;

n°1224986
Beegee
Posté le 17-10-2005 à 22:59:42  profilanswer
 

Ouaip, bien sûr, mais le SELECT permet de réutiliser les noms de colonnes si on doit faire un traitement ...

n°1225137
Arjuna
Aircraft Ident.: F-MBSD
Posté le 18-10-2005 à 10:15:39  profilanswer
 

la solution universelle (à condition d'avoir un connecteur ADO)
 
(et si, on trouve des connecteurs ADO aussi sous Unix et Mac, ça a beau être une technologie élaborée par Microsoft, c'est aujourd'hui un standard très répendu sur tous les systèmes)
 
http://forum.hardware.fr/hardwaref [...] 8218-1.htm
 
(ici, un script en VBS, mais ça peut être n'importe quel autre langage)
 
Seuls trucs à modifier : ajouter les types que je n'ai pas traîté dans le script. (je l'avais écrit à l'époque pour dupliquer une base Access dans une base MySQL)

n°1225140
Arjuna
Aircraft Ident.: F-MBSD
Posté le 18-10-2005 à 10:16:59  profilanswer
 

Sinon, un truc simple...
 
Pourquoi ne pas faire "select * form matable"
Et parcourir les fields ? Généralement, les connecteurs proposent un attribut qui permet de retrouver la colonne en cours de lecture...

n°1225158
Arjuna
Aircraft Ident.: F-MBSD
Posté le 18-10-2005 à 10:29:59  profilanswer
 

tiens, je suis en train de voir que le script que j'avais posté n'est pas à jour.
 
manque de bol, j'ai changé de boulot, et j'ai plus accès à l'intranet de mon ancienne boîte, où j'avais stocké la dernière version du script...

n°1225462
soupochou
Posté le 18-10-2005 à 15:27:11  profilanswer
 

Merci merci :)  je vais essayer tout ça (je suis sous Oracle).

n°1225529
Arjuna
Aircraft Ident.: F-MBSD
Posté le 18-10-2005 à 16:30:11  profilanswer
 

sinon, avec Oracle, t'as des tables système (par contre, je sais jamais comment elles s'appellent :D)

mood
Publicité
Posté le 18-10-2005 à 16:30:11  profilanswer
 

n°1225540
Beegee
Posté le 18-10-2005 à 16:36:32  profilanswer
 

J'ai donné le SELECT plus haut ... :p

n°1225558
Arjuna
Aircraft Ident.: F-MBSD
Posté le 18-10-2005 à 17:02:27  profilanswer
 

t'as donné pour MySQL, de mémoire Oracle c'est pas ça le nom de la table ;)

n°1225561
Arjuna
Aircraft Ident.: F-MBSD
Posté le 18-10-2005 à 17:05:49  profilanswer
 

voilà la requête de base pour trouver les objets systèmes. à partir de là, t'as toutes les tables systèmes pour trouver de plus amples infos.
 
select *
from all_objects

n°1225637
Beegee
Posté le 18-10-2005 à 18:24:24  profilanswer
 

Ben oui, sous Oracle tu as :
 
all_objects (qui liste tous les objets, pas que les tables)
all_tables (toutes les tables, même systèmes)
all_tab_columns (toutes les colonnes de toutes les tables)
 
et en remplaçant 'all' par 'user', on voit les objets de l'utilisateur.

n°1225688
Arjuna
Aircraft Ident.: F-MBSD
Posté le 18-10-2005 à 19:28:47  profilanswer
 

ah ok :) dans ton post tu parlais de MySQL, donc j'ai pas cherché plus loin :D

n°1225730
betsamee
Asterisk Zeperyl
Posté le 18-10-2005 à 20:17:07  profilanswer
 

Arjuna a écrit :

Sinon, un truc simple...
 
Pourquoi ne pas faire "select * form matable"
Et parcourir les fields ? Généralement, les connecteurs proposent un attribut qui permet de retrouver la colonne en cours de lecture...


a la limite plutot
select * from matable
where condition_renvoyant_qu_un_resultat
 
parceque selectionner tout la table pour recuperer le nom des champs  :pt1cable:

n°1225738
Beegee
Posté le 18-10-2005 à 20:35:10  profilanswer
 

Même pas besoin que ça renvoie une ligne ...
 
select * form matable
where 1 = 0;
 
:D

n°1225741
betsamee
Asterisk Zeperyl
Posté le 18-10-2005 à 20:40:14  profilanswer
 

Beegee a écrit :

Même pas besoin que ça renvoie une ligne ...
 
select * form matable
where 1 = 0;
 
:D


le pb c'est que je suis pas sur qu'il soit possible de recuperer le nom des champs avec un connecteur si il n'y a pas de resultat

n°1225744
Beegee
Posté le 18-10-2005 à 20:43:11  profilanswer
 

Il me semble qu'on peut, mais je peux me tromper.

n°1225852
Arjuna
Aircraft Ident.: F-MBSD
Posté le 19-10-2005 à 00:54:50  profilanswer
 

moi je préfère

Code :
  1. select *
  2. from table
  3. where null is not null


 
C'est plus joli :D

n°1225853
Arjuna
Aircraft Ident.: F-MBSD
Posté le 19-10-2005 à 00:55:45  profilanswer
 

et oui, on peut normalement lire le nom des champs même si la requête ne renvoie pas de lignes.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Lister les colonnes d'une table

 

Sujets relatifs
faire apparaittre le résultat d'une requête sous 2 colonnes et non uneDeux colonnes pour des news
MySQL et contrainte d'unicité sur plusieurs colonnes[POSTGRES] Défragmenter une table?
update if exists sur une meme tabledupliquer une table sql
[TABLE/CSS] Tableau avec ascenseur ![c] recuperer infos sur la table de routage
definir une clé primaire apres la creation d'une table, en SQL[Oracle/SQL]Lister les colonnes d'une table ?
Plus de sujets relatifs à : Lister les colonnes d'une table


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR