SQL stands for Structured Query Language and was originally developed by IBM in the 70s to interact with relational databases. It is the common language for databases, remains fairly readable and it is relatively simple to learn the basics (although the language can be very powerful).
‘SQL’ is usually pronounced ‘S-Q-L’ (Structured Query Language).
SQL was initially developed at IBM by Donald D. Chamberlin and Raymond F. Boyce in the early 1970s. This version was called SEQUEL (Structured English Query Language).
There are various dialects of SQL but the most widely used database engines today adhere to the SQL99 standard from ANSI, and many vendors have implemented extra features to extend that standard (the Microsoft ‘flavor’ of SQL is called T-SQL or Transact-SQL, the Oracle version is PL/SQL).
Getting the Data Out!
This is what it usually is all about. For this we use the SELECT statement; it will query or retrieve data from an SQL database.
A simple example would be something like:
‘select * from tblMyCDList’ which would get all columns (that’s where the * comes in) and rows in the table ‘tblMyCDList’.
Queries are usually much more complicated than this.
The select can be used to tease out particular columns and rows out of a table and even link data from multiple tables or, for that matter, databases together.
If we want to filter the rows returned by the select statement, a where clause is needed to qualify the record sets returned.
‘select * from tblMyCDList where CDid = 27’ will retrieve the rows where the field CDid is equal to 27. Or ‘select * from tblAttribute where strCDName like ‘Dark Side%’ ‘ uses a wild card representing zero or more instances of any character and will hopefully show that my collection does have my favorite Pink Floyd album.
INSERT and UPDATE statements are used to add and change data in an SQL database (check the links below for some excellent tutorials that can take you further).
The DELETE statement is used to remove data from an SQL database.
- It is very easy to attach to SQL databases from within Microsoft Access (it’s query tool can be used in SQL mode although the syntax has differences from that used with SQL Server and other databases).
- Under Linux, the most popular databases are likely MySQL and PostgreSQL. If the console seems not convenient, use ExecuteQuery or some other similar open source tool.
- Microsoft Query is a tool that comes with Windows – it has graphical or SQL query modes.
- A relational database usually means ‘a system whose users view data as a collection of tables related to each other through common data values’ that is usually implemented as a ‘relational database management system’ (RDBMS) like MySQL, Sybase, SQL Server or Oracle. Strict relational database systems follow E.F. ‘Ted’ Codd’s ‘Twelve Principles of Relational Databases’. It can be argued (and often is) that Access is also a relational database, Microsoft certainly says it is, but the way the engine is built actually makes it an ‘Indexed Sequential Access Method (ISAM)’ database or a flat file database. The differences are not easy to spot on the surface because they aren’t there, Access even has its own implementation of SQL, but rather they are down in the database engine’s guts (see http://www.ssw.com.au/SSW/Database/DatabaseDocsLinks.aspx for a good description of this). All other things equal, certain complicated queries in Access will run much slower than in SQL Server. Certain simple queries will run slower in SQL Server.
- The meaning of ‘database’ can often be confused; it can be used to talk about the actual container for a set of tables, like a CD collection database or the Master database. The actual server software that includes the database is the ‘database engine’ or the ‘database software’ that can contain databases. Examples are SQL Server 2005 Express, MySQL or Access 2003.