Bonsoir,
A propos de ORDER BY...
Si vous vous vous plongez dans le 1er article [Boyce1974], publié en 1974 sur le langage SQL (SEQUEL à l’époque, qui a perdu ses voyelles pour éviter de possibles problèmes de copyright), vous noterez qu’ORDER BY en est absent. C’est normal, fruit des cogitations de deux chercheurs du laboratoire de recherche d’IBM (San Jose), Chamberlin et Boyce(RIP), SEQUEL n’était qu’un prototype visant à montrer qu’en deux lignes et une minute, on en faisait autant qu’avec un programme de 500 lignes et une journée d’effort (au moins ! j’ai donné...) de programmation de l’époque (avec IMS DL/1, IDMS, IDS2 et autres poids lourds). Manipuler des ensembles, par définition non ordonnés, quoi de plus naturel pour des mathématiciens ? ils n’auraient pas été émus outre mesure d’entendre Monsieur Jourdain déclamer :
« Me font vos yeux beaux mourir, belle Marquise, d’amour ! »
Peu leur importait l’ordre des éléments affichés à l’écran ou imprimés. Mais en 1976, dans la version 2 de SEQUEL [Chamberlin1976], ORDER BY entre en scène. Je cite (le soulignement des mots et autres fioritures sont de mon fait) :
The result of a query is returned in
system-determined order unless the user requests an ordering, as shown in Q5.
Q5. List the employee number, name, and salary of employees in Dept. 50, in order of employee number.
SELECT EMPNO,NAME,SAL
FROM EMP
WHERE DNO = 50
ORDER BY EMPNO
Une première !
Visiblement, on sort du cadre de la recherche pure, on commence à s’intéresser aux souhaits des utilisateurs ayant joué les cobayes et dont on a étudié les réactions, en conséquence de quoi des éléments n’ayant rien à voir avec la théorie relationnelle viennent « compléter » le langage, et ça n'est pas fini...
Cela dit, cette requête Q5 a 40 ans, mais en l’état demeure opérationnelle...
_____________________________________
Références
[Boyce1974] R. F. Boyce, D. D. Chamberlin. SEQUEL: A structured English query language.
[Chamberlin1976] D. D. Chamberlin, M.M. Astrahan, et al. SEQUEL 2: A Unified Approach to Data Definition, Manipulation, and Control. IBM Journal of Research and Development, vol. 20, n° 6, novembre 1976.
Partager