Standard Query Language (SQL)
Standard Query Language (SQL) was introduced to the world by Ted Codd, an IBM researcher, in the 1970’s when he published a paper on Relational Databases. Within the paper he specified the Relational Database must have a common language that is used to create the database, store and manipulate the data within it and manage security.
In the early 1980’s vendors such as Oracle and IBM were developing their own versions of the Relations Databases and as such their own standards in terms of the internal language. The frustrations of developers, deal with multiple vender versions of SQL, was mostly answered in 1986 with the adoption of SQL by the American National Standards Institute (ANSI) closely followed by the International Standards Organisation (ISO) in 1987. Still today not all vendors comply with the ANSI standard choosing their own flavours of commands to suite their internal design.
SQL is different from other programming languages such as Java, C++, Visual Basic and other Third Generation Languages (3GL) which are considered to be procedural or object oriented. SQL is a non-procedural or declarative language, which means instead of you controlling how the program should run, you tell the program what you want and it figures out how that should be achieved.
SQL is split into three sub languages, each dealing with specific parts of the Codd’s original requirements list of the common language, being creation of the database, manipulation of the data and management of security. The three sub languages are.
- Data Definition Language (DDL)
- Data Manipulation Language (DML)
- Data Control Language (DCL
Data Definition Language (DDL) allows for the design (Schema) of the database to be defined. Creating tables, fields and rules for data entry are some of the main functions of the DDL.
Data Manipulation Language (DML) allows for the querying and manipulation of the data in the database. Questions can be posed of the data and results of such queries returned. Select, update, insert and delete are common requests found within the sublanguage.
DCL tends to be something the database administrator would use to handle security of the database and as such is beyond the scope of this course.