SQL is a database system. SQL is generally run on multiuser computers and has a sophisticated mechanism to allow more than one user access to the same database at the same time. SQL usually has a server program running at all times to help manage database transactions. However, machines that generally only ever have one program running at one time don't need this level of sophistication, such as an iPhone. In these situations, we can use SQLite. It assumes that only one user is accessing any database at any time, so the protections don't need to be in place. The commands to SQLite as the same as the ones to SQL. It's just that the framework is slightly different. In SQL, a database is divided into "tables". A real database system might have hundreds of tables. However, the number of tables we will be using is one. A table is divided in "rows" or "records". Each record is divided into fields. supervillains.db, which I made in advance, contains only one table, and that table has a certain number of records and fields. Tables have key fields and non-key fields. Key fields are fields than can be sorted on and can uniquely identify a record. A table has a "primary key" which the primary way in which the database is ordered. If you search on records using the key field, it's a faster search. However, in real life, most of us don't worry too much about that and search for whatever is convenient. In my own personal student database I have three keys. Primary Key: NMU IN Secondary Key: login id (uniqname). Secondary Key: Last Name + First Name + NMU IN