SQL è stato progettato per essere simile all'inglese, il che significa che le espressioni dovrebbero più o meno leggere come frasi inglesi. Nel documento iniziale puoi vedere le frasi di esempio del caso d'uso che traducono in SQL:
Q1. Find the names of employees in the toy department.
Q2: Find the names and salaries of employees who are in the toy
department and whose manager is Anderson.
Q3: Find the items sold by departments on the second floor.
Q4: Find
the
average
salary
of employees
in the
shoe
department.
etc.
Noterai che queste frasi seguono naturalmente questo modello:
Find <property> of <entity> <satisfying some condition>
Che porta alla sintassi SQL:
SELECT <columns> FROM <table> WHERE <predicate>
Quindi l'ordine delle clausole segue naturalmente il desiderio di avere la lingua come inglese.
La questione controversa è se fosse una buona idea cercare un linguaggio simile all'inglese. Nella mia esperienza lo rende molto più accessibile ai non programmatori, ma lo rende piuttosto goffo per i programmatori. (Si noti che Linq ha invertito le due prime clausole per supportare meglio il completamento automatico.Niente di fatto il completamento automatico non esisteva al momento della progettazione di SQL.Il Linq supporta anche la composizione in modo molto più elegante.Infine Linq non è progettato per l'uso da parte dei non programmatori.)