SQL dates back to the early 1970s. It's about the same age as UNIX. UNIX-style file name matching wildcards didn't become ubiquitous until much later.
*
was already a reserved character in SQL, as in SELECT * FROM Customer
. Having it also be a wildcard would probably have been confusing.
And standardization -- of wildcard characters or anything else -- always takes "prior art" into account, i.e. what database vendors were already doing in the late 1980s / early 1990s. If no one was using *
and ?
as pattern matching wildcards there's no way those characters would work their way into the standard (the vendors are, after all, represented on the standards committee).
I'd also note that pattern matching (LIKE
) expressions aren't exactly analogous to file system globbing. The regular expression functionality found in sed
, awk
, and many other UNIX utilities IMO represent a much better analogue.
So a better question might be, why didn't SQL adopt regular expressions for pattern matching?
*
and?
from UX perspective, you can open related question at ux.stackexchange.com