01. Introduction to this course
02. Introduction to SQLite
03. SQLite is safe
04. Its just a file
05. Running SQLite locally
06. Good uses for SQLite
07. SQLites limitations
08. The documentation
09. SQLites structure
10. SQLites file format
11. Dot commands
12. Pragmas
13. Virtual tables
14. Flexible types
15. Types
16. Strict types
17. Dates
18. Booleans
19. Floating point
20. Rowid tables
21. Auto increments
22. Without rowid
23. Generated columns
24. Locking
25. Rollback mode
26. WAL mode
27. WAL vs Journal benchmarks
28. Busy timeout
29. Transaction modes
30. Vacuum
31. Analyze & Optimize
32. Suggested pragmas
33. Faster inserts
34. Introduction to indexes
35. B+ trees
36. Primary, secondary, and clustered indexes
37. Without rowid tables
38. Benchmarking without rowid tables
39. Imposter tables
40. Primary key data types
41. Where to add indexes
42. Index selectivity
43. Composite indexes
44. Composite ordering
45. Covering indexes
46. Partial indexes
47. Indexes on expressions
48. Automatic indexes
49. Duplicate indexes
50. Indexing joins
51. Explain
52. Index obfuscation
53. Joins
54. Subqueries
55. Unions
56. CTEs
57. Recursive CTEs
58. Window functions
59. Dealing with NULLs
60. Row value syntax
61. Indexed sorting
62. Upserts
63. Returning
64. Aggregates
65. Triggers