1LENSCTT.CN3EQOI() → sqlite3.connect() — Opens a SQLite database file from Python and returns a connection. Call conn.cursor() on it to get a cursor for running SQL, and conn.close() when finished.
2HLTUCO.RCLAERSF() → cursor.fetchall() — Returns every row from the SELECT that cursor.execute() ran, as a list of tuples. An empty result gives an empty list []. fetchone() returns just one row.
3EUC.INJUCTO(SREE_QLX) → cur.execute(join_sql) — Runs a JOIN query stored in one string. Each row fetched back is a tuple holding fields from both tables, which you can unpack into variables.
4HEIWL OEICCH != "Q": → while choice != "q": — A menu loop repeats: show the menu, read a choice, call that option's function, and stop only when the user picks quit. Other input gets an invalid choice message.
5FI PV_NAIOI(SDTLSI): → if is_valid(points): — Run the validation function first and only execute the INSERT or UPDATE when it returns True, so bad data is rejected before SQL runs and never reaches the database.
6CPXTEE 3LQSEER.IORRT: → except sqlite3.Error: — Catches a failed database call, such as an IntegrityError from a broken constraint, so the program shows a friendly message instead of crashing. Call rollback() to undo.
7SLIIUBAYET ICPSINLERP → useability principles — Six criteria for judging an interface: accessibility, effectiveness, ease of learning, efficiency, error tolerance and engagement. A good interface does well on all of them.
8TLCESE * RFOM UENSSTDT; → SELECT * FROM students; — Run a SELECT before and after an INSERT, UPDATE or DELETE, then compare both results with the expected data and check that no other rows changed.
9ITAYLLEBRII → reliability — A reliable solution gives correct results every time and keeps working when input is bad or an error occurs, so no data is lost.
10SLEOCPEMTSEN → completeness — Data quality where every record has a value in each required field and no needed records are missing. In SQL, a missing value shows as NULL.
11SI LULN → IS NULL — Tests whether a field has no value. Use WHERE field IS NULL, often with COUNT(*), to find and count incomplete records when checking data quality.