What took me years to learn to read in MySQL's EXPLAIN: why an index in possible_keys doesn't mean it gets used, what the Extra column warns you about and why a three-column index doesn't serve just any WHERE. With a table of 200,000 orders and the real plans.
The ways I filled tables to test an application, from the most naive to the one I use today: INSERTs by hand, the table that copies itself, a series generated with SQL and a procedure that reads the columns. With the code for each database engine and the version where it starts to work.