πŸŽ‰ 75% of content is free forever β€” Unlock Premium from $10/mo β†’
CW
Search courses…
πŸ’Ό Servicesℹ️ Aboutβœ‰οΈ ContactView Pricing Plansfrom $10

SELECT Statement

SQL FundamentalsDML🟒 Free Lesson

Advertisement

SQL Fundamentals

The SELECT Statement

The foundation of every SQL query β€” retrieve exactly the data you need from your database.

  • Targeted Retrieval β€” select specific columns instead of entire tables
  • Computed Columns β€” calculate values on the fly with expressions
  • Clean Output β€” alias columns for readable, report-ready results

SELECT is how you ask your database questions.

What is SELECT?

DfSELECT Statement

A SQL command that retrieves data from one or more tables. It specifies which columns to return and optionally filters, sorts, and limits the results.

SQL Query Execution Order1. FROM2. WHERE3. GROUP BY4. HAVING5. SELECT6. ORDER BY7. LIMIT/OFFSETFROM β†’ WHERE β†’ GROUP BY β†’ HAVING β†’ SELECT β†’ ORDER BY β†’ LIMIT
SELECT column1, column2
FROM table_name;
ComponentDescriptionRequired
SELECTColumns to retrieveYes
column1, column2Specific columns or * for allYes
FROMTable to queryYes
table_nameSource tableYes

Select All Columns

SELECT * FROM customers;
idfirst_namelast_nameemailcity
1AliceJohnsonalice@email.comNew York
2BobSmithbob@email.comLos Angeles
3CarolWilliamscarol@email.comChicago

Avoid SELECT * in production queries. It returns all columns, increases network traffic, consumes more memory, and breaks if the schema changes.

Select Specific Columns

SELECT first_name, last_name, email
FROM customers;
first_namelast_nameemail
AliceJohnsonalice@email.com
BobSmithbob@email.com
-- SLOW: Returns all columns
SELECT * FROM customers WHERE city = 'New York';

-- FAST: Returns only needed columns
SELECT first_name, last_name, email
FROM customers
WHERE city = 'New York';

Expressions in SELECT

DfComputed Columns

You can create new columns by applying expressions to existing data. These computed columns appear in the result set with the alias you provide.

SELECT
    name,
    price,
    price * 1.08 AS price_with_tax,
    price * stock AS inventory_value,
    ROUND(price * 0.9, 2) AS discounted
FROM products;
namepriceprice_with_taxinventory_valuediscounted
Mouse29.9932.394498.5026.99
Keyboard89.9997.196749.2580.99

Common Functions

-- String functions
SELECT
    UPPER(first_name) AS upper_name,
    LOWER(last_name) AS lower_name,
    LENGTH(email) AS email_length,
    CONCAT(first_name, ' ', last_name) AS full_name
FROM customers;

-- Math functions
SELECT
    price,
    ROUND(price, 0) AS rounded,
    CEIL(price) AS ceiling,
    FLOOR(price) AS floor_price,
    ABS(-price) AS absolute
FROM products;

-- Date functions
SELECT
    hire_date,
    YEAR(hire_date) AS hire_year,
    MONTH(hire_date) AS hire_month,
    DATEDIFF(CURRENT_DATE, hire_date) AS days_employed
FROM employees;

Column Aliases

SELECT
    first_name AS "First Name",
    last_name AS "Last Name",
    salary AS annual_salary,
    salary * 12 AS monthly_salary
FROM employees;
First NameLast Nameannual_salarymonthly_salary
AliceJohnson750006250
BobSmith620005166.67

Use double quotes for aliases with spaces. Without quotes, aliases cannot contain spaces or special characters.

SELECT Without a Table

-- Perform calculations without any table
SELECT 1 + 1 AS result;                    -- 2
SELECT CURRENT_DATE AS today;              -- 2024-01-15
SELECT 'Hello, World!' AS greeting;        -- Hello, World!
SELECT RANDOM();                           -- Random number

SQL Execution Order

DfExecution Order

SQL queries execute in a specific order: FROM β†’ WHERE β†’ GROUP BY β†’ HAVING β†’ SELECT β†’ ORDER BY β†’ LIMIT. Understanding this helps you write correct queries.

StepClauseWhat It Does
1FROMIdentify source tables
2WHEREFilter rows
3GROUP BYGroup rows
4HAVINGFilter groups
5SELECTChoose columns
6ORDER BYSort results
7LIMITRestrict row count
-- What you write:
SELECT first_name, salary
FROM employees
WHERE department = 'Engineering'
ORDER BY salary DESC
LIMIT 5;

-- How it executes:
-- 1. FROM employees        β†’ All employee rows
-- 2. WHERE department='Engineering' β†’ Only engineers
-- 3. SELECT first_name, salary β†’ Just those two columns
-- 4. ORDER BY salary DESC  β†’ Highest salary first
-- 5. LIMIT 5               β†’ Top 5 only

Performance Tips

TipBad ExampleGood ExampleImpact
Use specific columnsSELECT *SELECT name, priceFaster
Add WHERE clauseNo filterWHERE id > 1000Fewer rows
Use LIMITUnlimited resultsLIMIT 100Smaller result

Always select only the columns you need. This reduces memory usage, network transfer, and allows the database to use covering indexes.

Common Mistakes

-- BAD: SELECT * in production
SELECT * FROM customers;

-- GOOD: Specific columns
SELECT id, first_name, last_name, email FROM customers;

-- BAD: Missing WHERE clause
SELECT * FROM customers;

-- GOOD: Filter with WHERE
SELECT * FROM customers WHERE is_active = TRUE;

-- BAD: No LIMIT for large tables
SELECT * FROM logs;

-- GOOD: Limit results
SELECT * FROM logs ORDER BY created_at DESC LIMIT 100;

Practice Exercises

Exercise 1: Write a query to select name and price from products, and calculate a 10% discount as discounted_price.

SELECT
    name,
    price,
    price * 0.9 AS discounted_price
FROM products;

Exercise 2: Select all employees with their annual salary (salary * 12).

SELECT
    first_name,
    last_name,
    salary,
    salary * 12 AS annual_salary
FROM employees;

Exercise 3: Select customers with formatted names and email length.

SELECT
    UPPER(first_name) AS first_name,
    UPPER(last_name) AS last_name,
    CONCAT(first_name, ' ', last_name) AS full_name,
    LENGTH(email) AS email_length
FROM customers;

Key Takeaways

  1. SELECT retrieves data from a database β€” it's the most common SQL command
  2. Use specific column names instead of * in production for better performance
  3. Expressions compute new values β€” calculations, formatting, and transformations
  4. Aliases (AS) make output cleaner β€” rename columns for readability
  5. SQL executes in a specific order β€” FROM β†’ WHERE β†’ SELECT β†’ ORDER BY
⭐

Premium Content

SELECT Statement

Unlock this lesson and 900+ advanced tutorials with a Premium plan.

🎯End-to-end Projects
πŸ’ΌInterview Prep
πŸ“œCertificates
🀝Community Access

Already a member? Log in

Need Expert SQL Help?

Get personalized tutoring, project support, or professional consulting.

Advertisement