Explain the basic CRUD operations (CREATE, UPDATE, DELETE) and how you'd use SQL to perform them.
Explain the WHERE clause on a SELECT statement, what it does and how it works.
Explain GROUP BY. What does it do, and when do you have to use it?
What is a view? Why would you want to use one?
What is a trigger? Why are triggers good and bad?
What's an index? Advanced: What are the different types of indexes?
What's a foreign key? What does the ON CASCADE clause do when creating a foreign key?
Explain what a transaction is, when you'd want to use one, and when you probably wouldn't want to use one.
Explain the MySQL architecture (e.g. the three layers… networking/connection layer, query parsing, and the storage engine)
Explain the differences between InnoDB and MyISAM. When would you want to use each?
Talk to me about the process you'd use for optimizing an SQL query.
What's the difference between CHAR, VARCHAR, TEXT and BLOB datatypes?
Is there anything special about NULL values in MySQL (or SQL in general?) How do you test for a NULL value?
What's the difference between a TIMESTAMP field and a DATETIME field? Advanced question: can you describe the different handling of timezones between TIMESTAMP and DATETIME?
Explain locking principles in MySQL. Table level locks, page-level locks, and row-level locks. Which storage engines can do which? Explain what
shared vs. exclusive locks are.
Why does DELETE FROM `mytable` run very quickly, whereas DELETE FROM `mytable` WHERE 1=1 run very slowly, if 'mytable' has a large number of records? (e.g. the former just deletes and recreates the table on disk, whereas the latter will delete each row one-by-one.)