Facebook Pixel
Searching...
English
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
Practical SQL, 2nd Edition

Practical SQL, 2nd Edition

A Beginner's Guide to Storytelling with Data
by Anthony DeBarros 2022 464 pages
4.28
100+ ratings
Listen

Key Takeaways

1. SQL fundamentals: Creating databases, tables, and querying data

SQL is more than just a means for extracting knowledge from data. It's also a language for defining the structures that hold data so we can organize relationships in the data.

Database creation. Start by creating a database to organize related tables. Use the CREATE DATABASE statement followed by a descriptive name. Tables are the core building blocks of databases, created using the CREATE TABLE statement. Define columns with appropriate data types and constraints.

Basic querying. The SELECT statement is the workhorse of SQL, used to retrieve data from tables. Master the basics:

  • SELECT: Choose columns to display
  • FROM: Specify the source table(s)
  • WHERE: Filter rows based on conditions
  • ORDER BY: Sort results
  • LIMIT: Restrict the number of rows returned

Practice combining these clauses to extract meaningful information from your data. As you progress, explore more advanced features like aggregate functions (COUNT, SUM, AVG) and grouping with GROUP BY to summarize data effectively.

2. Advanced data manipulation: Joins, subqueries, and common table expressions

Joins give you the ability to handle many of the more complex datasets you'll encounter.

Joining tables. Understand different types of joins:

  • INNER JOIN: Returns matching rows from both tables
  • LEFT/RIGHT JOIN: Returns all rows from one table and matching rows from the other
  • FULL OUTER JOIN: Returns all rows when there's a match in either table
  • CROSS JOIN: Returns the Cartesian product of both tables

Subqueries and CTEs. Subqueries allow you to nest one query inside another, often used in WHERE clauses or as derived tables. Common Table Expressions (CTEs) provide a more readable alternative to complex subqueries, allowing you to define named subqueries that can be referenced multiple times in your main query.

These advanced techniques enable you to work with complex data relationships, perform multi-step calculations, and break down complex problems into more manageable pieces. Practice combining joins with subqueries and CTEs to unlock the full potential of your data analysis capabilities.

3. Working with different data types: Numbers, dates, and text

Handling times and dates in SQL databases adds an intriguing dimension to your analysis, letting you answer questions about when an event occurred along with other temporal concerns in your data.

Numeric data. Understand the differences between integer and decimal types. Use appropriate math functions for calculations and aggregations. Be aware of potential issues with floating-point arithmetic and use exact numeric types (like DECIMAL) for financial calculations.

Date and time data. Master date/time functions:

  • Extracting components (year, month, day)
  • Calculating intervals between dates
  • Formatting dates for display
  • Working with time zones

Text data. Utilize string functions for text manipulation:

  • Concatenation
  • Substring extraction
  • Pattern matching with LIKE and regular expressions
  • Full-text search capabilities

Each data type requires specific handling techniques. Dates often need careful consideration of time zones and formats. Text data may require cleaning or standardization. Numeric data might involve rounding or precision considerations. Practice working with all data types to become a well-rounded SQL analyst.

4. Statistical analysis and data aggregation in SQL

Statistical functions are just as usable when working with joined tables.

Basic aggregations. Start with fundamental aggregate functions:

  • COUNT: Count rows or non-null values
  • SUM: Calculate totals
  • AVG: Find averages
  • MIN/MAX: Identify extreme values

Advanced statistics. Explore more sophisticated statistical functions:

  • Correlation: Measure relationships between variables
  • Regression: Predict values based on other variables
  • Percentiles: Understand data distribution

Window functions. Use window functions to perform calculations across a set of rows related to the current row:

  • Running totals
  • Moving averages
  • Rankings

Combine these techniques with GROUP BY and HAVING clauses to segment your data and derive meaningful insights. Remember that while SQL can handle many statistical operations, complex analyses might require integration with specialized statistical software or languages like R or Python.

5. Geospatial data analysis with PostGIS

PostGIS comes with a powerful full-text search engine that adds capabilities for searching large amounts of text, similar to online search tools and technology that powers search on research databases, such as Factiva.

Spatial data types. Understand the basic spatial data types:

  • Point: Single location
  • LineString: Series of connected points
  • Polygon: Enclosed area
  • MultiPoint, MultiLineString, MultiPolygon: Collections of spatial objects

Spatial functions. Utilize PostGIS functions for analysis:

  • ST_Distance: Calculate distances between objects
  • ST_Within: Check if one object is inside another
  • ST_Intersection: Find where objects overlap

Spatial indexing. Implement spatial indexes (like GiST) to improve query performance on large datasets.

PostGIS extends PostgreSQL's capabilities to handle geographic data efficiently. This allows for complex spatial analyses, such as finding points of interest within a certain radius, calculating areas, or performing spatial joins. Combine spatial data with traditional relational data for comprehensive geospatial analytics.

6. JSON data handling in PostgreSQL

The arrival of JSON support in SQL has made it possible to enjoy the best of both worlds by adding JSON data as columns in relational tables.

JSON data types. PostgreSQL offers two JSON types:

  • json: Stores exact copy of input text
  • jsonb: Stores data in a decomposed binary format, allowing for faster processing and indexing

Querying JSON. Use operators and functions to extract and manipulate JSON data:

  • -> : Extract JSON object field as JSON
  • ->> : Extract JSON object field as text
  • #> : Extract JSON object at specified path
  • jsonb_array_elements: Expand JSON array to a set of JSON values

Indexing JSON. Create GIN (Generalized Inverted Index) indexes on jsonb columns to speed up containment and existence operators.

JSON support in PostgreSQL allows for flexible schema designs and easy integration with JSON-based APIs. However, consider the trade-offs between JSON and traditional relational structures based on your specific use case and query patterns.

7. Data cleaning, importing, and exporting techniques

After importing a dataset, a sensible first step is to make sure the table has the expected number of rows.

Data import. Use the COPY command to efficiently load large datasets from CSV files. Be aware of options for handling headers, delimiters, and data formatting issues.

Data cleaning. Common cleaning tasks include:

  • Handling missing values
  • Standardizing formats (dates, phone numbers, etc.)
  • Deduplicating records
  • Correcting inconsistent spellings or categories

Data export. Utilize COPY TO for exporting data to files. Consider formatting options to ensure compatibility with target systems.

Develop a systematic approach to data cleaning and validation. Always verify imported data for completeness and accuracy. Use SQL's string manipulation and regular expression capabilities for text cleaning. For complex cleaning tasks, consider using external ETL (Extract, Transform, Load) tools in conjunction with SQL.

8. Performance optimization: Indexing and query tuning

To speed up queries, which columns are good candidates for indexes?

Indexing strategies. Create indexes on columns frequently used in WHERE clauses, JOIN conditions, and ORDER BY clauses. Consider:

  • B-tree indexes for equality and range queries
  • Hash indexes for simple equality comparisons
  • GIN indexes for full-text search and jsonb columns

Query optimization. Techniques for improving query performance:

  • Use EXPLAIN ANALYZE to understand query execution plans
  • Rewrite complex queries using CTEs or temporary tables
  • Avoid using functions in WHERE clauses on indexed columns
  • Use appropriate join types and join order

Database maintenance. Regular maintenance tasks:

  • VACUUM to reclaim storage and update statistics
  • ANALYZE to gather statistics on table content
  • Monitoring and adjusting server configuration parameters

Remember that optimization is an iterative process. Continuously monitor query performance and be prepared to adjust your indexing and query strategies as your data and usage patterns evolve. Balance the benefits of indexes against the overhead they add to write operations.

Last updated:

Review Summary

4.28 out of 5
Average of 100+ ratings from Goodreads and Amazon.

Practical SQL receives mostly positive reviews, with readers praising its clear explanations, practical examples, and comprehensive coverage of SQL concepts. Many find it helpful for beginners and as a refresher for experienced users. The book's focus on real-world datasets and data storytelling is appreciated. Some readers note the difficulty increases in later chapters, and a few struggle with PostgreSQL installation. Overall, it's considered a valuable resource for learning SQL and database management, with an average rating of 4.28 out of 5 based on 207 reviews.

About the Author

Anthony DeBarros is an accomplished journalist with a passion for data analysis, coding, and storytelling. Currently working as a data editor for the Wall Street Journal, he covers topics including economics, trade, politics, and the U.S. Census. DeBarros has a diverse background, having held positions at USA TODAY, the Poughkeepsie Journal, and the DocumentCloud project for Investigative Reporters and Editors. His expertise in combining data analysis with journalism has earned him awards and recognition in his field. DeBarros's book reflects his commitment to making complex technical concepts accessible to a wide audience.

Download PDF

To save this Practical SQL, 2nd Edition summary for later, download the free PDF. You can print it out, or read offline at your convenience.
Download PDF
File size: 0.48 MB     Pages: 11

Download EPUB

To read this Practical SQL, 2nd Edition summary on your e-reader device or app, download the free EPUB. The .epub digital book format is ideal for reading ebooks on phones, tablets, and e-readers.
Download EPUB
File size: 3.20 MB     Pages: 9
0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Create a free account to unlock:
Bookmarks – save your favorite books
History – revisit books later
Ratings – rate books & see your ratings
Unlock unlimited listening
Your first week's on us!
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Nov 22,
cancel anytime before.
Compare Features Free Pro
Read full text summaries
Summaries are free to read for everyone
Listen to summaries
12,000+ hours of audio
Unlimited Bookmarks
Free users are limited to 10
Unlimited History
Free users are limited to 10
What our users say
30,000+ readers
“...I can 10x the number of books I can read...”
“...exceptionally accurate, engaging, and beautifully presented...”
“...better than any amazon review when I'm making a book-buying decision...”
Save 62%
Yearly
$119.88 $44.99/yr
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Settings
Appearance