Introduction
In this article, I'll air my grievances over the soddy database query language known as "SQL" (pronounced: Sequel). I am currently studying SQL for various personal reasons (I like to train my feeble, illness-stricken brain with various computer science tasks).
The Good Stuff
Obviously, SQL is not all bad. There are some good things in there, even though they are not many:
- SQL is an attempt of making a world-wide standard control and query language for database access.
- SQL is capable of the basic operations that you typically need to create and maintain databases.
- SQL is widely used1.
- SQL has a large base of followers.
The Bad Stuff
Now to the interesting part of this article:
- SQL does not define a standard way of determining what databases are present on a server.
- SQL does not define a standard way of determining what tables are present in a database.
- SQL does not define a standard way of determining what indices are associated with a given table.
- SQL does not define a standard way of reporting errors and similarly no standard error codes and/or exceptions.
- SQL does not define an adequate set of standard types; the incompatibilities between implementations are so gross that they amount to "nearly useless".
- SQL attempts to eliminate any and all computations in the client, something that I feel is very wrong indeed. Especially when done so poorly as in SQL. When I say "poorly", I refer to the fact that there's no standard way of performing complex mathematical operations on data sets returned by a SELECT statement.
- SQL reeks of structured methodology: Everything in SQL reeks of bizarre 1970-ish thinking that is outdated in these object-oriented times.
Epilogue
This is only a placeholder article until such a time that I get around to finish it up.
Footnotes