SQL Query Design Patterns and Best Practices: A practical guide to writing readable and maintainable SQL queries using its design patterns

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Enhance your SQL query writing skills to provide greater business value using advanced techniques such as common table expressions, window functions, and JSON

Purchase of the print or Kindle book includes a free PDF eBook

Key Features

  • Examine query design and performance using query plans and indexes
  • Solve business problems using advanced techniques such as common table expressions and window functions
  • Use SQL in modern data platform solutions with JSON and Jupyter notebooks

Book Description

SQL has been the de facto standard when interacting with databases for decades and shows no signs of going away. Through the years, report developers or data wranglers have had to learn SQL on the fly to meet the business needs, so if you are someone who needs to write queries, SQL Query Design and Pattern Best Practices is for you.

This book will guide you through making efficient SQL queries by reducing set sizes for effective results. You'll learn how to format your results to make them easier to consume at their destination. From there, the book will take you through solving complex business problems using more advanced techniques, such as common table expressions and window functions, and advance to uncovering issues resulting from security in the underlying dataset. Armed with this knowledge, you'll have a foundation for building queries and be ready to shift focus to using tools, such as query plans and indexes, to optimize those queries. The book will go over the modern data estate, which includes data lakes and JSON data, and wrap up with a brief on how to use Jupyter notebooks in your SQL journey.

By the end of this SQL book, you'll be able to make efficient SQL queries that will improve your report writing and the overall SQL experience.

What you will learn

  • Build efficient queries by reducing the data being returned
  • Manipulate your data and format it for easier consumption
  • Form common table expressions and window functions to solve complex business issues
  • Understand the impact of SQL security on your results
  • Understand and use query plans to optimize your queries
  • Understand the impact of indexes on your query performance and design
  • Work with data lake data and JSON in SQL queries
  • Organize your queries using Jupyter notebooks

Who this book is for

This book is for SQL developers, data analysts, report writers, data scientists, and other data gatherers looking to expand their skills for complex querying as well as for building more efficient and performant queries.

For those new to SQL, this book can help you accelerate your learning and keep you from making common mistakes.

Table of Contents

  1. Reducing Rows and Columns in Your Result Sets
  2. Efficiently Aggregating Data in Your Results
  3. Formatting Your Results for Easier Consumption
  4. Manipulating Your Data Results Using Conditional SQL
  5. Using Common Table Expressions
  6. Analyze Your Data Using Window Functions
  7. Reshaping Your Data with Advanced Techniques
  8. Impact of SQL Security on Query Results
  9. Understanding Query Plans
  10. Understanding the Impact of Indexes on Your Query Design
  11. Handling JSON Data in SQL Server
  12. Integrating File Data and Data Lake Content with SQL
  13. Organizing and Sharing Your Queries with Jupyter Notebooks
  14. Appendix - Preparing Your Environment

Author(s): Steve Hughes, Dennis Neer, Dr. Ram Babu Singh, Shabbir H. Mala, Leslie Andrews, Chi Zhang
Edition: 1
Publisher: Packt Publishing
Year: 2023

Language: English
Commentary: PDF Quality: 99.99 % || [[trace-bullet]]
Pages: 270
City: Birmingham
Tags: SQL; Structured Query Language; SQL Query; SQL Query Design Patterns; SQL Query Performance; SQL Query Efficiency; SQL Query Plans; SQL Query Optimization; JSON

Cover
Title Page
Copyright and Credits
Contributors
Table of Contents
Preface
Part 1: Refining Your Queries to Get the Results You Need
Chapter 1 - Reducing Rows and Columns in Your Result Sets
Technical requirements
Identifying data to remove from the dataset
Reducing the amount of data
Understanding the value of creating views versus removing data
Exploring the impact of row and column reductions on aggregations
Summary
Chapter 2 - Efficiently Aggregating Data
Technical requirements
Identifying data to be aggregated
Determining when data should be aggregated
The AVG() function
The SUM() function
The COUNT() function
The MAX() function
The MIN() Function
Improving performance when aggregating data
Summary
Chapter 3 - Formatting Your Results for Easier Consumption
Technical requirements
Using the FORMAT() function
Format() with culture
Format() with custom formatting strings
Formatting dates and numbers with functions
Formatting dates and numbers with CONVERT() and CAST()
Formatting numbers with ROUND() and CEILING()
Comparing FORMAT(), CONVERT(), and CAST()
Alias columns with meaningful names
Summary
Chapter 4 - Manipulating Data Results Using Conditional SQL
Technical requirements
Using the CASE statement
Using a simple CASE expression in a SELECT statement
Using a searched CASE expression in a SELECT statement
Using CASE in an ORDER BY statement
Using CASE in an UPDATE statement
Using CASE in a HAVING statement
Using the COALESCE() expression
How to use COALESCE()
Comparing COALESCE() and CASE()
Using ISNULL() function
How to use ISNULL()
Comparing ISNULL() and COALESCE()
Summary
Part 2: Solving Complex Business and Data Problems in Your Queries
Chapter 5 - Using Common Table Expressions
Technical requirements
Creating CTEs
Set theory for queries
Creating a more complex CTE
Creating a recursive CTE
Creating the hierarchical data
Creating the recursive CTE
Recursive alternative
Summary
Chapter 6 - Analyze Your Data Using Window Functions
Technical requirements
Understanding window functions
Using a window function in a query
Adding a partition to the results
Window functions with frames
Scenarios and business problems
Days between orders
Finding a pattern
Finding first N records of every group
Running totals
First and last record in the partition
Year-over-year growth
Chapter 7 - Reshaping Data with Advanced Techniques
Technical requirements
Working with the PIVOT operator
Using PIVOT dynamically
Working with the UNPIVOT operator
Understanding hierarchical data
Summary
Chapter 8 - Impact of SQL Server Security on Query Results
Technical requirements
Why is data missing from my result set?
Understanding SQL Server security
Validating security settings
Summary
Part 3: Optimizing Your Queries to Improve Performance
Chapter 9 - Understanding Query Plans
Technical requirements
Understanding query optimization techniques
Understanding the Query Optimizer
Understanding and exploring the Query Execution Plan
Comparing execution plans
Analyzing the query plan
Summary
Chapter 10 - Understanding the Impact of Indexes on Query Design
Technical requirements
Understanding index and index types
Using CREATE to create an index
The DROP index
Using RENAME to rename an index
Modifying indexes
The ALTER index
Exploring the types of indexes
Clustered indexes
The NONCLUSTERED index
The UNIQUE index
The filtered index
The covering index
The impact of indexes on query design
Understanding index maintenance
The REBUILD index
The REORGANIZE index
Caution
Summary
Further reading
Part 4: Working with Your Data on the Modern Data Platform
Chapter 11 - Handling JSON Data in SQL Server
Technical requirements
Introducing JSON functionality built into SQL Server
The basics of JSON
JSON functions in SQL Server
JSON as data in SQL Server
JSON path in SQL Server
Formatting results as JSON in SQL Server
Using FOR JSON
Filling the table
Working with JSON data in SQL queries
Discovering JSON data in SQL Server
Extracting JSON data in SQL Server
Modifying JSON data in SQL Server
Building tabular results from JSON data in SQL Server
Summary
Chapter 12 - Integrating File Data and Data Lake Content with SQL
Technical requirements
Understanding the OPENROWSET (BULK..) function
Required security and storage permissions
Understanding external tables
Summary
Chapter 13 - Organizing and Sharing Your Queries with Jupyter Notebooks
Technical requirements
Creating Jupyter notebooks in Azure Data Studio
Understanding notebooks in Azure Data Studio
Creating a notebook in Azure Data Studio
Creating the Jupyter book
Adding a notebook to your Jupyter book
Adding queries in your Jupyter notebooks
Creating connections in your notebook
Creating and executing SQL code in your notebook
Formatting results
Exporting results
Resetting results
Documenting your code with markdown in your notebooks
Adding a text block to your notebook
Creating a header for your notebook
Using basic markdown for documentation
Adding images and links to your documentation
Managing and sharing your queries with Jupyter notebooks
Simple sharing of Jupyter books and notebooks
Using GitHub to collaborate on your notebook
Integrating third-party Jupyter books
Summary
Appendix - Preparing Your Environment
Prerequisites for running the exercises
Choosing a platform
Setting up the Azure environment
Setting up the SQL Server developer environment
Index
Other Books You May Enjoy