Section courante

A propos

Section administrative du site

Fiche technique
Type de produit : Langage de programmation
Auteur : Donald D. Chamberlin, Raymond F. Boyce
Date de publication : 1974

Introduction

Le SQL, abréviation de Structured Query Language («langage de requêtes structuré»), est aujourd'hui le langage de programmation le plus répandu pour interroger, manipuler et administrer les bases de données relationnelles. Depuis plusieurs décennies, il constitue un standard incontournable dans le développement d'applications, la gestion de l'information et l'administration de systèmes informatiques. Sa popularité s'explique par sa simplicité d'utilisation, sa syntaxe relativement uniforme et sa capacité à traiter rapidement de très grandes quantités de données. Il est utilisé aussi bien par les petites entreprises que par les grandes organisations, les administrations publiques et les services en ligne. La majorité des systèmes de gestion de bases de données relationnelles (SGBDR) prennent en charge SQL, notamment Access, DB2, Filemaker, H2, Hypersonic SQL (HSQLDB), Informix, InterBase, MySQL, Oracle DataBase SQL, SQL Server et Sybase. Malgré cette domination, SQL n'est pas le seul langage consacré aux bases de données. D'autres approches existent, comme la famille dBase (Clipper, xBase, FoxPro, Visual dBase, Visual FoxPro), le Cypher Query Language utilisé avec Neo4j pour les bases de données orientées graphes, ainsi que les technologies NoSQL et NewSQL, développées pour répondre à des besoins particuliers de performance, de distribution ou de traitement de données massives.

Historique

Le langage SQL trouve ses origines dans les travaux de recherche menés au début des années 1970 sur les bases de données relationnelles, inspirés des travaux d'Edgar F. Codd. Les premiers langages expérimentaux, notamment SEQUEL, QUEL et QBE (Query By Example), ont servi de fondement à son développement. La première version de SQL fut conçue en 1974 avant d'évoluer rapidement au fil des années grâce aux travaux d'IBM et de plusieurs fabricants de bases de données. En 1986, le langage fut officiellement normalisé par l'ANSI sous le nom de SQL-86, puis amélioré par de nombreuses révisions successives qui ont ajouté de nouvelles fonctionnalités, telles que les procédures stockées, les déclencheurs (triggers), les vues, les transactions, les fonctions analytiques et la gestion des objets. La première implémentation commerciale fut proposée par Relational Software, Inc., société qui deviendra plus tard Oracle Corporation. Aujourd'hui, SQL continue d'évoluer grâce aux nouvelles normes internationales et demeure le langage de référence pour les bases de données relationnelles modernes.

Avantage et inconvénient

Les principaux avantages du langage SQL résident dans sa simplicité, sa puissance et sa grande portabilité entre les différents systèmes de gestion de bases de données. Quelques instructions suffisent souvent pour sélectionner, ajouter, modifier ou supprimer des données de façon efficace. SQL peut être intégré facilement à de nombreux langages de programmation tels que ASP.NET, C#, ColdFusion, Java (JSP), PHP, Python, Perl, Delphi, Visual Basic ou encore C++, ce qui en fait un excellent complément aux applications Web, aux logiciels de bureau et aux services réseau. Grâce à son caractère déclaratif, le programmeur décrit les données recherchées plutôt que la manière de les obtenir, laissant ainsi le moteur de base de données optimiser automatiquement les requêtes. Cette approche facilite le développement, améliore les performances et simplifie la maintenance des applications.

En revanche, SQL présente également certains inconvénients. Une requête mal conçue peut entraîner des conséquences importantes, particulièrement lorsqu'elle modifie ou supprime des données. Par exemple, une instruction UPDATE ou DELETE exécutée sans une clause WHERE suffisamment précise peut affecter l'ensemble des enregistrements d'une table en quelques secondes. De même, une requête incorrecte peut provoquer des pertes de données difficiles à récupérer si aucune sauvegarde récente n'est disponible. Pour cette raison, il est fortement recommandé d'utiliser la clé primaire ou un identifiant unique lors des opérations de modification, de tester les requêtes sur un environnement de développement avant leur exécution en production et, lorsque cela est possible, d'encadrer les modifications importantes dans des transactions permettant une annulation (ROLLBACK) en cas d'erreur. L'utilisation de bonnes pratiques de développement et de sauvegardes régulières permet ainsi de limiter considérablement les risques liés à la manipulation des données.

Les inconvénients du langage de programmation c'est qu'une mauvaise requête «UPDATE» peut détruire énormément d'informations rapidement ! Si vous changer plein d'informations sans avoir utilisé un «WHERE» précis, vous risquez de changer des données que vous n'auriez pas dû ! Idéalement, on devrait toujours utiliser la clef primaire pour modifier l'information, mais ce n'est pas toujours possible.

Liste des normes

Voici les normes majeurs du langage de programmation SQL :

Normes Année
SQL-86 1986
SQL-89 1989
SQL-92 (SQL2) 1992
SQL:1999 (SQL3) 1999
SQL:2003 2003
SQL:2006 2006
SQL:2008 2008
SQL:2011 2011
SQL:2016 2016
SQL:2019 2019
... ...

Remarque

Code source

Voici des exemples de code source d'utilitaires pour manipuler le SQL :

Lien Langage de programmation Description Projet Syntaxe
CSV2SQL.PAS Free Pascal, Turbo Pascal Cette commande permet de convertir un fichier .CSV en format SQL. Corail CSV2SQL
csv2sql.php PHP Cette commande permet de convertir un fichier .CSV en format SQL. Corail-DarkSlateBlue csv2sql
DBF2SQL.PAS Free Pascal, Turbo Pascal Cette commande permet de convertir un fichier .DBF (dBASE III) en format SQL. Corail DBF2SQL
SQL2CSV.PAS Free Pascal, Turbo Pascal Cette commande permet de convertir un fichier .SQL en format CSV. Corail SQL2CSV
SQL2DBF.PAS Free Pascal, Turbo Pascal Cette commande permet de convertir un fichier SQL en DBF. Corail SQL2DBF
SQL2HTML.PAS Free Pascal, Turbo Pascal Cette commande permet de convertir un fichier SQL en HTML. Corail SQL2HTML
SQL2JSON.PAS Free Pascal, Turbo Pascal Cette commande permet de convertir un fichier SQL en JSON. Corail SQL2JSON
SQL2XML.PAS Free Pascal, Turbo Pascal Cette commande permet de convertir un fichier SQL en XML. Corail SQL2XML


Dernière mise à jour : Mardi, le 9 juillet 2019