A single column index helps the database find data faster by organizing one column's values. It works like an index in a book, so you don't have to look through every page.
Single column index in SQL
CREATE INDEX index_name ON table_name (column_name);
name column in the customers table to speed up searches by customer name.CREATE INDEX idx_customer_name ON customers (name);
email column in the users table to ensure no duplicate emails.CREATE UNIQUE INDEX idx_email_unique ON users (email);
This example creates a table employees and adds a single column index on the department column. Then it inserts some data and queries employees in the 'Sales' department. The index helps the database find these rows faster.
CREATE TABLE employees ( id INT PRIMARY KEY, name VARCHAR(100), department VARCHAR(50) ); CREATE INDEX idx_department ON employees (department); INSERT INTO employees (id, name, department) VALUES (1, 'Alice', 'Sales'), (2, 'Bob', 'HR'), (3, 'Charlie', 'Sales'); SELECT * FROM employees WHERE department = 'Sales';
Indexes speed up read queries but can slow down inserts, updates, and deletes because the index must be updated too.
Use indexes only on columns you query often to avoid unnecessary overhead.
A single column index speeds up queries on one column.
Create it with CREATE INDEX on the column you want.
It helps find data faster but adds some cost when changing data.
Practice
What is the main purpose of creating a single column index in a database?
Solution
Step 1: Understand what an index does
An index helps the database find rows faster when searching or sorting by the indexed column.Step 2: Identify the purpose of a single column index
A single column index speeds up queries that use that column in WHERE or ORDER BY clauses.Final Answer:
To speed up queries that filter or sort by that column -> Option DQuick Check:
Index speeds up queries = B [OK]
- Thinking index stores duplicate values
- Believing index prevents data changes
- Confusing index with backup
Which of the following is the correct syntax to create a single column index on the email column of a table named users?
Solution
Step 1: Recall the syntax for creating an index
The correct syntax is: CREATE INDEX index_name ON table_name(column_name);Step 2: Match the syntax with the options
CREATE INDEX idx_email ON users(email); matches the correct syntax exactly.Final Answer:
CREATE INDEX idx_email ON users(email); -> Option BQuick Check:
CREATE INDEX index_name ON table(column) = A [OK]
- Swapping table and index names
- Missing ON keyword
- Incorrect order of keywords
Given a table products with columns id, name, and category, and a single column index on category, what will the query below most likely do?
SELECT * FROM products WHERE category = 'Books';
Solution
Step 1: Understand how an index affects a WHERE query
An index on the category column helps the database quickly locate rows matching the condition category = 'Books'.Step 2: Analyze the query behavior with the index
The query will use the index to avoid scanning the whole table, speeding up the search.Final Answer:
Use the index to quickly find rows where category is 'Books' -> Option AQuick Check:
Index speeds WHERE search = D [OK]
- Assuming index is ignored in WHERE clause
- Thinking index causes errors in queries
- Confusing index use with sorting
Consider this SQL statement to create an index:
CREATE INDEX idx_price ON products price;
What is wrong with this statement?
Solution
Step 1: Check the syntax for CREATE INDEX
The column name must be inside parentheses after the table name.Step 2: Identify the syntax error
The statement is missing parentheses aroundprice. It should beON products(price).Final Answer:
Missing parentheses around the column name -> Option CQuick Check:
Column name needs parentheses = C [OK]
- Omitting parentheses around column
- Misplacing table and column names
- Thinking index names have restrictions
You have a table orders with columns order_id, customer_id, and order_date. You want to speed up queries that filter by customer_id and sort by order_date. Which approach is best?
Solution
Step 1: Understand query needs
Queries filter bycustomer_idand sort byorder_date, so both columns matter.Step 2: Choose the best index type
A composite index on both columns helps filter and sort efficiently, better than single column indexes.Final Answer:
Create a composite index on customer_id and order_date -> Option AQuick Check:
Composite index for filter + sort = A [OK]
- Using single column index when composite is better
- Avoiding indexes fearing insert slowdown
- Indexing only sort column ignoring filter
Ready to prove it?
Pass the test and this pattern moves unknown
