Small. Fast. Reliable.
Choose any three.
*** 19,24 ****
--- 19,25 ----
  got something more definitive than those articles ?  It seems to me that you can do with sum() 
  everything you can do with CUBE.
  
+ _::: CUBE an ROLLUP provide addition subtotal rows.  Lets say you are doing a query "SELECT x, y, SUM(z) FROM t GROUP BY x, y" lets also say x and y each have two values.  This query will give you the sums for all records with x1 y1, x1 y2, x2 y1, and x2 y2.  Rollup and cube both provide addition subtotals.  Rollup adds 3 new sums: for all x1, for all x2, and the grand total.  You can imagine that the GROUP BY list is being rolled up, so that it goes from being x, y; to being just x; to being empty.  The result of the select for the column that is rolled up becomes NULL.  CUBE will do all combinations of sums in the group by list: sum of all x1, all x2, all y1, all y2, and grand total.  No idea what that has to do with a cube, though I do sort of picture a hyper-cube in my mind for no good reason.  If you ever add ROLLUP and CUBE, I also recommend adding the GROUPING() function so that you can filter out the additional computations you don't want, or do somthing like SELECT CASE WHEN GROUPING(name) THEN 'Total' ELSE name END, hours FROM timesheets GROUP BY name.  I've used the feature plenty doing reports, but then I'm a chronic SQL abuser.
  *: INSERT INTO with multiple rows (ie. INSERT INTO table VALUES (...), (...). etc)
  *: CREATE DATABASE, DROP DATABASE - _Does not seem meaningful for an
     embedded database engine like SQLite.  To create a new database, just