To answer your questions here:
> what is r?
It's a module where all the RethinkDB operations are defined. The tutorial is running the same JavaScript driver code as you'd run if you connected to C++ RethinkDB server from node.js, which is why you have to start with `r`.
> What does db() do?
It refers to a database named 'test'. This is where you're creating the table
> Is there a test database somewhere?
Yes. It's set up by default at the beginning.
> Why do I have to call run() when there's a button saying "Run this query" do you sometimes not run() things?
Because you can type multiple queries in the text box. Every time you end a query with `.run()`, that's when it goes to the server and gets executed there. We've been talking about not having people type `.run` for a single query, but it's a bit difficult to solve.
> What happened to r.db('test') that I needed to use? Is r now that database?
If you omit r.db() at the beginning of the query, it picks a default one (which is 'test'). It's the same as you'd do in MySQL.
> Why didn't I just do r.tableCreate('tv_shows') before?
We thought allowing tableCreate in a default database allows people to make mistakes too easily, so we disallowed it. It confuses people, so we'll add it back. Sorry for confusion.