Problème :
Chaque fois que vous êtes confronté à une description lisible par l'homme d'un requête, les développeurs s'appuient généralement sur l'heuristique et le brainstorming pour la traduire en requête SQL. Cependant, existe-t-il une approche systématique et mathématique de ce processus de traduction ?
Réponse :
Oui, il existe une approche systématique pour construire des requêtes SQL à partir de descriptions lisibles par l'homme. . Cela implique de comprendre la correspondance entre les expressions en langage naturel, les expressions logiques, les expressions d'algèbre relationnelle et les expressions SQL.
Considérez ce qui suit, lisible par l'homme description :
Trouver toutes les personnes qui sont appréciées par quelqu'un mais qui n'aiment pas Ed.
Prédicat de la table des Likes :
[personne] aime [j'ai aimé]
Algèbre relationnelle Expression :
POUR CERTAINS x, J'aime(personne, x) ET J'aime(x, aimé) ET personne = 'Bob' ET NON J'aime(x, 'Ed')
Requête SQL :
SELECT DISTINCT l1.liker AS person, l2.liked AS liked FROM Likes l1 INNER JOIN Likes l2 ON l1.liked = l2.liker WHERE l1.liker = 'Bob' AND NOT (l1.liked, 'Ed') IN (SELECT * FROM Likes)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!