What is SQLite and why is it suitable for embedded use?
SQLite is a lightweight, file-based database engine. It is suitable for embedded use because it requires no separate server, stores data in a single file, and has a small footprint.
Click to reveal answer
beginner
How do you open a SQLite database in Deno?
You use the SQLite module in Deno and call the DB constructor with the database file path. For example: const db = new DB('mydb.sqlite');
Click to reveal answer
intermediate
What is the advantage of using SQLite in embedded applications compared to client-server databases?
SQLite does not require a separate server process, so it is simpler to deploy and faster for local data access in embedded apps.
Click to reveal answer
beginner
How do you execute a simple SQL query to create a table in SQLite using Deno?
Use the db.execute method with a SQL string. Example: db.execute(`CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT);`);
Click to reveal answer
beginner
What should you do to safely close a SQLite database connection in Deno?
Call the db.close() method to release resources and ensure data is saved properly.
Click to reveal answer
Which of the following best describes SQLite?
AA cloud-hosted database service
BA serverless, file-based database engine
CA client-server relational database
DA NoSQL document database
✗ Incorrect
SQLite is a serverless, file-based database engine ideal for embedded use.
In Deno, how do you open a SQLite database file named 'app.db'?
Aconst db = new DB('app.db');
BopenDatabase('app.db');
Cdb.connect('app.db');
Dsqlite.open('app.db');
✗ Incorrect
The SQLite module in Deno uses new DB('filename') to open a database.
What is a key benefit of SQLite for embedded applications?
ARequires complex setup and configuration
BSupports multi-user concurrent writes easily
CRequires no separate database server
DRuns only on cloud servers
✗ Incorrect
SQLite runs without a separate server, making it simple for embedded use.
Which method is used to run SQL commands like creating tables in Deno's SQLite?
Adb.create()
Bdb.query()
Cdb.run()
Ddb.execute()
✗ Incorrect
db.execute() runs SQL commands such as CREATE TABLE in Deno SQLite.
How do you properly close a SQLite database connection in Deno?
Adb.close()
Bdb.disconnect()
Cdb.end()
Ddb.shutdown()
✗ Incorrect
Use db.close() to safely close the database connection in Deno.
Explain why SQLite is a good choice for embedded applications and how you open a database in Deno.
Think about simplicity and file-based storage.
You got /4 concepts.
Describe the steps to create a table and close the SQLite database in a Deno application.
Focus on SQL execution and resource cleanup.
You got /3 concepts.
Practice
(1/5)
1. What is the main advantage of using SQLite in a Deno application?
easy
A. It stores data in a simple file without needing a separate server.
B. It requires a complex setup with multiple servers.
C. It only works with large-scale distributed systems.
D. It cannot be used for local data storage.
Solution
Step 1: Understand SQLite's design
SQLite is designed as a lightweight, file-based database that does not require a separate server.
Step 2: Compare options
Claims of needing servers, complex setups, or only working with distributed systems are incorrect for SQLite, which is simple and local.
Final Answer:
It stores data in a simple file without needing a separate server. -> Option A
Quick Check:
SQLite = file-based, no server needed [OK]
Hint: Remember SQLite is serverless and file-based [OK]
Common Mistakes:
Thinking SQLite needs a server
Confusing SQLite with large distributed databases
Assuming SQLite can't store local data
2. Which of the following is the correct way to import the SQLite module in a Deno script?
easy
A. require('sqlite');
B. import DB from "sqlite";
C. import { DB } from "https://deno.land/x/sqlite/mod.ts";
D. import * as sqlite from 'sqlite3';
Solution
Step 1: Identify Deno import syntax
Deno uses ES module imports with URLs, so the correct import includes the full URL and curly braces for named imports.
Step 2: Check each option
require() is Node.js syntax. Bare specifiers like "sqlite" omit the required URL. 'sqlite3' is a Node.js module. Only the import with URL and named import matches Deno style.
Final Answer:
import { DB } from "https://deno.land/x/sqlite/mod.ts"; -> Option C
Quick Check:
Deno imports use URLs and named imports [OK]
Hint: Deno imports modules via URLs with named imports [OK]
Common Mistakes:
Using Node.js require() syntax
Omitting the full URL in import
Using incorrect module names
3. Given this Deno SQLite code snippet, what will be the output?
import { DB } from "https://deno.land/x/sqlite/mod.ts";
const db = new DB();
db.query("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)");
db.query("INSERT INTO users (name) VALUES (?)", ["Alice"]);
const result = [...db.query("SELECT name FROM users")];
console.log(result);
db.close();
medium
A. ["Alice"]
B. [["Alice"]]
C. [[1, "Alice"]]
D. []
Solution
Step 1: Understand the query results format
db.query returns an iterator of rows, each row is an array of column values. Selecting 'name' returns rows like ["Alice"].
Step 2: Spread into array and log
Using [...db.query(...)] collects rows into an array of arrays, so result is [["Alice"]].
Final Answer:
[["Alice"]] -> Option B
Quick Check:
Query returns array of rows, each row an array [OK]
Hint: Query returns array of rows, each row is an array [OK]
Common Mistakes:
Expecting a flat array instead of nested arrays
Confusing row data with column names
Forgetting to spread iterator into array
4. What is wrong with this Deno SQLite code snippet?
import { DB } from "https://deno.land/x/sqlite/mod.ts";
const db = new DB("mydb.sqlite");
db.query("CREATE TABLE items (id INTEGER PRIMARY KEY, name TEXT)");
db.query("INSERT INTO items (name) VALUES (?)", ["Book"]);
// Missing db.close()
medium
A. The database connection is not closed, which can cause resource leaks.
B. The table creation syntax is incorrect.
C. The INSERT statement is missing a value for id.
D. The DB constructor requires no arguments.
Solution
Step 1: Check resource management
The code opens a database but does not call db.close(), which is needed to release resources properly.
Step 2: Verify SQL statements and constructor
Table creation and insert syntax are correct; id is auto-incremented primary key; DB constructor accepts filename.
Final Answer:
The database connection is not closed, which can cause resource leaks. -> Option A
Quick Check:
Always close DB connections to avoid leaks [OK]
Hint: Always call db.close() after database work [OK]
Common Mistakes:
Assuming id must be provided when auto-incremented
Ignoring the need to close the database
Thinking DB constructor takes no arguments
5. You want to store user preferences in a Deno app using SQLite. Which approach correctly creates a table with a default value and inserts a new user with a custom preference?
import { DB } from "https://deno.land/x/sqlite/mod.ts";
const db = new DB();
// Which code below is correct?
hard
A. db.query("CREATE TABLE prefs (user TEXT PRIMARY KEY, theme TEXT DEFAULT 'light')");
db.query("INSERT INTO prefs (user, theme) VALUES ('Bob')");
B. db.query("CREATE TABLE prefs (user TEXT, theme TEXT)");
db.query("INSERT INTO prefs VALUES ('Bob')");
C. db.query("CREATE TABLE prefs (user TEXT PRIMARY KEY, theme TEXT DEFAULT 'light')");
db.query("INSERT INTO prefs (user) VALUES ('Bob')");
D. db.query("CREATE TABLE prefs (user TEXT PRIMARY KEY, theme TEXT DEFAULT 'light')");
db.query("INSERT INTO prefs (user, theme) VALUES (?, ?)", ["Bob", "dark"]);
Solution
Step 1: Check table creation with default value
The table must define PRIMARY KEY on user and DEFAULT 'light' on theme.
Step 2: Check insert statements
To insert with custom preference, specify both columns using placeholders and provide a custom value like 'dark' to override default. Omitting theme uses default (not custom). Mismatched VALUES without placeholders cause errors.
Final Answer:
db.query("CREATE TABLE prefs (user TEXT PRIMARY KEY, theme TEXT DEFAULT 'light')");
db.query("INSERT INTO prefs (user, theme) VALUES (?, ?)", ["Bob", "dark"]); -> Option D
Quick Check:
Use DEFAULT in table and specify values to override [OK]
Hint: Use DEFAULT in table and specify values to override [OK]
Common Mistakes:
Not using placeholders in INSERT statements
Missing PRIMARY KEY in table
Assuming default values override explicit inserts
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.