Bird
Raised Fist0
Android Kotlinmobile~5 mins

Room queries (Insert, Update, Delete, Select) in Android Kotlin - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the @Insert annotation in Room?
The @Insert annotation tells Room to generate code that inserts an entity into the database. It simplifies adding new rows without writing SQL manually.
Click to reveal answer
beginner
How do you update an existing record in Room?
Use the @Update annotation on a DAO method. Pass the entity with updated fields, and Room will update the matching row based on the primary key.
Click to reveal answer
beginner
What does the @Delete annotation do in Room?
The @Delete annotation marks a method to remove a specific entity from the database. Room deletes the row matching the entity's primary key.
Click to reveal answer
beginner
How do you write a query to select all rows from a table in Room?
Use the @Query annotation with SQL like "SELECT * FROM tableName". The method returns a list of entities representing all rows.
Click to reveal answer
intermediate
Why is it better to use Room annotations instead of raw SQL for insert, update, and delete?
Room annotations reduce errors by generating code automatically. They ensure type safety, simplify code, and integrate well with Kotlin and LiveData.
Click to reveal answer
Which annotation is used to add a new entity to the Room database?
A@Delete
B@Update
C@Insert
D@Query
What does the @Update annotation require to identify which row to update?
AColumn name
BRow number
CTable name
DPrimary key in the entity
How do you delete a record using Room?
AUse @Delete with the entity to remove
BUse @Insert with null values
CUse @Update with empty fields
DUse @Query with SELECT statement
Which SQL statement is used inside @Query to get all rows from a table named 'users'?
ASELECT * FROM users
BDELETE FROM users
CUPDATE users SET
DINSERT INTO users
What type of value does a @Query method that selects multiple rows usually return?
ASingle entity
BList of entities
CBoolean
DInteger
Explain how to insert, update, delete, and select data using Room annotations in Kotlin.
Think about the annotations and their roles in managing database rows.
You got /4 concepts.
    Describe why Room's annotations help avoid errors compared to writing raw SQL for database operations.
    Consider how Room makes database work easier and safer.
    You got /4 concepts.

      Practice

      (1/5)
      1. Which Room annotation is used to add a new record to the database?
      easy
      A. @Query
      B. @Insert
      C. @Delete
      D. @Update

      Solution

      1. Step 1: Understand Room annotations for data changes

        @Insert is used to add new data, @Update modifies existing data, and @Delete removes data.
      2. Step 2: Identify the annotation for adding records

        Since adding means inserting new data, @Insert is the correct annotation.
      3. Final Answer:

        @Insert -> Option B
      4. Quick Check:

        Add new record = @Insert [OK]
      Hint: Insert means add new data, so use @Insert [OK]
      Common Mistakes:
      • Confusing @Update with adding new data
      • Using @Delete instead of @Insert
      • Thinking @Query inserts data
      2. Which of the following is the correct syntax to delete a user by ID using @Query in Room?
      easy
      A. @Query("DELETE users WHERE id = :userId")
      B. @Query("REMOVE FROM users WHERE id = :userId")
      C. @Query("DELETE FROM users WHERE id = :userId")
      D. @Query("DELETE * FROM users WHERE id = :userId")

      Solution

      1. Step 1: Recall SQL DELETE syntax

        The correct SQL command to delete rows is DELETE FROM table WHERE condition.
      2. Step 2: Match correct syntax in options

        @Query("DELETE FROM users WHERE id = :userId") matches the correct SQL syntax with parameter binding (:userId).
      3. Final Answer:

        @Query("DELETE FROM users WHERE id = :userId") -> Option C
      4. Quick Check:

        DELETE FROM table WHERE condition = correct syntax [OK]
      Hint: Use 'DELETE FROM' not 'REMOVE' or 'DELETE *' [OK]
      Common Mistakes:
      • Using REMOVE instead of DELETE
      • Omitting FROM keyword
      • Adding * after DELETE
      3. Given the DAO method below, what will be the return type when calling getAllUsers()?
      @Query("SELECT * FROM users")
      fun getAllUsers(): List<User>
      medium
      A. An integer count of users
      B. A single User object
      C. A Boolean indicating success
      D. A list of User objects

      Solution

      1. Step 1: Analyze the method signature

        The method returns List<User>, which means a list of User objects.
      2. Step 2: Understand the SQL query

        SELECT * FROM users returns all rows, so the method returns multiple User objects in a list.
      3. Final Answer:

        A list of User objects -> Option D
      4. Quick Check:

        Return type List<User> means multiple users [OK]
      Hint: Return type List<User> means multiple users returned [OK]
      Common Mistakes:
      • Thinking it returns a single User
      • Confusing return type with count
      • Expecting a Boolean result
      4. Identify the error in this Room DAO update method:
      @Update
      fun updateUser(user: User): Int {
        return 1
      }
      medium
      A. The method should not have a body; it must be abstract
      B. The method should return Unit, not Int
      C. The method must not have a return statement
      D. The @Update annotation is missing parameters

      Solution

      1. Step 1: Understand Room DAO method requirements

        DAO methods with @Update must be abstract or interface methods without a body.
      2. Step 2: Identify the error in the method

        This method has a body with a return statement, which is not allowed for Room DAO annotated methods.
      3. Final Answer:

        The method should not have a body; it must be abstract -> Option A
      4. Quick Check:

        Room DAO methods are abstract, no method body [OK]
      Hint: Room DAO methods must be abstract, no method body [OK]
      Common Mistakes:
      • Adding method body in DAO interface
      • Returning wrong types intentionally
      • Missing @Update annotation
      5. You want to update a user's email by their ID using Room. Which DAO method below correctly performs this update?
      hard
      A. @Query("UPDATE users SET email = :email WHERE id = :userId") fun updateEmail(userId: Int, email: String)
      B. @Update fun updateEmail(userId: Int, email: String)
      C. @Insert(onConflict = OnConflictStrategy.REPLACE) fun updateEmail(userId: Int, email: String)
      D. @Delete fun updateEmail(userId: Int, email: String)

      Solution

      1. Step 1: Understand update options in Room

        @Update requires a full entity object, so partial updates need @Query with SQL.
      2. Step 2: Check which method updates email by ID

        @Query("UPDATE users SET email = :email WHERE id = :userId") fun updateEmail(userId: Int, email: String) uses @Query with SQL UPDATE statement and parameters for userId and email, which is correct.
      3. Final Answer:

        @Query("UPDATE users SET email = :email WHERE id = :userId") fun updateEmail(userId: Int, email: String) -> Option A
      4. Quick Check:

        Partial update needs @Query with SQL UPDATE [OK]
      Hint: Use @Query with UPDATE for partial field changes [OK]
      Common Mistakes:
      • Using @Update without full entity
      • Using @Insert to update data
      • Using @Delete for updates
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard