A Visual Introduction to SQL 2nd Edition

Author: David Chappell
File Type: pdf
Size: 7.0 MB
Language: English
Pages: 304

A Visual Introduction to SQL 2nd Edition: Learn Databases, Queries, and Data Analysis Step by Step

Introduction

SQL, or Structured Query Language, is one of the most important technologies for working with structured data. Whether you are analyzing customer information, managing an e-commerce store, building an engineering application, or developing a financial system, SQL provides a powerful way to communicate with databases. 🗄️💻

The key advantage of SQL is that you do not need to understand every internal detail of a database engine before you can start extracting useful information. Instead, you describe what data you want, and the database system determines how to retrieve it.

Imagine a company storing millions of customer transactions. Searching through every record manually would be practically impossible. With SQL, a simple query can filter thousands or millions of records in seconds:

SELECT customer_name, total_spent
FROM customers
WHERE total_spent > 1000;

This visual introduction focuses on the fundamental concepts behind SQL while connecting theory to practical engineering and data-analysis applications.

A Visual Introduction to SQL 2nd Edition

Image

SQL is especially valuable for engineering students, software developers, data analysts, database administrators, researchers, and professionals who need to transform raw data into useful information. 📊

ImageImage

ImageImage

ImageImage


Background Theory

Before learning SQL commands, it is useful to understand the basic theory behind relational databases.

A relational database organizes information into tables. A table consists of rows and columns.

For example, an engineering company might maintain a table called projects:

project_idproject_namelocationbudget
101Bridge ALondon2500000
102Solar Farm BSydney4800000
103Highway CToronto3200000

Each row represents one record, while each column represents a particular attribute.

Relational Database Structure

A database may contain many related tables:

DATABASE
│
├── customers
│   ├── customer_id
│   ├── name
│   └── email
│
├── orders
│   ├── order_id
│   ├── customer_id
│   └── order_date
│
└── products
    ├── product_id
    ├── product_name
    └── price

The relationships between these tables are what make relational databases powerful.

Primary Keys and Foreign Keys

A primary key uniquely identifies a record.

customer_id INT PRIMARY KEY

A foreign key connects one table to another.

For example:

customers
customer_id
    │
    │
    ▼
orders
customer_id

This relationship prevents the need to duplicate the customer’s complete information inside every order.

Why SQL Is Declarative

SQL is generally considered a declarative language.

In a procedural programming language, you might specify the detailed steps required to find records.

With SQL, you typically describe the desired result:

SELECT *
FROM projects
WHERE budget > 3000000;

The database optimizer decides how to execute that request efficiently.


Definition

SQL (Structured Query Language) is a standardized language used to create, access, manipulate, query, and manage data stored in relational database systems.

SQL is commonly used with database management systems such as:

  • PostgreSQL
  • MySQL
  • Microsoft SQL Server
  • Oracle Database
  • SQLite

Although these systems support SQL, each database platform may provide additional features or slightly different syntax.

Core SQL Operations

The most important SQL operations can be summarized using CRUD:

OperationPurposeTypical SQL
CreateAdd dataINSERT
ReadRetrieve dataSELECT
UpdateModify dataUPDATE
DeleteRemove dataDELETE

These four operations form the foundation of many database applications. ⚙️

Data Definition Language

SQL also provides commands for defining database structures:

CREATE TABLE
ALTER TABLE
DROP TABLE

These commands are commonly associated with DDL — Data Definition Language.

Data Manipulation Language

Commands such as:

INSERT
UPDATE
DELETE

are commonly categorized as DML — Data Manipulation Language.


Step-by-Step Explanation

Learning SQL becomes easier when a query is viewed as a sequence of logical operations.

Consider this table:

idnamedepartmentsalary
1AliceEngineering72000
2JamesIT68000
3MariaEngineering85000
4DanielFinance76000

Suppose we want to find engineers earning more than $70,000.

Step 1: Select the Required Columns

SELECT name, salary

This tells SQL which information we want to see.

Step 2: Specify the Table

FROM employees

The complete query now becomes:

SELECT name, salary
FROM employees;

Step 3: Add a Condition

We can restrict the results:

SELECT name, salary
FROM employees
WHERE department = 'Engineering';

Step 4: Add Another Condition

SELECT name, salary
FROM employees
WHERE department = 'Engineering'
AND salary > 70000;

The result is:

namesalary
Alice72000
Maria85000

Step 5: Sort the Results

SELECT name, salary
FROM employees
WHERE department = 'Engineering'
ORDER BY salary DESC;

DESC means descending order.

Step 6: Calculate Statistics

SQL can also calculate useful engineering and business metrics:

SELECT AVG(salary) AS average_salary
FROM employees;

Other common aggregate functions include:

COUNT()  → number of records
SUM()    → total
AVG()    → average
MIN()    → minimum
MAX()    → maximum

 

Image

ImageImage

 

ImageImage


Comparison

SQL is not the only technology used to work with data. Understanding how it compares with other approaches helps engineers choose the right tool.

FeatureSQLPythonExcelNoSQL
Main purposeDatabase queryingGeneral programming/data analysisSpreadsheet analysisNon-relational data
Large datasetsExcellentExcellent with suitable toolsLimited compared with databasesExcellent
Structured tablesExcellentGoodExcellentVaries
Complex joinsExcellentPossibleLess convenientDepends on database
AutomationExcellentExcellentGoodExcellent
Learning curveModerateModerateLowModerate
Typical usersAnalysts, developers, DBAsEngineers, scientistsAnalysts, business usersDevelopers, data engineers

SQL vs Python

SQL and Python are often complementary rather than competing technologies.

A data analyst might use SQL to retrieve data:

SELECT *
FROM sales
WHERE region = 'Europe';

Then use Python for statistical modeling or visualization.

SQL vs Excel

Excel is excellent for small-to-medium interactive analysis, while SQL becomes increasingly valuable when datasets are large, centralized, frequently updated, or shared among many applications.


Diagrams and Tables

A simple relational model might look like this:

ImageImage

Image

ImageImage

┌───────────────┐
│   Customers   │
├───────────────┤
│ customer_id PK│
│ name          │
│ email         │
└───────┬───────┘
        │
        │ 1
        │
        │ many
        ▼
┌───────────────┐
│    Orders     │
├───────────────┤
│ order_id PK   │
│ customer_id FK│
│ order_date    │
└───────┬───────┘
        │
        ▼
┌───────────────┐
│ Order_Items   │
├───────────────┤
│ order_id FK   │
│ product_id FK │
│ quantity      │
└───────────────┘

This structure allows an application to connect customers with their orders and products without repeatedly storing the same information.

Useful SQL Clauses

ClauseFunction
SELECTChooses columns
FROMSpecifies the source table
WHEREFilters records
GROUP BYCreates groups
HAVINGFilters groups
ORDER BYSorts results
JOINCombines tables
LIMITRestricts returned rows

A typical analytical query may combine several of them:

SELECT department, AVG(salary) AS avg_salary
FROM employees
WHERE salary > 50000
GROUP BY department
HAVING AVG(salary) > 65000
ORDER BY avg_salary DESC;

Examples

Example 1: Finding High-Value Products

Suppose an online store has:

products
-----------------------------
id | name | price | stock

To find products costing more than $500:

SELECT name, price
FROM products
WHERE price > 500;

Example 2: Counting Projects

An engineering organization may store projects in a database.

SELECT COUNT(*) AS total_projects
FROM projects;

This produces a single numerical result representing the number of projects.

Example 3: Grouping Data

To determine the number of projects in each country:

SELECT country, COUNT(*) AS project_count
FROM projects
GROUP BY country;

Possible result:

countryproject_count
USA42
Canada18
UK27
Australia15

Example 4: Joining Tables

Suppose we have customers and orders.

SELECT customers.name, orders.order_date
FROM customers
JOIN orders
ON customers.customer_id = orders.customer_id;

The JOIN operation is one of the most important concepts for professional SQL users.


Real-World Application

SQL is deeply integrated into modern engineering and technology systems. 🌍⚙️

Software Engineering

Applications use databases to store:

  • User accounts
  • Authentication information
  • Product catalogs
  • Application settings
  • Transactions
  • Logs

A web application may send an SQL query whenever a user searches for a product.

Engineering and Manufacturing

Manufacturing companies can use SQL databases to track:

  • Machine measurements
  • Production batches
  • Maintenance schedules
  • Component inventories
  • Quality-control results

For example:

SELECT machine_id, AVG(temperature)
FROM sensor_data
GROUP BY machine_id;

This can help engineers identify machines operating at unusually high temperatures.

Data Analytics

Data analysts frequently use SQL to transform raw operational data into reports and dashboards.

A dashboard might calculate:

Revenue
Average Order Value
Customer Count
Conversion Rate
Monthly Growth

SQL often performs the initial extraction and aggregation before visualization tools display the results.

Financial Engineering

Financial systems can store millions of transactions. SQL can help analysts identify patterns such as unusually large transactions, daily totals, or account activity.

Scientific Research

Researchers can use relational databases to organize experimental measurements, observations, equipment records, and calculated results.


Common Mistakes

Forgetting the WHERE Clause

This query can affect every record:

UPDATE employees
SET salary = salary * 1.05;

If the intention was to update only one employee, a WHERE condition is necessary.

Using SELECT *

Although convenient during learning:

SELECT *
FROM employees;

it may retrieve unnecessary columns in production applications.

A more precise query is:

SELECT name, department
FROM employees;

Confusing WHERE and HAVING

WHERE filters individual rows before grouping.

HAVING filters groups after aggregation.

WHERE salary > 50000

versus:

HAVING AVG(salary) > 70000

Ignoring NULL Values

NULL does not simply mean zero or an empty string.

For example:

WHERE email IS NULL

is correct, while:

WHERE email = NULL

generally does not produce the intended result.

Missing Indexes

Large databases may become slow when frequently queried columns lack appropriate indexes.

Indexes can dramatically improve certain searches, although excessive indexing can increase storage requirements and slow writes.


Challenges and Solutions

Challenge: Understanding Joins

Many beginners find JOIN difficult because several tables must be understood simultaneously.

Solution: Draw the relationships first.

Customers
    │
    │ customer_id
    ▼
Orders

Then write the join condition.

Challenge: Slow Queries

A query returning thousands of records may be acceptable during development but problematic at production scale.

Solutions include:

  • Use appropriate indexes.
  • Select only required columns.
  • Avoid unnecessary joins.
  • Examine query execution plans.
  • Filter data efficiently.

Challenge: Data Quality

Incorrect, duplicated, or inconsistent data can produce misleading analytical results.

Solution: Combine SQL querying with appropriate database constraints, validation, normalization, and data-quality checks.

Challenge: Security

Applications that construct SQL queries directly from untrusted input can become vulnerable to SQL injection.

Use parameterized queries or prepared statements rather than inserting user input directly into SQL strings.


Case Study

Consider a fictional international engineering consultancy managing 50,000 projects across the USA, Canada, the UK, and Australia.

The company stores project information in:

projects
employees
clients
expenses

Management wants to identify projects exceeding their planned budgets.

The analyst can calculate the total expenses:

SELECT project_id, SUM(amount) AS total_expenses
FROM expenses
GROUP BY project_id;

The results can then be compared with project budgets.

A more advanced query could combine the information:

SELECT
    p.project_id,
    p.project_name,
    p.budget,
    SUM(e.amount) AS actual_cost
FROM projects p
JOIN expenses e
ON p.project_id = e.project_id
GROUP BY
    p.project_id,
    p.project_name,
    p.budget;

The resulting dataset could be used to identify projects where:

Actual Cost > Planned Budget

This demonstrates the real value of SQL: it transforms raw database records into actionable engineering information. 📈


Essential Tips

Start With SELECT

Master these concepts first:

SELECT
FROM
WHERE
ORDER BY

Then progress to:

GROUP BY
HAVING
JOIN
Subqueries
CTEs
Window Functions

Practice With Realistic Data

Instead of practicing only with tiny tables containing five records, create datasets resembling real engineering or business environments.

Learn Relational Thinking

Ask yourself:

What entities exist, and how are they related?

For example:

Customer → Order → Product

This mental model makes complex SQL considerably easier.

Understand Execution Concepts

As your skills advance, study:

  • Indexes
  • Query plans
  • Transactions
  • Constraints
  • Normalization
  • Isolation levels
  • Database optimization

Write Readable SQL

Professional SQL should be understandable:

SELECT
    department,
    AVG(salary) AS average_salary
FROM employees
WHERE salary > 50000
GROUP BY department
ORDER BY average_salary DESC;

Readable SQL is easier to debug, review, and maintain.


FAQs

What is SQL used for?

SQL is primarily used to communicate with relational databases. It can retrieve, insert, update, delete, aggregate, and analyze structured data.

Is SQL difficult for beginners?

SQL has a relatively accessible starting point. Basic SELECT, FROM, and WHERE statements can be learned quickly. More advanced topics such as joins, optimization, transactions, and window functions require additional practice.

Do engineers need to learn SQL?

Many engineers benefit from SQL because modern engineering applications often interact with databases. SQL is particularly useful for software, data, systems, manufacturing, financial, and analytics engineering.

What is the difference between SQL and a database?

A database is a system for storing and organizing information. SQL is a language used to communicate with many relational databases.

Can SQL handle large datasets?

Yes. SQL databases can handle very large datasets when they are properly designed, indexed, configured, and optimized. Performance depends on the database system, hardware, schema, query design, and workload.

Should I learn SQL before Python?

Not necessarily. They serve different purposes. SQL is particularly useful for querying databases, while Python is a general-purpose programming language widely used for automation, engineering, data science, and machine learning.

What is a SQL JOIN?

A JOIN combines related records from multiple tables using a relationship between columns, often involving a primary key and foreign key.

What should I learn after basic SQL?

After mastering basic querying, move toward joins, aggregation, subqueries, common table expressions (CTEs), window functions, indexes, transactions, database design, and query optimization.


Conclusion

SQL is much more than a collection of database commands. It provides a structured way to transform large amounts of information into meaningful results. 🧠📊

For beginners, the best starting point is to understand the relationship between tables, rows, columns, primary keys, and foreign keys. From there, learn SELECT, FROM, WHERE, and ORDER BY before progressing toward joins, aggregation, subqueries, CTEs, and window functions.

For experienced engineers, SQL becomes a tool for solving larger problems involving data architecture, performance optimization, analytics, automation, and reliable information systems.

The most important idea is simple:

RAW DATA
   ↓
DATABASE
   ↓
SQL QUERY
   ↓
FILTER + JOIN + AGGREGATE
   ↓
USEFUL INFORMATION
   ↓
ENGINEERING DECISION

Once you begin thinking about data in terms of relationships, conditions, transformations, and results, SQL becomes far more intuitive.

Whether you are a student learning database fundamentals or a professional working with production-scale systems, SQL remains one of the most practical and transferable technical skills you can develop. 🚀

Unlock exclusive content
Enjoy all premium content by watching a short ad
Preparing ad...
BY ADX360