Basic Data Insertion & Querying
Discover how to insert new records, retrieve data, and filter results using the Supabase client library and SQL editor.
Basic Data Insertion & Querying is a free Supabase Backend as a Service lesson on CoddyKit — lesson 3 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Supabase Backend as a Service learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Data Ops: Insert & Query
Welcome! In this lesson, we'll master the basics of interacting with your Supabase database. We'll focus on two crucial operations:
- Inserting Data: Adding new records.
- Querying Data: Retrieving existing information.
These skills are essential for building any dynamic application.
Supabase Client: Your Gateway
To interact with your database, you'll use the Supabase client library. Think of it as your application's direct line to Supabase!
For all our examples, we'll assume your supabase client is already initialized and ready. We'll focus on the specific database operations.
Add Data: The `insert()` Method
To add a new row (record) to your table, you'll use the insert() method. You pass it an object where keys match your table's column names.
Supabase handles assigning a unique ID and other default values automatically.
Example: Insert a Single User
Let's insert a new user into a users table. We'll set their name and email. Try running this!
import { createClient } from '@supabase/supabase-js';
// Placeholder client for demonstration
const supabase = createClient('https://your-project.supabase.co', 'your-anon-key');
async function main() {
console.log("Attempting to insert a single user...");
const { data, error } = await supabase
.from('users')
.insert({
name: 'Alice Smith',
email: 'alice@example.com'
});
if (error) {
console.error('Error inserting user:', error.message);
} else {
console.log('User inserted successfully:', data);
}
}
main();Insert Many: Add Multiple Rows
What if you need to add several records at once? No problem! The insert() method also accepts an array of objects.
Each object in the array represents a new row to be added to your table.
Example: Insert Multiple Users
Here's how to insert two new users in a single operation. Notice we pass an array of objects to insert().
Run this to see it in action!
import { createClient } from '@supabase/supabase-js';
// Placeholder client for demonstration
const supabase = createClient('https://your-project.supabase.co', 'your-anon-key');
async function main() {
console.log("Attempting to insert multiple users...");
const { data, error } = await supabase
.from('users')
.insert([
{ name: 'Bob Johnson', email: 'bob@example.com' },
{ name: 'Charlie Brown', email: 'charlie@example.com' }
]);
if (error) {
console.error('Error inserting users:', error.message);
} else {
console.log('Users inserted successfully:', data);
}
}
main();Get Data: The `select()` Method
To fetch data from your table, you use the select() method. The simplest way to get all columns from all rows is to pass '*' (an asterisk).
This is your go-to for showing lists of data.
Example: Select All Users
Let's retrieve all the users we've inserted into our users table. The data variable will contain an array of user objects.
Run this code to see all users!
import { createClient } from '@supabase/supabase-js';
// Placeholder client for demonstration
const supabase = createClient('https://your-project.supabase.co', 'your-anon-key');
async function main() {
console.log("Attempting to select all users...");
const { data, error } = await supabase
.from('users')
.select('*');
if (error) {
console.error('Error selecting users:', error.message);
} else {
console.log('All users:', data);
}
}
main();Filter Data: `eq()` for Precision
Often, you don't need all data. You want specific records. The eq() method allows you to filter results where a column's value equals a specific value.
It's perfect for finding a user by their ID or email.
Example: Filter Users by Email
Let's find a user with a specific email address. We'll use eq('email', 'alice@example.com') to narrow down our search.
Run this and see if Alice is found!
import { createClient } from '@supabase/supabase-js';
// Placeholder client for demonstration
const supabase = createClient('https://your-project.supabase.co', 'your-anon-key');
async function main() {
console.log("Attempting to find user by email...");
const { data, error } = await supabase
.from('users')
.select('*')
.eq('email', 'alice@example.com');
if (error) {
console.error('Error finding user:', error.message);
} else {
console.log('User found:', data);
}
}
main();Quick Check: Insert & Query
Imagine you have a products table. You want to add a new product named "Keyboard" with a price of 75, and then immediately retrieve all products that have a price of 75.
Which sequence of Supabase client calls is correct?
Recap: Insert & Query Mastery
Great job! You've learned the fundamental operations for managing data in Supabase:
.insert(): For adding one or many new records to a table..select('*'): For retrieving all columns from all rows..eq(): For filtering your queries to find specific records.
These methods form the backbone of interacting with your Supabase database. Next, we'll explore more advanced querying techniques!
Frequently asked questions
Is the “Basic Data Insertion & Querying” lesson free?
Yes — the full text of “Basic Data Insertion & Querying” is free to read here on the web, and the Supabase Backend as a Service course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Supabase Backend as a Service course, upgrade to CoddyKit PRO.
What will I learn in “Basic Data Insertion & Querying”?
Discover how to insert new records, retrieve data, and filter results using the Supabase client library and SQL editor. You practise Supabase Backend as a Service with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Supabase Backend as a Service?
No prior experience is required. Supabase Backend as a Service on CoddyKit is structured for beginners through advanced learners; this is — lesson 3 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Basic Data Insertion & Querying” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Supabase Backend as a Service lesson?
Yes. Every Supabase Backend as a Service lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Designing Database Schemas
- Creating Tables and Columns
- Basic Data Insertion & Querying
- Relationships and Foreign Keys