SQL's roots stretch as far back as the early 1970s when IBM needed a language to manipulate their internal databases. In those first days, it was known as SEQUEL, Structured English Query Language, but this acronym was later shortened by dropping the 'English' to SQL. From this relational algebra- and tuple relational calculus-based language, SQL was picked up by various groups and went through many revisions until it resembled the most popular relational database management language we know today.
SQL was one of the first commercial languages to rise to the challenge of implementing the ideas in Edgar F. Codd's relations model of a database, though there was some divergence between that model and the actual possible implementations of SQL. Still, it was described in Codd's influential 1970 paper “A relational Model of Data for Large Shared Data Banks”1. It will be no surprise then that SQL was adopted by the American National Standards Institute in 1986 and by the International Organization for Standards just one year later2. SQL has not rested easy in its place, however; it has been enhanced with extra features in the years since. Some of the extensions added by different SQL vendors may interfere with the standard, however, causing some vendor lock-in and a drop in portability so one must be alert as to which flavor of SQL they are using.
Using its data definition and data manipulation subsets, SQL can deal with a vast range of desired database tasks. Data insertion, querying, updating and deletion, schema creation and modification, and data access control are all vital tasks that SQL handles efficiently and elegantly. Querying is perhaps the most common operation performed from that use and is done via declarative SELECT statements. These simple statements provide powerful functionality, allowing one to retrieve data with specific search parameters (including regular expressions) from one or more tables, or a joined version of one or more tables. Fortunately, SELECT statements in their standard form do no enforce any persistent effects on the database itself, though some non-standard versions can. Despite including some procedural elements, SQL is often counted among the declarative languages.
1. Codd, Edgar F (June 1970). "A Relational Model of Data for Large SHared Data Banks". Communications of the ACM (Association for Computing Machinery) 13 (6): 377–87. doi: 10.1145/362384.362685. Retrieved 2013-07-22.
3. "DB-Engines Ranking". Retrieved 29 July 2013.