The SQL Workshop: Learn to create, manipulate and secure data and manage relational databases with SQL
()
About this ebook
Get to grips with SQL fundamentals and learn how to efficiently create, read and update information stored in databases
Key Features- Understand the features and syntax of SQL and use them to query databases
- Learn how to create databases and tables and manipulate the data within them
- Create advanced queries and apply them on realistic databases with hands-on activities
Many software applications are backed by powerful relational database systems, meaning that the skills to be able to maintain a SQL database and reliably retrieve data are in high demand. With its simple syntax and effective data manipulation capabilities, SQL enables you to manage relational databases with ease. The SQL Workshop will help you progress from basic to advanced-level SQL queries in order to create and manage databases successfully.
This Workshop begins with an introduction to basic CRUD commands and gives you an overview of the different data types in SQL. You'll use commands for narrowing down the search results within a database and learn about data retrieval from single and multiple tables in a single query. As you advance, you'll use aggregate functions to perform calculations on a set of values, and implement process automation using stored procedures, functions, and triggers. Finally, you'll secure your database against potential threats and use access control to keep your data safe.
Throughout this Workshop, you'll use your skills on a realistic database for an online shop, preparing you for solving data problems in the real world.
By the end of this book, you'll have built the knowledge, skills and confidence to creatively solve real-world data problems with SQL.
What you will learn- Create databases and insert data into them
- Use SQL queries to create, read, update, and delete data
- Maintain data integrity and consistency through normalization
- Customize your basic SQL queries to get the desired output
- Refine your database search using the WHERE and HAVING clauses
- Use joins to fetch data from multiple tables and create custom reports
- Improve web application performance by automating processes
- Secure a database with GRANT and REVOKE privileges
This Workshop is suitable for anyone who wants to learn how to use SQL to work with databases. No prior SQL or database experience is necessary. Whether you're an aspiring software developer, database engineer, data scientist, or systems administrator, this Workshop will quickly get you up and running.
Related to The SQL Workshop
Related ebooks
SQL Server: Tips and Tricks - 2 Rating: 4 out of 5 stars4/5SQL in 30 Pages Rating: 4 out of 5 stars4/5Learn T-SQL Querying: A guide to developing efficient and elegant T-SQL code Rating: 0 out of 5 stars0 ratingsSQL QuickStart Guide: The Simplified Beginner's Guide to Managing, Analyzing, and Manipulating Data With SQL Rating: 4 out of 5 stars4/5Learn SQL in 24 Hours Rating: 5 out of 5 stars5/5Practical SQL Rating: 4 out of 5 stars4/5SQL: For Beginners: Your Guide To Easily Learn SQL Programming in 7 Days Rating: 5 out of 5 stars5/5SQL Interview Questions: A complete question bank to crack your ANN SQL interview with real-time examples Rating: 2 out of 5 stars2/5Sql Simplified:: Learn to Read and Write Structured Query Language Rating: 0 out of 5 stars0 ratingsSQL Database Programming: The Ultimate Guide to Learning SQL Database Programming Fast! Rating: 0 out of 5 stars0 ratingsSQL 101 Crash Course: Comprehensive Guide to SQL Fundamentals and Practical Applications Rating: 5 out of 5 stars5/5Microsoft SQL Server 2012 Integration Services: An Expert Cookbook Rating: 5 out of 5 stars5/5SQL Tutorial For Beginners Rating: 0 out of 5 stars0 ratingsJAVA Programming Simplified: From Novice to Professional - Start at the Beginning and Learn the World of Java Rating: 0 out of 5 stars0 ratingsMicrosoft Tabular Modeling Cookbook Rating: 0 out of 5 stars0 ratingsNode.JS Guidebook: Comprehensive guide to learn Node.js Rating: 0 out of 5 stars0 ratingsSpreadsheets To Cubes (Advanced Data Analytics for Small Medium Business): Data Science Rating: 0 out of 5 stars0 ratingsSQL Rating: 0 out of 5 stars0 ratingsOracle Quick Guides: Part 3 - Coding in Oracle: SQL and PL/SQL Rating: 0 out of 5 stars0 ratingsSQL for Data Scientists: A Beginner's Guide for Building Datasets for Analysis Rating: 0 out of 5 stars0 ratingsSimply SQL: The Fun and Easy Way to Learn Best-Practice SQL Rating: 4 out of 5 stars4/5
Programming For You
Excel : The Ultimate Comprehensive Step-By-Step Guide to the Basics of Excel Programming: 1 Rating: 5 out of 5 stars5/5Python Programming : How to Code Python Fast In Just 24 Hours With 7 Simple Steps Rating: 4 out of 5 stars4/5Coding All-in-One For Dummies Rating: 4 out of 5 stars4/5Teach Yourself C++ Rating: 4 out of 5 stars4/5Beginning Programming with C++ For Dummies Rating: 4 out of 5 stars4/5Python: Learn Python in 24 Hours Rating: 4 out of 5 stars4/5Python: For Beginners A Crash Course Guide To Learn Python in 1 Week Rating: 4 out of 5 stars4/5Learn to Code. Get a Job. The Ultimate Guide to Learning and Getting Hired as a Developer. Rating: 5 out of 5 stars5/5Microsoft Azure For Dummies Rating: 0 out of 5 stars0 ratingsSQL All-in-One For Dummies Rating: 3 out of 5 stars3/5Excel 101: A Beginner's & Intermediate's Guide for Mastering the Quintessence of Microsoft Excel (2010-2019 & 365) in no time! Rating: 0 out of 5 stars0 ratingsPython Data Structures and Algorithms Rating: 5 out of 5 stars5/5Learn PowerShell in a Month of Lunches, Fourth Edition: Covers Windows, Linux, and macOS Rating: 5 out of 5 stars5/5HTML in 30 Pages Rating: 5 out of 5 stars5/5Coding with JavaScript For Dummies Rating: 0 out of 5 stars0 ratingsPython for Data Science For Dummies Rating: 0 out of 5 stars0 ratingsProblem Solving in C and Python: Programming Exercises and Solutions, Part 1 Rating: 5 out of 5 stars5/5Windows 11 For Dummies Rating: 0 out of 5 stars0 ratingsJavaScript All-in-One For Dummies Rating: 5 out of 5 stars5/5Python Crash Course, 3rd Edition: A Hands-On, Project-Based Introduction to Programming Rating: 4 out of 5 stars4/5Coding All-in-One For Dummies Rating: 0 out of 5 stars0 ratings
Reviews for The SQL Workshop
0 ratings0 reviews
Book preview
The SQL Workshop - Frank Solomon
The SQL Workshop
Copyright © 2019 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
Authors: Frank Solomon, Prashanth Jayaram, and Awni Al Saqqa
Reviewers: Tor Harrington, Pradeep Kumar Gupta, Aaditya Pokkunuri, Shubham Jain, Fiodar Sazanavets, Shashikant Shakya, and Trevoir Williams
Managing Editor: Manasa Kumar
Acquisitions Editors: Alicia Wooding and Karan Wadekar
Production Editor: Salma Patel
Editorial Board: Shubhopriya Banerjee, Bharat Botle, Ewan Buckingham, Megan Carlisle, Mahesh Dhyani, Manasa Kumar, Alex Mazonowicz, Bridget Neale, Dominic Pereira, Shiny Poojary, Abhishek Rane, Brendan Rodrigues, Mugdha Sawarkar, Erol Staveley, Ankita Thakur, Nitesh Thakur, and Jonathan Wray
First published: December 2019
Production reference: 2291220
ISBN 978-1-83864-235-8
Published by Packt Publishing Ltd.
Livery Place, 35 Livery Street
Birmingham B3 2PB, UK
Table of Contents
Preface
1. SQL Basics
Introduction
Understanding Data
An Overview of Basic SQL Commands
Creating Databases
The Use of Semicolons
Data Types in SQL
Creating Simple Tables
Exercise 1.01: Building the PACKT_ONLINE_SHOP Database
Populating Your Tables
Exercise 1.02: Inserting Values into the Customers Table of the PACKT_ONLINE_SHOP Database
Activity 1.01: Inserting Values into the Products Table in the PACKT_ONLINE_SHOP Database
Summary
2. Manipulating Data
Introduction
The INSERT Operation
Performing a Simple INSERT
Exercise 2.01: Inserting One Row of Data into a Table
Multiple Inserts
Exercise 2.02: Specifying Default Values
Using an INSERT Statement to Add Data from Another Dataset
The DELETE Operation
Exercise 2.03: Deleting a record from a table
The ALTER Operation
Exercise 2.04: Manipulating the Auto-Increment Values in a Table
The UPDATE Operation
The Basic UPDATE Statement
ALIASING
Conditional Update of Records
Limiting the Records Using an UPDATE Statement
Exercise 2.05: UPDATE Using Computed Values
The DROP Operation
Activity 2.01: Inserting Additional values to the Products table
Summary
3. Normalization
Introduction
Primary Key Constraints
Foreign Key Constraints
Preserving Data Integrity
Types of Data Integrity
The Concept of Normalization
First Normal Form (1NF)
Second Normal Form (2NF)
Third Normal Form (3NF)
Denormalization
Exercise 3.01: Building a Relationship between Two Tables
Activity 3.01: Building a Relationship between the Orders and the OrderItems table
Summary
4. The SELECT Statement
Introduction
What Does the SELECT Statement Do?
Retrieving All Columns of a Table
Selecting Limited Columns
Exercise 4.01: Selecting Columns from a Table
Using Naming Aliases
Exercise 4.02: Aliasing the Column Headers
Activity 4.01: Displaying Particular Columns from the Table
Ordering Results
Ordering Rows According to a Particular Column
Ordering Rows According to Multiple Columns
Using LIMIT
Exercise 4.03: Using the LIMIT Keyword
Using DISTINCT
Using Mathematical Expressions
Exercise 4.04: Calculating the Line Item Total
Exercise 4.05: Calculating Discount
Activity 4.02: Extracting the Top Five Highest Priced Items
Summary
5. Shaping Data with the WHERE Clause
Introduction
The WHERE Clause Syntax
Exercise 5.01: Implementing Logical Operators in the WHERE Clause
Exercise 5.02: Using the BETWEEN Operator
The Not Equal Operator
Exercise 5.03: Using the != and <> Operators
The LIKE Operator
Exercise 5.04: Using the LIKE Operator to Check a Pattern at the Beginning of a String
Exercise 5.05: Using the LIKE Operator to Check for a Specified Length
Checking for NULLS
Exercise 5.06: Searching for NULL Values
Combining Conditions with the AND, OR, and NOT Operators
Exercise 5.07: Querying Multiple Conditions
Activity 5.01: Combining Conditions to Extract Store Data
Summary
6. JOINS
Introduction
INNER JOIN
Exercise 6.01: Extracting Orders and Purchaser Information
RIGHT JOIN
Exercise 6.02: Implementing RIGHT JOIN
LEFT JOIN
Exercise 6.03: Implementing LEFT JOIN
CROSS JOIN
Exercise 6.04: Implementing CROSS JOINS
UNION JOIN
Exercise 6.05: Implementing a UNION JOIN
Activity 6.01: Implementing JOINS
Summary
7. Subqueries, Cases, and Views
Introduction
Subqueries
Exercise 7.01: Working with Subqueries
Activity 7.01: Finding the Product Category Name Using a Subquery
Case Statements
Exercise 7.02: Using Case Statements
Activity 7.02: Categorizing the Shipments Using CASE Statements
Views
Exercise 7.03: Building a View
Activity 7.03: Building a View
Summary
8. SQL Programming
Introduction
Programming for SQL Products – The Basics
Stored Procedures
Exercise 8.01: Building a MySQL Stored Procedure That Returns a List of Packt Online Shop Order Details
Exercise 8.02: Altering a MySQL Stored Procedure
Activity 8.01: Building a Stored Procedure
Functions
Exercise 8.03: Build a MySQL Function
Activity 8.02: Working with MySQL Functions
Triggers
Exercise 8.04: Build a MySQL Trigger
Activity 8.03: Building a Trigger
Summary
9. Security
Introduction
Access Control (Authorization)
Exercise 9.01: Creating New MySQL users
Exercise 9.02: Granting EXECUTE permission in MySQL
Activity 9.01: Grant UPDATE permission on a table in MySQL
Summary
10. Aggregate Functions
Introduction
Aggregate Functions (SUM, COUNT, AVG, MIN, and MAX) and the GROUP BY Clause
Exercise 10.01: Implementing Aggregate Functions
The HAVING Clause
Exercise 10.02: Implementing the HAVING Clause
The Differences between the SQL HAVING and WHERE Clauses
SQL OVER and PARTITION BY
The RANK and DENSE_RANK Functions
Exercise 10.03: Implementing RANK
Activity 10.01: Working with Aggregates
Summary
11. Advanced SQL
Introduction
String Functions
Exercise 11.01: Building a MySQL Query that Returns the OrderID, Quantity, and Notes Columns
Exercise 11.02: Using LIKE in a Stored Procedure
Activity 11.01: Implementing the LIKE Operator
Dealing with NULL and COALESCE
The COALESCE Function
Exercise 11.03: Using the COALESCE Function to Handle a NULL Value in a Combined Set of Values
Finding Duplicate Table Rows
Transactions
Activity 11.02: Using Transactions
Summary
Appendix
Preface
About
This section briefly introduces the coverage of this book, the technical skills you'll need to get started, and the software requirements required to complete all of the included activities and exercises.
About the Book
Many software applications are backed by powerful relational database systems, meaning that the skills to be able to maintain a SQL database and reliably retrieve data are in high demand. With its simple syntax and effective data manipulation capabilities, SQL enables you to manage relational databases with ease. The SQL Workshop will help you progress from basic to advanced-level SQL queries in order to create and manage databases successfully.
This Workshop begins with an introduction to basic CRUD commands and gives you an overview of the different data types in SQL. You’ll use commands for narrowing down the search results within a database and learn about data retrieval from single and multiple tables in a single query. As you advance, you’ll use aggregate functions to perform calculations on a set of values, and implement process automation using stored procedures, functions, and triggers. Finally, you’ll secure your database against potential threats and use access control to keep your data safe.
Throughout this Workshop, you’ll use your skills on a realistic database for an online shop, preparing you for solving data problems in the real world.
By the end of this book, you’ll have built the knowledge, skills and confidence to creatively solve real-world data problems with SQL.
About the Chapters
Chapter 1, SQL Basics, explains how to create a simple database and how to create tables within databases. We will also learn how to populate data within a table.
Chapter 2, Manipulating Data, guides us through how to alter tables and delete and update entries within a table.
Chapter 3, Normalization, explains how to normalize tables within a database such that data integrity is maintained.
Chapter 4, The SELECT Statement, covers how to write basic queries to retrieve data from the database.
Chapter 5, Shaping Data with the WHERE Clause, covers implementing conditional clauses within our queries such that we get fine-grained control over our data.
Chapter 6, JOINS, talks about retrieving data from multiple tables by performing various join operations.
Chapter 7, Subqueries, Cases, and Views, talks about ways to retrieve data from intermediary tables using views and then sub-queries to further filter down results.
Chapter 8, SQL Programming, talks about advanced SQL concepts such as the functions and triggers.
Chapter 9, Security, looks at providing and revoking access to users on tables and databases.
Chapter 10, Aggregate Functions, teaches how use SQL aggregate functions and how to solve problems with them. We will also look at advanced clauses, such as the GROUP BY and the HAVING clauses, and see how they can help us to fine-tune our results
Chapter 11, Advanced SQL, looks at functions in SQL and how they can be used as powerful filtering tools.
Conventions
Code words in text, database table names, screen text, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles are shown as follows: We'll start with the Orders table since the Orders table ties the orders together with the OrderItems table.
A block of code is set as follows:
USE PACKT_ONLINE_SHOP;
Before You Begin
Each great journey begins with a humble step. Our upcoming adventure in the land of SQL is no exception. Before you can begin, you need to be prepared with the most productive environment. In this section, you will see how to do that.
To Install MySQL
To install MySQL, follow the steps present in the following documentation: https://packt.live/2rxXXv1
To Install the Code Bundle
Download the code files from GitHub at https://packt.live/2QCKNqB and place them in a new folder called C:\Code on your local system. Refer to these code files for the complete code bundle.
1. SQL Basics
Overview
This chapter covers the very basic concepts of SQL that will get you started with writing simple commands. By the end of this chapter, you will be able to identify the difference between structured and unstructured data, explain the basic SQL concepts, create tables using the CREATE statement, and insert values into tables using SQL commands.
Introduction
The vast majority of companies today work with large amounts of data. This could be product information, customer data, client details, employee data, and so on. Most people who are new to working with data will do so using spreadsheets. Software such as Microsoft Excel has many tools for manipulating and analyzing data, but as the volume and complexity of the data you're working with increases, these tools may become inefficient.
A more powerful and controlled way of working with data is to store it in a database and use SQL to access and manipulate it. SQL works extremely well for organized data and can be used very effectively to insert, retrieve, and manipulate data with just a few lines of code. In this chapter, we'll get an introduction to SQL and see how to create databases and tables, as well as how to insert values into them.
Understanding Data
For most companies, storing and retrieving data is a day-to-day activity. Based on how data is stored, we can broadly classify data as structured or unstructured. Unstructured data, simply put, is data that is not well-organized. Documents, PDFs, and videos fall into this category—they contain a mixture of different data types (text, images, audio, video, and so on) that have no consistent relationship between them. Media and publishing are examples of industries that deal with unstructured data such as this.
In this book, our focus will be on structured data. Structured data is organized according to a consistent structure. As such, structured data can be easily organized into tables. Thanks to its consistent organization, working with structured data is easier, and it can be processed more effectively. Tables are collections of entities or tuples (rows) and attributes (columns).
For example, consider the following table:
Figure 1.1: An example student’s database tableFigure 1.1: An example student's database table
For each row, there is a clear relationship; a given student takes a particular subject and achieves a specific score in that subject. The columns are also known as fields, while the rows are known as records.
Data that is presented in tabular form can be stored in a relational database. Relational databases, as the name suggests, store data that has a certain relationship with another piece of data. A Relational Database Management System (RDBMS) is a system that's used to manage relational data. SQL works very well with relational data. Popular RDBMSs include Microsoft SQL Server, MySQL, and Oracle. Throughout this book, we will be working with MySQL. We can use various SQL commands to work with data in relational databases. We'll have a brief look at them in the next section.
An Overview of Basic SQL Commands
SQL (often pronounced sequel
) stands for Structured Query Language. A query in SQL is constructed using different commands. These commands are classified into what are called sublanguages of SQL. Even if you think you know them already, give this a read to see if these seem more relatable to you. There are five sublanguages in SQL, as follows:
Data Definition Language (DDL): As the name suggests, the commands that fall under this category work with defining either a table, a database, or anything within. Any command that talks about creating something in SQL is part of DDL. Some examples of such commands are