Le SQL est un langage de base de données. Bien que des clients Web existent (PHPMyAdmin, Adminer, ...), le client en ligne de commande n'a jamais évoluer. Découvrons mycli, un client SQL en Python qui améliore grandement l'écriture de requêtes !

Présentation

Utiliser le client SQL en ligne de commande est pénible. Aucune autocomplétion des commandes du langages, pas la possibilité d'écrire une requête multi-lignes facilement, affichage des temps d'exécution, ...

Heureusement pour nous, Amjithr, a développé mycli. Ecrit en Python, c'est un client MySQL en ligne de commandes qui ajoute beaucoup de fonctionnalités par rapport au client de base.

Parmi ces fonctionnalités :

  • autocomplétion des fonctions SQL et des tables/vues/colonnes/alias
  • autocomplétion intelligente, en fonction du contexte :
    • SELECT * FROM <tabulation> va faire apparaître la liste des tables
    • SELECT * FROM users WHERE <tabulation> va faire apparaître la liste des colonnes
  • coloration syntaxique
  • support de l'historique avec la flèche du haut
  • support des requêtes multi-lignes
  • affichage des temps d'exécution de la requête et du rendu
  • possibilité de mettre une requête en favori
  • possibilité de stocker les requêtes dans un fichier
  • ...

Vous l'avez vu, ça donne envie !

De plus, mycli fonctionne autant sur Windows que sur Linux, bien qu'il ne soit officiellement testé que sur Linux ;)

Installation

L'installation de mycli est simple étant donné que c'est un paquet Python :

pip install mycli

ou

easy_install mycli

Utilisation

Ensuite, ouvrez un terminal et connectez-vous à votre serveur MySQL :

mycli -h {serveur} -u {utilisateur} {base de données}

Donc concrètement :

mycli -h localhost -u root blog

Voici un exemple basique qui vous montre l'autocomplétion :

Les alias sont pris en compte !

Un exemple avec le mode multi-lignes (appuyez sur F3 pour l'activer) :

Concernant les requêtes favorites, elles vous permettent de sauvegarder des requêtes que vous utilisez souvent.

  • Pour enregistrer une nouvelle requête favorite, il faut précéder la requête par \fs marequete SELECT * ....
  • Pour exécuter cette requête : \f marequete
  • Pour lister toutes les requêtes favorites : \f
  • Pour supprimer une requête favorite : \fd marequete

Pour info, les requêtes favorites sont présentes dans le fichier de config .myclirc, (voir chapitre Configuration ci-dessous). Ainsi, vous pouvez les modifier à tout moment !

Voici un exemple concret :

Configuration

mycli utilise un fichier de configuration .myclirc situé dans votre home. Toutes les directives de ce fichier sont expliquées sur la documentation.

Notons cependant que l'on peut activer par défaut le mode multi-lignes (multi_line = True), changer le style de tableau en retour (table_format), ou encore le style de la coloration syntaxique via syntax_style. D'ailleurs, à ce sujet, cliquez ici pour découvrir les différents thèmes.

Conclusion

Pour devoir écrire et exécuter des requêtes MySQL pratiquement quotidiennement pour mon boulot, je trouve mycli excellent dans son domaine. Les fonctionnalités proposées sont excellentes, le client MySQL est pour le coup bien amélioré !