I remember in college taking a database class where we, the students, were given the ability to choose our Database Management System. Being my first experience with databases I remember being confused that there were different syntax to the SQL statements depending upon which Database Management System used. Up until this class I was under the impression that the SQL language was a universal language that a user could use to communicate with all databases.
So what’s the deal? Is there a defined SQL standard? If so, why does Database Management System manufactures differ from the specification? Was the standard designed incomplete with the idea that companies would use it as a foundation for their extensions to the language? Was the original SQL standard outdated and manufacturers needed to build more functionality? Is/was the original not updated at a pace to stay current with modern application needs? Was it to create a business model for revenue?
Thanks.
Yes, there are SQL ANSI standards, see e.g. a draft of the SQL-92 one. However, every database vendor implements “an extended subset” of standard SQL — and if you think about it, anything is an “extended subset” of anything else, in a sense;-). No doubt there are commercial reasons behind this, but even non-commercial implementations such as PostgreSQL behave much the same…