Chapter 40 - Databases #

[TODO] Start with comparison to spreadsheet, explaining ‘NoSQL’ Vs ‘SQL’ and that this is Relational vs Non-Relational

[TODO] explain CRUD


Create, Read, Update, Delete


This is Opinionated Guides, so let me be clear, I really, really hate SQL. I don’t like OOP in general, and SQL is sorta like object orientation taken further. Add onto this a mostly shit syntax, like, JOINs are objectively weird to read, write, and understand. I’m not saying SQL doesn’t have its place: It’s reasonably good for ensuring data fits a strict structure and does make sense in cases where using OOP also makes sense. It’s just that OOP itself is over-used, leading to SQL being overused. This is probably in part due to education mostly teaching SQL and it being the only type of database many students ever learn. This might make some sense if it were honestly better, but I suspect that it’s in large part taught for the same reason Java is: Sun Microsystem paid a fuck ton of money to push it- hence the “3 Billion Devices Run Java” Thing. Then, Oracle bought Java from Sun Microsystems and made the first commercially available implementation of SQL. I’m hopeful (albeit probably naively) that Oracle making Java a mess of licensing as the ‘main’ Java Virtual Machine goes paid (Read on Wikipedia) and suing Google will be the nail in the coffin for education using it- and that SQL will be demoted to being taught alongside other options along with that. Regardless of the reasons, though, you should still learn it because everything uses it.

[TODO] SQL, full CRUD, joins, the works

[TODO, like, all of it. Need SQL vs Non-Relational too]

Generating SQL Code with Blocks - Scratch Like Programming for SQL

SQL Servers (MySQL) #

Sanitizing Inputs #

xkcd Drop Tables

[TODO] need image source

Key-Value (Memcached, Redis) #

Graph Databases (Neo4j, GraphQL?) #

Why not use GraphQL?

Document-Oriented Database (Couchbase) #

Other Resources #

List of Some Open Source Database Options

If you would like to support my development of OpGuides, please consider supporting me on GitHub Sponsors or dropping me some spare change on Venmo @vegadeftwing - every little bit helps ❤️