MySQL and Progress Toward The SQL Standard
In the last two years, MySQL AB has tried to adapt its product to conform with the ANSI/ISO SQL standards. We will see what it has done, and how far it has to go. ANSI and ISO have published several versions of the SQL standard. The latest is SQL:2003. We'll start by looking at what's new in it. MySQL version 4.1, and the new MySQL 5.0, have new "standard" features. The most notable are subqueries and stored procedures and views, but there are many small things that we have introduced without fanfare. For example: error codes with sqlstate, collate clauses, schema syntax, and better integrity checking. I'll try to be frank about the things that we don't (yet) do, and our plans.
I've worked with SQL for 20 years, formerly for Ocelot, now for MySQL. I used to code a lot -- I wrote and maintained a DBMS for a long time -- but lately my focus is consulting. I've lectured on SQL topics, and in the last year I presented papers at OSCON (the O'Reilly Open Source Convention) and at the MySQL User Conference.
I co-wrote four books: "Optimizing SQL", "Optimizing C With Assembly Code", "SQL-99 Complete, Really", "SQL Performance Tuning".
Online examples of my writing are:
"Making programs go faster" -- assembly-language -- in Dr. Dobb's
(http://www.ercb.com/ddj/1995/ddj.9501.html)
"The Software Conspiracy" -- a book review -- in ercb
(http://www.ercb.com/brief/brief.0177.html)
"How Logs Work On MySQL With InnoDB Tables" -- information gleaned by reading source code -- in devarticles
(http://www.devarticles.com/c/a/MySQL/How-Logs-Work-On-MySQL-With-InnoDB-Tables/)
"Collations" -- how IBM DB2, Oracle and SQL Server sort -- in dbazine
(http://dbazine.com/gulutzen1.html)
"Transaction Logs" -- how ARIES works -- in dbazine
(http://dbazine.com/gulutzan2.html)
"Standard SQL" -- how IBM DB2, Oracle and SQL Server support the SQL Standard -- and how they don't -- in dbazine
(http://dbazine.com/gulutzan3.html)
"Sequences and Identity Columns" -- a discussion of the support provided for sequences or identity columns by IBM DB2, Oracle and SQL Server -- in dbazine
(http://dbazine.com/gulutzan4.html)
"SQL Naming Conventions" -- a survey of the common naming conventions in IBM DB2, Oracle and SQL Server -- in dbazine
(http://dbazine.com/gulutzan5.html)
"Locks" -- how IBM DB2, Oracle and SQL Server use locks to control concurrent jobs -- in dbazine
(http://dbazine.com/gulutzan6.html)
"SQL Views Transformed" -- how IBM DB2, Oracle and SQL Server handle views-- in dbazine
(http://www.dbazine.com/gulutzan9.shtml)
... and several articles co-written with Trudy Pelzer.
I proudly add that one German article carries my name:
"MySQL 4.1 und Umlautsortierung" in iX, February 2004.
But please don't conclude that I know German well!
I have several computers, one wife, and zero cars, I live in Edmonton.