Bird
Raised Fist0
DynamoDBquery~30 mins

Why CRUD operations are foundational in DynamoDB - See It in Action

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Why CRUD Operations Are Foundational in DynamoDB
📖 Scenario: You are building a simple contact list app that stores people's names and phone numbers using DynamoDB. You want to learn how to add, read, update, and delete contacts in your database.
🎯 Goal: Build a basic DynamoDB table and practice the four main CRUD operations: Create, Read, Update, and Delete contacts.
📋 What You'll Learn
Create a DynamoDB table named Contacts with ContactID as the primary key.
Add a new contact with a specific ContactID, Name, and PhoneNumber.
Read a contact's details by ContactID.
Update the PhoneNumber of an existing contact.
Delete a contact by ContactID.
💡 Why This Matters
🌍 Real World
Managing contacts, products, or any data records in apps requires CRUD operations to keep data accurate and up to date.
💼 Career
Understanding CRUD in DynamoDB is essential for backend developers, database administrators, and cloud engineers working with AWS services.
Progress0 / 4 steps
1
Create the DynamoDB table and add a contact
Create a DynamoDB table named Contacts with ContactID as the primary key. Then add a contact with ContactID set to "1", Name set to "Alice", and PhoneNumber set to "123-456-7890".
DynamoDB
Hint

Use boto3.resource('dynamodb') to connect. Create the table with ContactID as the HASH key. Use put_item to add the contact.

2
Set up a variable to hold the contact ID to read
Create a variable called contact_id and set it to the string "1". This will be used to read the contact details.
DynamoDB
Hint

Just create a variable named contact_id and assign it the string '1'.

3
Read the contact details using the contact ID
Use the get_item method on contacts_table to get the contact with ContactID equal to the variable contact_id. Store the result in a variable called response.
DynamoDB
Hint

Use contacts_table.get_item(Key={'ContactID': contact_id}) and assign it to response.

4
Update the contact's phone number and then delete the contact
Use the update_item method on contacts_table to change the PhoneNumber of the contact with ContactID equal to contact_id to "987-654-3210". Then use the delete_item method to remove the contact with ContactID equal to contact_id.
DynamoDB
Hint

Use update_item with UpdateExpression to change the phone number. Then use delete_item with the key to remove the contact.

Practice

(1/5)
1. What does the CRUD acronym stand for in database operations?
easy
A. Calculate, Remove, Upload, Download
B. Create, Read, Update, Delete
C. Copy, Run, Undo, Drop
D. Connect, Retrieve, Use, Delete

Solution

  1. Step 1: Understand each letter in CRUD

    CRUD stands for the four basic operations to manage data: Create, Read, Update, and Delete.
  2. Step 2: Match the correct full form

    Among the options, only Create, Read, Update, Delete correctly lists these four operations.
  3. Final Answer:

    Create, Read, Update, Delete -> Option B
  4. Quick Check:

    CRUD = Create, Read, Update, Delete [OK]
Hint: Remember CRUD as the four main data actions [OK]
Common Mistakes:
  • Confusing CRUD with unrelated terms
  • Mixing up the order of operations
  • Thinking CRUD includes 'Copy' or 'Calculate'
2. Which of the following is the correct syntax to add a new item in DynamoDB using the AWS SDK?
easy
A. dynamodb.putItem({ TableName: 'Users', Item: { 'UserId': { S: '123' } } })
B. dynamodb.getItem({ TableName: 'Users', Key: { 'UserId': { S: '123' } } })
C. dynamodb.deleteItem({ TableName: 'Users', Key: { 'UserId': { S: '123' } } })
D. dynamodb.updateItem({ TableName: 'Users', Key: { 'UserId': { S: '123' } } })

Solution

  1. Step 1: Identify the operation to add a new item

    Adding a new item uses the putItem method in DynamoDB.
  2. Step 2: Match the correct syntax

    dynamodb.putItem({ TableName: 'Users', Item: { 'UserId': { S: '123' } } }) uses putItem with the correct parameters to add an item.
  3. Final Answer:

    dynamodb.putItem({ TableName: 'Users', Item: { 'UserId': { S: '123' } } }) -> Option A
  4. Quick Check:

    Adding item = putItem [OK]
Hint: Use putItem to create new data in DynamoDB [OK]
Common Mistakes:
  • Using getItem or deleteItem to add data
  • Confusing Key with Item in parameters
  • Missing TableName or Item fields
3. Given the following DynamoDB operation, what will be the result?
const params = { TableName: 'Books', Key: { 'ISBN': { S: '978-1234567890' } } };
const data = await dynamodb.getItem(params).promise();
console.log(data.Item);
medium
A. It will cause a syntax error
B. It will delete the item with ISBN '978-1234567890'
C. It will update the item with ISBN '978-1234567890'
D. It will print the item with ISBN '978-1234567890' if it exists

Solution

  1. Step 1: Understand the getItem operation

    The getItem method retrieves an item by its key from the table.
  2. Step 2: Analyze the code output

    The code logs data.Item, which will be the item with the given ISBN if it exists, or undefined if not.
  3. Final Answer:

    It will print the item with ISBN '978-1234567890' if it exists -> Option D
  4. Quick Check:

    getItem returns item data [OK]
Hint: getItem fetches data; console.log prints it [OK]
Common Mistakes:
  • Thinking getItem deletes or updates data
  • Assuming syntax error due to async/await
  • Confusing Key with Item in parameters
4. You wrote this DynamoDB update code but it throws an error:
const params = {
  TableName: 'Users',
  Key: { 'UserId': { S: 'abc123' } },
  UpdateExpression: 'set Age = :age',
  ExpressionAttributeValues: { ':age': 30 }
};
await dynamodb.updateItem(params).promise();

What is the likely cause of the error?
medium
A. ExpressionAttributeValues must use DynamoDB types like { ':age': { N: '30' } }
B. UpdateExpression should be 'update Age = :age'
C. Key should be inside Item property
D. TableName is missing

Solution

  1. Step 1: Check ExpressionAttributeValues format

    DynamoDB expects attribute values to be typed, e.g., numbers as { N: '30' }.
  2. Step 2: Identify the error cause

    The code uses a plain number 30 instead of the typed format, causing a validation error.
  3. Final Answer:

    ExpressionAttributeValues must use DynamoDB types like { ':age': { N: '30' } } -> Option A
  4. Quick Check:

    Use typed values in ExpressionAttributeValues [OK]
Hint: Always wrap values with DynamoDB types in updates [OK]
Common Mistakes:
  • Using raw JS values instead of typed DynamoDB values
  • Wrong UpdateExpression syntax
  • Misplacing Key inside Item
5. You want to delete a user from a DynamoDB table only if their account is inactive. Which approach correctly combines CRUD operations to achieve this safely?
hard
A. Use putItem to overwrite the user with an empty item
B. Use updateItem to set AccountStatus to 'deleted' without conditions
C. Use deleteItem with a ConditionExpression checking if AccountStatus = 'inactive'
D. Use getItem to read then deleteItem without conditions

Solution

  1. Step 1: Understand safe deletion with conditions

    To delete only if a condition is met, use deleteItem with a ConditionExpression.
  2. Step 2: Evaluate options for correctness

    Use deleteItem with a ConditionExpression checking if AccountStatus = 'inactive' uses deleteItem with a condition to delete only inactive accounts, which is safe and efficient.
  3. Final Answer:

    Use deleteItem with a ConditionExpression checking if AccountStatus = 'inactive' -> Option C
  4. Quick Check:

    Conditional delete = deleteItem + ConditionExpression [OK]
Hint: Use ConditionExpression to safely delete items [OK]
Common Mistakes:
  • Deleting without checking account status
  • Using updateItem to delete data
  • Overwriting with putItem instead of deleting