Aller au contenu

analyseur de requête sql


stone

Sujets conseillés

Bonjour à tous :)

Je cherche un script qui me permet d'analyser une requête sql de type select : Les champs & les tables à sélectionner.

Quelqu'un à déjà trouvé un script pareil ?

merci.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à tous :)

Je cherche un script qui me permet d'analyser une requête sql de type select : Les champs & les tables à sélectionner.

Quelqu'un à déjà trouvé un script pareil ?

merci.

Euh... la requête EXPLAIN par exemple ?

Lien vers le commentaire
Partager sur d’autres sites

je souhaite avoir une solution indépendante du sgbd. :blush:

Les optimisations de requête dépendent de la manière dont le SGBD implémente la norme SQL.

A ma connaissance tout les optimiseurs de requêtes sont liés à un SGBD cible.

Lien vers le commentaire
Partager sur d’autres sites

Les optimisations de requête dépendent de la manière dont le SGBD implémente la norme SQL.

A ma connaissance tout les optimiseurs de requêtes sont liés à un SGBD cible.

C'est pour éviter les instructions propriétaires que je veux passer par un script php qui utiliserait peut-être des expressions régulières !! :blush:

Lien vers le commentaire
Partager sur d’autres sites

C'est pour éviter les instructions propriétaires que je veux passer par un script php qui utiliserait peut-être des expressions régulières !! :blush:

Qu'est-ce que tu cherches à faire exactement ??

Lien vers le commentaire
Partager sur d’autres sites

Tu aurais un SELECT du style :

SELECT field1, field2, field3
FROM foo f LEFT OUTER JOIN bar b on f.id = b.id_foo
WHERE f.id > 45
ORDER BY field1 desc

tu voudrais que ton script te retourne :

- field1, field2, field 3 : pour les champs

- foo, bar : pour les tables

C'est ça ?

Lien vers le commentaire
Partager sur d’autres sites

Si je devais faire un truc de ce style :

1. Je chercherai à savoir s'il existe des parser SQL : Parser SQL. Le premier résultat est un parser en Perl.

Je ne sais pas s'il y en a en Php

2. Une fois que ta requête est parsée et que tu as tes champs et tes table.

Tu veux savoir à quelle table appartient tel champ.

Je ne sais pas s'il existe un langage générique de requêtage d'un serveur SGBD.

Généralement, tu connais la structure des tables systèmes de ton SGBD, et tu fait des requêtes spécifiques sur ces tables.

Tu retombe dans des syntaxes qui seront dépendantes de ton SGBD.

Les tables systèmes de mySQL sont différentes de postGresql qui sont différentes de MSSQL qui sont différentes d'Oracle ....

C'est ce genre de parser que tu cherche. Mais celui-là est en java :

http://www.experlog.com/gibello/zql/

En Php tu as ça, mais il a pas l'air très actif :

http://sourceforge.net/projects/osqlp/

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...