Accueil Astuces et Informations La norme SQL:2023 a déjà été publiée, découvrez-la

La norme SQL:2023 a déjà été publiée, découvrez-la

9
2
SQL:2023

La norme SQL:2023 implémente diverses améliorations et modifications

Il y a quelques jours, l’Organisation internationale de normalisation (ISO) a approuvé et publié la norme internationale SQL:2023 (ISO/CEI 9075), qui est défini comme la neuvième édition de la spécification du langage SQL utilisé pour manipuler les données dans les SGBD relationnels. La dernière mise à jour de la spécification a été publiée en 2016 (SQL:2016).

Pour ceux qui ne connaissent pas SQL (Structured Query Language) sachez qu’il s’agit d’un langage standardisé permettant de gérer des bases de données relationnelles et d’effectuer diverses opérations sur les données qu’elles contiennent. Créé dans les années 1970, SQL est régulièrement utilisé non seulement par les administrateurs de bases de données, mais également par les développeurs écrivant des scripts d’intégration de données et par les analystes de données cherchant à configurer et exécuter des requêtes analytiques. La norme est régulièrement mise à jour pour ajouter de nouvelles fonctionnalités et apporter des modifications au langage existant.

Quoi de neuf dans la nouvelle spécification SQL:2023 ?

Ajout de l’extension SQL/PGQ (Property Graph Queries) pour manipuler des ensembles de données interconnectés qui forment un graphique. Fondamentalement, cette nouvelle fonction facilite l’interrogation des données dans les tables comme si elles se trouvaient dans une base de données de graphes, offrant une alternative, peut-être plus intuitive, à l’écriture de requêtes de jointure complexes. Cette fonctionnalité pourrait être la bienvenue dans la communauté des sciences des données.

Un autre changement qui se démarque est que défini la possibilité de personnaliser le comportement du traitement des valeurs NULL en présence de la contrainte “UNIQUE”. Si “UNIQUE NULLS DISTINCT” est spécifié, les valeurs NULL ajoutées à la base de données seront traitées comme uniques.

En plus de cela, nous pouvons également trouver que Les possibilités d’exécution de l’opération “ORDER BY” ont été élargies dans des tables groupées. La spécification maintenant permet aux opérations de trier les tables regroupées par une colonne qui n’apparaît pas dans la liste de sortie SELECT de la table en cluster. Auparavant, la plupart des SGBD autorisaient de telles manipulations, mais la spécification ne définissait pas une telle possibilité.

On peut aussi trouver que ajout de variantes multi-caractères de la fonction TRIM : LTRIM, RTRIM et BTRIM, qui permettent de couper les caractères spécifiés dans la liste à partir du début ou de la fin de la chaîne. Par rapport à TRIM, les nouvelles fonctions ont une syntaxe plus simple.

IL étendu la capacité de détecter les cycles dans les requêtes récursives en utilisant l’expression “CYCLE«. Un champ avec un marqueur de boucle peut maintenant être de type “booléen” au lieu d’une chaîne, et passer le signe de boucle comme valeurs vraies et fausses.

Parmi les autres changements qui se démarquent:

  • Ajout de nouvelles fonctions LPAD et RPAD pour remplir une chaîne à une taille donnée. Par exemple:
  • Pour les types “VARCHAR” et “CHARACTER VARYING” il est permis de ne pas spécifier la taille maximale, dans ce cas la taille maximale dépendra de l’implémentation du SGBD.
  • Ajout d’une nouvelle fonction d’agrégation any_value(), qui renvoie une valeur arbitraire non nulle à partir de l’ensemble de données d’entrée.
  • Ajout de la possibilité de spécifier des littéraux hexadécimaux, binaires et octaux. Par exemple:
  • L’utilisation du caractère de soulignement dans le nombre est autorisée pour augmenter la visibilité des littéraux numériques.
  • Capacités considérablement étendues liées au traitement des données au format JSON.
  • Ajout d’un type JSON distinct (dans la norme SQL:2016, les données JSON devaient être stockées dans des champs avec des types de chaîne).
  • Prise en charge implémentée des opérations JSON_SERIALIZE, JSON_SCALAR et IS JSON.
  • Ajout de 14 nouvelles méthodes à appliquer aux valeurs SQL/JSON dans le langage SQL/JSON.

Finalement, Si vous souhaitez en savoir plus, Vous pouvez consulter les détails ainsi que des exemples pratiques des changements mis en œuvre dans le lien suivant.

Il est important de mentionner que dans PostgreSQL, la plupart des fonctions proposées dans SQL:2023 sont déjà disponibles o sont prévus pour être inclus dans la prochaine version majeure, tandis que pour la partie prise en charge de ANY_VALUE, les traits de soulignement dans les nombres, les littéraux hexadécimaux/binaires/octaux et les littéraux hexadécimaux dans SQL/JSON apparaîtront dans la version d’automne de PostgreSQL.

Prise en charge améliorée des fonctionnalités attendue pour le type JSON, la syntaxe SQL/JSON simplifiées, de nouvelles méthodes JSON et l’extension PGQ dans les versions postérieures à PostreSQL 16, mais le travail dans ces domaines n’a pas encore commencé. Le reste des fonctions SQL:2023 sont déjà disponibles dans les versions existantes de PostreSQL.