Vous passez vos journées à faire du SQL en créant des requêtes de fou furieux, vous êtes juste débutant, vous n’avez jamais touché à une base de données, vous cherchez une requête magique pour résoudre un problème particulier, vous connaissez une base de données X mais vous devez travailler sur une base de données Y pour un projet… Alors il vous faut un livre qui vous aidera, vous inspirera, vous initiera. Ce livre existe, et vous devez l’avoir.


Partager l’article Si vous faites régulièrement du SQL, vous devez avoir ce livre sur les réseaux sociaux


Présentation

Pour la première fois depuis la création de ce blog technique, je vais vous parler d’un livre que vous devez vraiment avoir tellement il est pratique, inspirant, et bien fourni.

Pourtant ce livre date 2005, ce qui peut sembler ancien dans le monde de l’informatique, et il l’est. Mais, bien que de nombreux passages doivent être revus en considérant les versions actuelles des bases de données, celui-ci propose une somme considérable de cas pratiques en s’appuyant sur plusieurs bases de données différentes et non pas une seule !

Ainsi, ce livre couvre SQL Server (version 2005), PostgreSQL (version 8), Oracle (version 10g), MySQL (version 5) et DB2 (version 8). Oui, cet ouvrage prend bien en compte cinq bases de données différentes.

Cet ouvrage est SQL Cookbook d’Anthony Molinaro aux éditions de l’excellent O’Reilly. Ce livre est dans la langue de James Bond, pensez-y.

Scan de la couverture du livre SQL Cookbook d’Anthony Molinaro aux éditions O’Reilly

Vous pouvez consulter la page produit sur O’Reilly pour plus d’information.

Structure

Dans la préface, l’auteur définit deux tables qui serviront pour tous les cas plus ou moins compliqués présentés dans le livre. Ces tables sont EMP pour les employés et DEPT pour les départements d’une hypothétique société. Il y a aussi des tables utilitaires servant juste à faire des pivots.

La table EMP comporte les champs :

  • EMPNO, qui est la clé primaire/le numéro du salarié dans la boîte
  • ENAME, qui est le prénom du salarié
  • JOB, qui est le poste occupé par le salarié
  • MGR, qui pointe vers le champ EMPNO du supérieur de l’employé
  • HIREDATE, qui est la date d’embauche
  • SAL, qui est la salaire
  • COMM, qui est la commission que perçoivent certains salariés (ceux ayant le champ JOB à SALESMAN)
  • et enfin le champ DEPTNO qui est une clé étrangère vers une entrée dans la table DEPT

Rien qu’avec ça, il y a plein de cas à envisager : traitement des dates, classement par date, regroupement seon plein de critères, récursivité hiérarchique, etc.

Ensuite, la table DEPT permet d’accroître le nombre des exemples. Elle se compose ainsi :

  • DEPTNO sans surprise, la clé primaire
  • DNAME le nom du département,
  • LOC la localisation.

Avec des deux tables, le livre répond à tout un ensemble de problèmes en donnant des solutions clairement expliquées, et ce pour chaque base de données. Le tout est réparti dans 14 chapitres accompagnés de deux annexes.

Voici quelques titres de problématiques soulevées dans le livre :

  • Investigating Future Rows
  • Shifting Row Values
  • Finding Records with the Highest and Lowest Values
  • Determining WhichRows Are Reciprocals
  • Reverse Pivoting a Result Set into One Column
  • Calculating Simple Subtotals
  • etc.

Le bouquin est très riche en exemples. Il faut autant le feuilleter sans but précis que le consulter pour trouver une solution à un cas immédiat à traiter.

Limitations

Alors il y a quelques points à prendre en compte :

  • Oui, comme je l’ai dit, il est ancien, il faut garder ça en tête quand on le lit.
  • Ça manque de CTE, de fonctions fenêtrées, mais à l’époque, certaines bases de données étaient limités dans ces fonctionnalités.
  • Ça ne cause pas de script, comme du Transat SQL, du pl/pgSQL, etc. Mais c’est le but de cet ouvrage : se consacrer uniquement au SQL.

Mais ces limitations seront bientôt du passé…

La seconde édition

Heureusement, face aux limitation de la première édition, une seconde édition paraîtra le 30 novembre 2020 !

Pour l’aider dans sa tâche, l’auteur de la première édition fait cette fois équipe avec Robert de Graaf. Le titre change afin de viser plus de monde en « SQL Cookbook: Query Solutions and Techniques for All SQL Users ».

Couverture de la seconde édition de SQL Cookbook qui sortira le 30 novembre 2020

Cette nouvelle édition devraient inclure, dixit O’Reilly :

  • des recettes entièrement révisées en incluant des fonctions fenêtrées dans les différentes implémentations SQL
  • des recettes supplémentaires qui reflètent l’adoption généralisée des Common Table Expressions (CTE) pour des solutions plus claires et lisibles.
  • des nouvelles recettes pour rendre SQL plus utile pour les personnes qui ne sont pas des experts en bases de données, y compris les data scientists
  • des solutions pour travailler avec des nombres et des chaînes.
  • des recettes SQL à jour tout au long du livre pour vous guider à travers les bases

Pour résumer…

Un livre qui ne traite pas de grands concepts pénibles à lire, mais au contraire qui présente des problèmes et donne des solutions sans y passer 10 heures et sans être partisant de telle ou telle base de données. Ce sont ces points forts que j’apprécie dans ce livre. Je pense que je vais acheter la seconde édition… Et vous ?

Première édition

  • Date de publication : Décembre 2005
  • Éditeur : O’Reilly Media, Inc.
  • ISBN: 978-0-596-00976-2

Seconde édition

  • Date de publication : Novembre 2020
  • Éditeur : O’Reilly Media, Inc.
  • ISBN: 978-1-492-07744-2

Photo de Brett Sayles sur Pexels