There are some things being said here that are potentially misleading.
SQLite is a mechanism for persisting your data, i.e. storing it so that it's not lost when the app finishes executing. It is not a replacement for tables or variables, rather it's a way of storing your table/variable data so it's not lost.
For speed, you'll load the the data from SQLite into, for example, Lua tables to manipulate whilst your app is running. Then you'll store the changed data back in SQLite when you need to.
As for the question of OOP/classes, here's some code that I would use with OOP principles to load/save data. The use of "database" is a reference to my own database.lua file.
Lordmooch is quite right, but I think the OP was talking about having all his information start in a Lua table, as opposed to some offline storage like a flat file, JSON, or SQL.
Clearly while you're working with the records you need them in tables.
As for learning SQL Lite, there should be a billion tutorials and information just by googling SQL Lite.
There are pretty much four statements you need to master, and they are in plain language which makes it easy to learn (if you natural language is English!)
Those four statements are:
SELECT
INSERT INTO
UPDATE and
DELETE FROM
You will also need some table creation and removal statements:
CREATE TABLE
DROP TABLE
SQL statements are not case sensitive, but common coding practice is to show the SQL bits in all upper case, while variables, strings and other values are in the case they are created as (that part is case sensitive)
To init a database you would do a
CREATE TABLE tablename [list of fields in each row] (I don't know the SQL Lite syntax for CREATE TABLE off the top of my head)
INSERT INTO tablename (var1, var2, var3) VALUES (value_for_var1, value_for_var2, value_for var3)
do a bunch of inserts to populate the table.
Then later to get data from the database, you will use the SELECT statement:
SELECT var1, var2, var3 FROM tablename
or SELECT * FROM tablename
to get everything.
You can modify the return set with various clauses on the select statement, like:
SELECT var1, var2 FROM tablename WHERE var3 < 10 ORDER BY var2
would fetch only var1 and var2 from all records of tablename where ver3 is less than 10, but they would be sorted by var2's values.
Updating records is pretty simple:
UPDATE table SET var1 = value WHERE (some condition to keep it from updating everything)