Some vaguely structured thoughts on the differences that you see between SQL as implemented by one DBMS and that of another.
MySQL is a high-performing relational database management system (RDBMS) but it does have a considerable number of foilbles.
Consider these two as examples:
1) Installation of MySQL (up to and including the latest version 5.0.18) on Windows XP generally works fine, but if you choose to place your database files on a different disk (e.g. install the executables to C:\Program Files\..., but put the database files on D:\data) then it just doesn't work. The installation gets to the final step and bombs out with the following error message
"The security settings could not be applied. Error Number 2003. Can't connect to MySQL server on 'localhost' (10061)"
The answer is to first install with the default folders and then move the files around and reconfigure the database settings afterwards.
2) Some SQL constructs are supported by MySQL syntactically, but their effects are not actually implemented in the product. For example:CREATE TABLE egg (col1 INT);ALTER TABLE egg ADD CHECK (col1 > 10);INSERT INTO egg VALUES (-1);
Believe it or not all three of the above statements work fine. The CHECK constraint is supported by MySQL in the syntax of the SQL, but not implemented in the actual execution engine of the database.