Bird
Raised Fist0
DBMS Theoryknowledge~6 mins

Selection operation in DBMS Theory - Full Explanation

Choose your learning style10 modes available
Introduction
Imagine you have a huge list of data, like a phone book, and you want to find only the entries that match a certain condition. The selection operation helps you pick out just those specific rows from a larger table, making it easier to focus on the information you need.
Explanation
Purpose of Selection
The selection operation is used to filter rows in a database table based on a condition. It scans through each row and keeps only those that satisfy the given criteria. This helps in retrieving relevant data without changing the original table.
Selection extracts rows that meet specific conditions from a table.
Condition or Predicate
The condition, also called a predicate, is a rule that each row is tested against. It can involve comparisons like equal to, greater than, or less than, and can combine multiple conditions using AND, OR, or NOT. Only rows where the condition is true are included in the result.
The predicate defines which rows are selected based on true or false tests.
Result of Selection
The output of a selection operation is a new table containing only the rows that passed the condition. The columns remain the same as the original table, but the number of rows is usually smaller. This result can be used for further processing or analysis.
Selection produces a smaller table with rows that satisfy the condition.
Difference from Projection
Selection focuses on filtering rows, while projection focuses on choosing columns. Selection keeps all columns but fewer rows; projection keeps all rows but fewer columns. Both are basic operations to shape data in a database.
Selection filters rows; projection filters columns.
Real World Analogy

Imagine sorting through a box of mail to find only letters addressed to your street. You look at each envelope and keep only those that match your street name, ignoring the rest. This way, you quickly get the mail relevant to you without changing the letters themselves.

Purpose of Selection → Picking only letters addressed to your street from a big box of mail
Condition or Predicate → Checking if the address on each envelope matches your street name
Result of Selection → A smaller pile of letters all addressed to your street
Difference from Projection → Selection is like choosing letters by address; projection would be like choosing only the sender's name on each letter
Diagram
Diagram
┌───────────────┐
│ Original Table│
│ (many rows)   │
└──────┬────────┘
       │ Apply condition (predicate)
       ↓
┌───────────────┐
│ Selected Rows │
│ (fewer rows)  │
└───────────────┘
This diagram shows how the selection operation filters rows from the original table based on a condition.
Key Facts
Selection operation → An operation that filters rows from a table based on a specified condition.
Predicate → A condition or rule used to test each row during selection.
Result table → A new table containing only the rows that satisfy the selection condition.
Difference from projection → Selection filters rows; projection filters columns.
Code Example
DBMS Theory
import sqlite3

conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE employees (id INTEGER, name TEXT, age INTEGER, dept TEXT)')
cur.execute("INSERT INTO employees VALUES (1, 'Alice', 30, 'Sales')")
cur.execute("INSERT INTO employees VALUES (2, 'Bob', 25, 'HR')")
cur.execute("INSERT INTO employees VALUES (3, 'Charlie', 35, 'Sales')")

# Selection: find employees in Sales department
cur.execute("SELECT * FROM employees WHERE dept = 'Sales'")
rows = cur.fetchall()
for row in rows:
    print(row)
OutputSuccess
Common Confusions
Selection changes the columns of the table.
Selection changes the columns of the table. Selection only filters rows; it does not remove or change columns.
Selection and projection are the same operation.
Selection and projection are the same operation. Selection filters rows based on conditions, while projection chooses specific columns.
Summary
Selection operation filters rows from a table based on a condition without changing columns.
The condition, called a predicate, decides which rows to keep by testing each one.
Selection results in a smaller table containing only rows that meet the criteria.

Practice

(1/5)
1. What is the main purpose of the SELECT operation with a WHERE clause in a database?
easy
A. To delete all rows from a table
B. To add new rows to a table
C. To change the structure of a table
D. To filter rows that meet a specific condition

Solution

  1. Step 1: Understand the SELECT operation

    The SELECT operation retrieves data from a table.
  2. Step 2: Role of WHERE clause

    The WHERE clause filters rows based on a condition, returning only matching rows.
  3. Final Answer:

    To filter rows that meet a specific condition -> Option D
  4. Quick Check:

    Selection with WHERE filters rows [OK]
Hint: WHERE clause filters rows based on condition [OK]
Common Mistakes:
  • Confusing SELECT with INSERT or DELETE
  • Thinking WHERE changes table structure
  • Assuming SELECT without WHERE deletes data
2. Which of the following is the correct syntax to select all columns from a table named Employees where the Age is greater than 30?
easy
A. SELECT * Employees WHERE Age > 30;
B. SELECT ALL FROM Employees WHERE Age > 30;
C. SELECT * FROM Employees WHERE Age > 30;
D. SELECT * FROM Employees AGE > 30;

Solution

  1. Step 1: Check SELECT syntax

    The correct syntax to select all columns is SELECT * FROM table_name.
  2. Step 2: Verify WHERE clause usage

    The WHERE clause must follow FROM and include a condition like Age > 30.
  3. Final Answer:

    SELECT * FROM Employees WHERE Age > 30; -> Option C
  4. Quick Check:

    Correct SELECT with WHERE syntax [OK]
Hint: Use SELECT * FROM table WHERE condition; [OK]
Common Mistakes:
  • Omitting FROM keyword
  • Using ALL instead of *
  • Placing condition outside WHERE
3. Consider the table Students with columns ID, Name, and Score. What will be the result of the query?
SELECT Name FROM Students WHERE Score >= 75;
medium
A. Names of students with scores 75 or more
B. Names of students with scores less than 75
C. All columns of students with scores 75 or more
D. Error due to missing columns

Solution

  1. Step 1: Analyze SELECT clause

    The query selects only the Name column from Students.
  2. Step 2: Analyze WHERE condition

    WHERE Score >= 75 filters students with scores 75 or higher.
  3. Final Answer:

    Names of students with scores 75 or more -> Option A
  4. Quick Check:

    WHERE filters Score >= 75, SELECT Name only [OK]
Hint: WHERE filters rows; SELECT chooses columns [OK]
Common Mistakes:
  • Thinking it selects all columns
  • Confusing >= with >
  • Assuming it returns scores too
4. Identify the error in the following SQL query:
SELECT * FROM Orders WHERE OrderDate = '2023-13-01';
medium
A. Table name Orders is incorrect
B. Invalid date format in WHERE clause
C. SELECT * is not allowed
D. Missing semicolon at end

Solution

  1. Step 1: Check date format in WHERE clause

    The date '2023-13-01' has month 13, which is invalid.
  2. Step 2: Verify other syntax parts

    SELECT * FROM Orders; and semicolon are correct; table name assumed valid.
  3. Final Answer:

    Invalid date format in WHERE clause -> Option B
  4. Quick Check:

    Date month must be 1-12 [OK]
Hint: Check date values carefully in WHERE clause [OK]
Common Mistakes:
  • Ignoring invalid month number
  • Thinking missing semicolon causes error
  • Assuming SELECT * is wrong
5. You have a table Products with columns ProductID, Name, and Price. How would you write a query to select only products priced between 50 and 100 inclusive?
hard
A. SELECT * FROM Products WHERE Price >= 50 AND Price <= 100;
B. SELECT * FROM Products WHERE Price > 50 AND Price < 100;
C. SELECT * FROM Products WHERE Price >= 50 OR Price <= 100;
D. SELECT * FROM Products WHERE Price = 50 OR Price = 100;

Solution

  1. Step 1: Understand inclusive range selection

    Inclusive means including 50 and 100, so use >= and <= operators.
  2. Step 2: Construct the WHERE clause

    Use Price >= 50 AND Price <= 100 to filter the range correctly.
  3. Step 3: Compare options

    The query with > 50 AND < 100 excludes boundaries; the one with = 50 OR = 100 selects only extremes; the one with >= 50 OR <= 100 selects all rows.
  4. Final Answer:

    SELECT * FROM Products WHERE Price >= 50 AND Price <= 100; -> Option A
  5. Quick Check:

    Inclusive range uses >= and <= [OK]
Hint: Use >= and <= for inclusive range [OK]
Common Mistakes:
  • Using > and < excludes boundary values
  • Using OR instead of AND for range
  • Using OR with inequalities selects all rows
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