SQL risale ai primi anni '70. Ha all'incirca la stessa età di UNIX. Il nome di file in stile UNIX che combina i caratteri jolly non è diventato onnipresente fino a molto più tardi.
*
era già un carattere riservato in SQL, come in SELECT * FROM Customer
. Avere anche un carattere jolly sarebbe stato probabilmente confuso.
E la standardizzazione - dei caratteri jolly o di qualsiasi altra cosa - tiene sempre in considerazione la "prior art", ovvero i fornitori di database che stavano già facendo tra la fine degli anni '80 e l'inizio degli anni '90. Se nessuno utilizzava *
e ?
come caratteri jolly che corrispondono a modelli, non c'è modo che quei caratteri possano entrare nello standard (i distributori sono, dopotutto, rappresentati nel comitato degli standard).
Vorrei anche notare che le espressioni di corrispondenza del modello ( LIKE
) non sono esattamente analoghe al globbing del file system. La funzionalità di espressione regolare trovata in sed
, awk
e molte altre utilità UNIX IMO rappresentano un analogo molto migliore.
Quindi una domanda migliore potrebbe essere, perché SQL non ha adottato espressioni regolari per la corrispondenza dei pattern?