DATA SCIENCE WITH MYSQL, SQLITE, POSTGRESQL, AND SQL SERVER USING PYTHON GUI


Book Description

Book 1: MYSQL AND DATA SCIENCE: QUERIES AND VISUALIZATION WITH PYTHON GUI In this project, you will write Python script to create every table and insert rows of data into each of them. You will develop GUI with PyQt5 to each table in the database. You will also create GUI to plot case distribution of film release year, film rating, rental duration, and categorize film length; plot rating variable against rental_duration variable in stacked bar plots; plot length variable against rental_duration variable in stacked bar plots; read payment table; plot case distribution of Year, Day, Month, Week, and Quarter of payment; plot which year, month, week, days of week, and quarter have most payment amount; read film list by joining five tables: category, film_category, film_actor, film, and actor; plot case distribution of top 10 and bottom 10 actors; plot which film title have least and most sales; plot which actor have least and most sales; plot which film category have least and most sales; plot case distribution of top 10 and bottom 10 overdue costumers; plot which customer have least and most overdue days; plot which store have most sales; plot average payment amount by month with mean and EWM; and plot payment amount over June 2005. This project uses the Sakila sample database which is a fictitious database designed to represent a DVD rental store. The tables of the database include film, film_category, actor, film_actor, customer, rental, payment and inventory among others. You can download the MySQL from https://dev.mysql.com/doc/sakila/en/. Book 2: SQLITE FOR DATA ANALYST AND DATA SCIENTIST WITH PYTHON GUI In this project, we will use the SQLite version of BikeStores database as a sample database to help you work with MySQL quickly and effectively. The stores table includes the store’s information. Each store has a store name, contact information such as phone and email, and an address including street, city, state, and zip code. The staffs table stores the essential information of staffs including first name, last name. It also contains the communication information such as email and phone. A staff works at a store specified by the value in the store_id column. A store can have one or more staffs. A staff reports to a store manager specified by the value in the manager_id column. If the value in the manager_id is null, then the staff is the top manager. If a staff no longer works for any stores, the value in the active column is set to zero. The categories table stores the bike’s categories such as children bicycles, comfort bicycles, and electric bikes. The products table stores the product’s information such as name, brand, category, model year, and list price. Each product belongs to a brand specified by the brand_id column. Hence, a brand may have zero or many products. Each product also belongs a category specified by the category_id column. Also, each category may have zero or many products. The customers table stores customer’s information including first name, last name, phone, email, street, city, state, zip code, and photo path. The orders table stores the sales order’s header information including customer, order status, order date, required date, shipped date. It also stores the information on where the sales transaction was created (store) and who created it (staff). Each sales order has a row in the sales_orders table. A sales order has one or many line items stored in the order_items table. The order_items table stores the line items of a sales order. Each line item belongs to a sales order specified by the order_id column. A sales order line item includes product, order quantity, list price, and discount. The stocks table stores the inventory information i.e. the quantity of a particular product in a specific store. Book 3: ZERO TO MASTERY: THE COMPLETE GUIDE TO LEARNING POSTGRESQL WITH PYTHON GUI This book uses the PostgreSQL version of MySQL-based Northwind database. The Northwind database is a sample database that was originally created by Microsoft and used as the basis for their tutorials in a variety of database products for decades. The Northwind database contains the sales data for a fictitious company called “Northwind Traders,” which imports and exports specialty foods from around the world. The Northwind database is an excellent tutorial schema for a small-business ERP, with customers, orders, inventory, purchasing, suppliers, shipping, employees, and single-entry accounting. The Northwind database has since been ported to a variety of non-Microsoft databases, including PostgreSQL. The Northwind dataset includes sample data for the following: Suppliers: Suppliers and vendors of Northwind; Customers: Customers who buy products from Northwind; Employees: Employee details of Northwind traders; Products: Product information; Shippers: The details of the shippers who ship the products from the traders to the end-customers; and Orders and Order_Details: Sales Order transactions taking place between the customers & the company. In this project, you will write Python script to create every table and insert rows of data into each of them. You will develop GUI with PyQt5 to each table in the database. You will also create GUI to plot: case distribution of order date by year, quarter, month, week, day, and hour; the distribution of amount by year, quarter, month, week, day, and hour; the distribution of bottom 10 sales by product, top 10 sales by product, bottom 10 sales by customer, top 10 sales by customer, bottom 10 sales by supplier, top 10 sales by supplier, bottom 10 sales by customer country, top 10 sales by customer country, bottom 10 sales by supplier country, top 10 sales by supplier country, average amount by month with mean and ewm, average amount by every month, amount feature over June 1997, amount feature over 1998, and all amount feature. Book 4: ZERO TO MASTERY: THE COMPLETE GUIDE TO LEARNING SQL SERVER AND DATA SCIENCE WITH PYTHON GUI In this project, we provide you with a SQL SERVER version of an Oracle sample database named OT which is based on a global fictitious company that sells computer hardware including storage, motherboard, RAM, video card, and CPU. The company maintains the product information such as name, description standard cost, list price, and product line. It also tracks the inventory information for all products including warehouses where products are available. Because the company operates globally, it has warehouses in various locations around the world. The company records all customer information including name, address, and website. Each customer has at least one contact person with detailed information including name, email, and phone. The company also places a credit limit on each customer to limit the amount that customer can owe. Whenever a customer issues a purchase order, a sales order is created in the database with the pending status. When the company ships the order, the order status becomes shipped. In case the customer cancels an order, the order status becomes canceled. In addition to the sales information, the employee data is recorded with some basic information such as name, email, phone, job title, manager, and hire date. In this project, you will write Python script to create every table and insert rows of data into each of them. You will develop GUI with PyQt5 to each table in the database. You will also create GUI to plot: case distribution of order date by year, quarter, month, week, and day; the distribution of amount by year, quarter, month, week, day, and hour; the distribution of bottom 10 sales by product, top 10 sales by product, bottom 10 sales by customer, top 10 sales by customer, bottom 10 sales by category, top 10 sales by category, bottom 10 sales by status, top 10 sales by status, bottom 10 sales by customer city, top 10 sales by customer city, bottom 10 sales by customer state, top 10 sales by customer state, average amount by month with mean and EWM, average amount by every month, amount feature over June 2016, amount feature over 2017, and amount payment in all years.




DATA ANALYSIS PROJECTS WITH MYSQL, SQLITE, POSTGRESQL, AND SQL SERVER USING PYTHON GUI


Book Description

PROJECT 1: FULL SOURCE CODE: POSTGRESQL AND DATA SCIENCE FOR PROGRAMMERS WITH PYTHON GUI This project uses the PostgreSQL version of MySQL-based Sakila sample database which is a fictitious database designed to represent a DVD rental store. The tables of the database include film, film_category, actor, film_actor, customer, rental, payment and inventory among others. You can download the database from https://dev.mysql.com/doc/sakila/en/. In this project, you will write Python script to create every table and insert rows of data into each of them. You will develop GUI with PyQt5 to each table in the database. You will also create GUI to plot case distribution of film release year, film rating, rental duration, and categorize film length; plot rating variable against rental_duration variable in stacked bar plots; plot length variable against rental_duration variable in stacked bar plots; read payment table; plot case distribution of Year, Day, Month, Week, and Quarter of payment; plot which year, month, week, days of week, and quarter have most payment amount; read film list by joining five tables: category, film_category, film_actor, film, and actor; plot case distribution of top 10 and bottom 10 actors; plot which film title have least and most sales; plot which actor have least and most sales; plot which film category have least and most sales; plot case distribution of top 10 and bottom 10 overdue costumers; plot which store have most sales; plot average payment amount by month with mean and EWM; and plot payment amount over June 2005. PROJECT 2: FULL SOURCE CODE: MYSQL FOR STUDENTS AND PROGRAMMERS WITH PYTHON GUI In this project, we provide you with a MySQL version of an Oracle sample database named OT which is based on a global fictitious company that sells computer hardware including storage, motherboard, RAM, video card, and CPU. The company maintains the product information such as name, description standard cost, list price, and product line. It also tracks the inventory information for all products including warehouses where products are available. Because the company operates globally, it has warehouses in various locations around the world. The company records all customer information including name, address, and website. Each customer has at least one contact person with detailed information including name, email, and phone. The company also places a credit limit on each customer to limit the amount that customer can owe. Whenever a customer issues a purchase order, a sales order is created in the database with the pending status. When the company ships the order, the order status becomes shipped. In case the customer cancels an order, the order status becomes canceled. In addition to the sales information, the employee data is recorded with some basic information such as name, email, phone, job title, manager, and hire date. In this project, you will write Python script to create every table and insert rows of data into each of them. You will develop GUI with PyQt5 to each table in the database. You will also create GUI to plot: case distribution of order date by year, quarter, month, week, and day; the distribution of amount by year, quarter, month, week, day, and hour; the distribution of bottom 10 sales by product, top 10 sales by product, bottom 10 sales by customer, top 10 sales by customer, bottom 10 sales by category, top 10 sales by category, bottom 10 sales by status, top 10 sales by status, bottom 10 sales by customer city, top 10 sales by customer city, bottom 10 sales by customer state, top 10 sales by customer state, average amount by month with mean and EWM, average amount by every month, amount feature over June 2016, amount feature over 2017, and amount payment in all years. PROJECT 3: ZERO TO MASTERY: THE COMPLETE GUIDE TO LEARNING SQLITE AND PYTHON GUI In this project, we provide you with the SQLite version of The Oracle Database Sample Schemas that provides a common platform for examples in each release of the Oracle Database. The sample database is also a good database for practicing with SQL, especially SQLite. The detailed description of the database can be found on: http://luna-ext.di.fc.ul.pt/oracle11g/server.112/e10831/diagrams.htm#insertedID0. The four schemas are a set of interlinked schemas. This set of schemas provides a layered approach to complexity: A simple schema Human Resources (HR) is useful for introducing basic topics. An extension to this schema supports Oracle Internet Directory demos; A second schema, Order Entry (OE), is useful for dealing with matters of intermediate complexity. Many data types are available in this schema, including non-scalar data types; The Online Catalog (OC) subschema is a collection of object-relational database objects built inside the OE schema; The Product Media (PM) schema is dedicated to multimedia data types; The Sales History (SH) schema is designed to allow for demos with large amounts of data. An extension to this schema provides support for advanced analytic processing. The HR schema consists of seven tables: regions, countries, locations, departments, employees, jobs, and job_histories. This book only implements HR schema, since the other schemas will be implemented in the next books. PROJECT 4: FULL SOURCE CODE: SQL SERVER FOR STUDENTS AND DATA SCIENTISTS WITH PYTHON GUI In this project, we provide you with the SQL SERVER version of SQLite sample database named chinook. The chinook sample database is a good database for practicing with SQL, especially PostgreSQL. The detailed description of the database can be found on: https://www.sqlitetutorial.net/sqlite-sample-database/. The sample database consists of 11 tables: The employee table stores employees data such as employee id, last name, first name, etc. It also has a field named ReportsTo to specify who reports to whom; customers table stores customers data; invoices & invoice_items tables: these two tables store invoice data. The invoice table stores invoice header data and the invoice_items table stores the invoice line items data; The artist table stores artists data. It is a simple table that contains only the artist id and name; The album table stores data about a list of tracks. Each album belongs to one artist. However, one artist may have multiple albums; The media_type table stores media types such as MPEG audio and AAC audio files; genre table stores music types such as rock, jazz, metal, etc; The track table stores the data of songs. Each track belongs to one album; playlist & playlist_track tables: The playlist table store data about playlists. Each playlist contains a list of tracks. Each track may belong to multiple playlists. The relationship between the playlist table and track table is many-to-many. The playlist_track table is used to reflect this relationship. In this project, you will write Python script to create every table and insert rows of data into each of them. You will develop GUI with PyQt5 to each table in the database. You will also create GUI to plot: case distribution of order date by year, quarter, month, week, and day; the distribution of amount by year, quarter, month, week, day, and hour; the bottom/top 10 sales by employee, the bottom/top 10 sales by customer, the bottom/top 10 sales by customer, the bottom/top 10 sales by artist, the bottom/top 10 sales by genre, the bottom/top 10 sales by play list, the bottom/top 10 sales by customer city, the bottom/top 10 sales by customer city, the bottom/top 10 sales by customer city, the payment amount by month with mean and EWM, the average payment amount by every month, and amount payment in all years.




DATA VISUALIZATION AND DATA ANALYTICS PROJECTS WITH MYSQL, SQLITE, POSTGRESQL, AND SQL SERVER USING PYTHON GUI


Book Description

PROJECT 1: MYSQL FOR DATA ANALYSIS AND VISUALIZATION WITH PYTHON GUI In this project, you will use the Northwind database which is a sample database that was originally created by Microsoft and used as the basis for their tutorials in a variety of database products for decades. The Northwind database contains the sales data for a fictitious company called “Northwind Traders,” which imports and exports specialty foods from around the world. The Northwind database is an excellent tutorial schema for a small-business ERP, with customers, orders, inventory, purchasing, suppliers, shipping, employees, and single-entry accounting. The Northwind dataset includes sample data for the following: Suppliers: Suppliers and vendors of Northwind; Customers: Customers who buy products from Northwind; Employees: Employee details of Northwind traders; Products: Product information; Shippers: The details of the shippers who ship the products from the traders to the end-customers; Orders and Order_Details: Sales Order transactions taking place between the customers & the company. The Northwind sample database includes 11 tables and the table relationships are showcased in the following entity relationship diagram. In this project, you will write Python script to create every table and insert rows of data into each of them. You will develop GUI with PyQt5 to each table in the database. You will also create GUI to plot: case distribution of order date by year, quarter, month, week, day, and hour; the distribution of amount by year, quarter, month, week, day, and hour; the distribution of bottom 10 sales by product, top 10 sales by product, bottom 10 sales by customer, top 10 sales by customer, bottom 10 sales by supplier, top 10 sales by supplier, bottom 10 sales by customer country, top 10 sales by customer country, bottom 10 sales by supplier country, top 10 sales by supplier country, average amount by month with mean and ewm, average amount by every month, amount feature over june 1997, amount feature over 1998, and all amount feature. PROJECT 2: FULL SOURCE CODE: THE COMPLETE GUIDE TO LEARNING POSTGRESQL AND DATA SCIENCE WITH PYTHON GUI In this project, we provide you with the PostgreSQL version of SQLite sample database named chinook. The chinook sample database is a good database for practicing with SQL, especially PostgreSQL. The detailed description of the database can be found on: https://www.sqlitetutorial.net/sqlite-sample-database/. The sample database consists of 11 tables: The employee table stores employees data such as employee id, last name, first name, etc. It also has a field named ReportsTo to specify who reports to whom; customers table stores customers data; invoices & invoice_items tables: these two tables store invoice data. The invoice table stores invoice header data and the invoice_items table stores the invoice line items data; The artist table stores artists data. It is a simple table that contains only the artist id and name; The album table stores data about a list of tracks. Each album belongs to one artist. However, one artist may have multiple albums; The media_type table stores media types such as MPEG audio and AAC audio files; genre table stores music types such as rock, jazz, metal, etc; The track table stores the data of songs. Each track belongs to one album; playlist & playlist_track tables: The playlist table store data about playlists. Each playlist contains a list of tracks. Each track may belong to multiple playlists. The relationship between the playlist table and track table is many-to-many. The playlist_track table is used to reflect this relationship. In this project, you will write Python script to create every table and insert rows of data into each of them. You will develop GUI with PyQt5 to each table in the database. You will also create GUI to plot: case distribution of order date by year, quarter, month, week, and day; the distribution of amount by year, quarter, month, week, day, and hour; the bottom/top 10 sales by employee, the bottom/top 10 sales by customer, the bottom/top 10 sales by customer, the bottom/top 10 sales by artist, the bottom/top 10 sales by genre, the bottom/top 10 sales by play list, the bottom/top 10 sales by customer city, the bottom/top 10 sales by customer city, the bottom/top 10 sales by customer city, the payment amount by month with mean and EWM, the average payment amount by every month, and amount payment in all years. PROJECT 3: FULL SOURCE CODE: SQL SERVER FOR DATA ANALYTICS AND VISUALIZATION WITH PYTHON GUI This book uses SQL SERVER version of MySQL-based Sakila sample database. It is a fictitious database designed to represent a DVD rental store. The tables of the database include film, film_category, actor, customer, rental, payment and inventory among others. The Sakila sample database is intended to provide a standard schema that can be used for examples in books, tutorials, articles, samples, and so forth. Detailed information about the database can be found on website: https://dev.mysql.com/doc/index-other.html. In this project, you will develop GUI using PyQt5 to: read SQL SERVER database and every table in it; read every actor in actor table, read every film in films table; plot case distribution of film release year, film rating, rental duration, and categorize film length; plot rating variable against rental_duration variable in stacked bar plots; plot length variable against rental_duration variable in stacked bar plots; read payment table; plot case distribution of Year, Day, Month, Week, and Quarter of payment; plot which year, month, week, days of week, and quarter have most payment amount; read film list by joining five tables: category, film_category, film_actor, film, and actor; plot case distribution of top 10 and bottom 10 actors; plot which film title have least and most sales; plot which actor have least and most sales; plot which film category have least and most sales; plot case distribution of top 10 and bottom 10 overdue customers; plot which customer have least and most overdue days; plot which store have most sales; plot average payment amount by month with mean and EWM; and plot payment amount over June 2005. PROJECT 4: SQLITE FOR DATA ANALYSIS AND VISUALIZATION WITH PYTHON GUI In this project, you will use SQLite version of Northwind database which is a sample database that was originally created by Microsoft and used as the basis for their tutorials in a variety of database products for decades. The Northwind database contains the sales data for a fictitious company called “Northwind Traders,” which imports and exports specialty foods from around the world. The Northwind database is an excellent tutorial schema for a small-business ERP, with customers, orders, inventory, purchasing, suppliers, shipping, employees, and single-entry accounting. The Northwind dataset includes sample data for the following: Suppliers: Suppliers and vendors of Northwind; Customers: Customers who buy products from Northwind; Employees: Employee details of Northwind traders; Products: Product information; Shippers: The details of the shippers who ship the products from the traders to the end-customers; Orders and Order_Details: Sales Order transactions taking place between the customers & the company. The Northwind sample database includes 11 tables and the table relationships are showcased in the following entity relationship diagram. In this project, you will write Python script to create every table and insert rows of data into each of them. You will develop GUI with PyQt5 to each table in the SQLite database. You will also create GUI to plot: case distribution of order date by year, quarter, month, week, day, and hour; the distribution of amount by year, quarter, month, week, day, and hour; the distribution of bottom 10 sales by product, top 10 sales by product, bottom 10 sales by customer, top 10 sales by customer, bottom 10 sales by supplier, top 10 sales by supplier, bottom 10 sales by customer country, top 10 sales by customer country, bottom 10 sales by supplier country, top 10 sales by supplier country, average amount by month with mean and ewm, average amount by every month, amount feature over June 1997, amount feature over 1998, and all amount feature.




Relational Database Systems


Book Description

This book is specially written for students of Computer Engineering (CE) and Information Technology. Also every one with interest in Database Management System can refer this book to get the knowledge about RDBMS. It covers virtually most of core features and some of the advanced features of RDBMS for administrator development including more than hands on examples tested through Oracle 9i. Most of code samples are presented in easy to use through Oracle. Throughout the book most of the features are explained through syntax and examples to develop state-of-the-art Database using advanced concepts like E.R. Modeling, Normalization, Transaction management, Security and other authentication features.




SQL for Data Scientists


Book Description

Jump-start your career as a data scientist—learn to develop datasets for exploration, analysis, and machine learning SQL for Data Scientists: A Beginner's Guide for Building Datasets for Analysis is a resource that’s dedicated to the Structured Query Language (SQL) and dataset design skills that data scientists use most. Aspiring data scientists will learn how to how to construct datasets for exploration, analysis, and machine learning. You can also discover how to approach query design and develop SQL code to extract data insights while avoiding common pitfalls. You may be one of many people who are entering the field of Data Science from a range of professions and educational backgrounds, such as business analytics, social science, physics, economics, and computer science. Like many of them, you may have conducted analyses using spreadsheets as data sources, but never retrieved and engineered datasets from a relational database using SQL, which is a programming language designed for managing databases and extracting data. This guide for data scientists differs from other instructional guides on the subject. It doesn’t cover SQL broadly. Instead, you’ll learn the subset of SQL skills that data analysts and data scientists use frequently. You’ll also gain practical advice and direction on "how to think about constructing your dataset." Gain an understanding of relational database structure, query design, and SQL syntax Develop queries to construct datasets for use in applications like interactive reports and machine learning algorithms Review strategies and approaches so you can design analytical datasets Practice your techniques with the provided database and SQL code In this book, author Renee Teate shares knowledge gained during a 15-year career working with data, in roles ranging from database developer to data analyst to data scientist. She guides you through SQL code and dataset design concepts from an industry practitioner’s perspective, moving your data scientist career forward!




MySQL Crash Course


Book Description

MySQL is one of the most popular database management systems available, powering everything from Internet powerhouses to individual corporate databases to simple end-user applications, and everything in between. This book will teach you all you need to know to be immediately productive with the latest version of MySQL. By working through 30 highly focused hands-on lessons, your MySQL Crash Course will be both easier and more effective than you'd have thought possible. Learn How To Retrieve and Sort Data Filter Data Using Comparisons, Regular Expressions, Full Text Search, and Much More Join Relational Data Create and Alter Tables Insert, Update, and Delete Data Leverage the Power of Stored Procedures and Triggers Use Views and Cursors Manage Transactional Processing Create User Accounts and Manage Security via Access Control




SQL in a Nutshell


Book Description

SQL in a Nutshell applies the eminently useful "Nutshell" format to Structured Query Language (SQL), the elegant--but complex--descriptive language that is used to create and manipulate large stores of data. For SQL programmers, analysts, and database administrators, the new second edition of SQL in a Nutshell is the essential date language reference for the world's top SQL database products. SQL in a Nutshell is a lean, focused, and thoroughly comprehensive reference for those who live in a deadline-driven world.This invaluable desktop quick reference drills down and documents every SQL command and how to use it in both commercial (Oracle, DB2, and Microsoft SQL Server) and open source implementations (PostgreSQL, and MySQL). It describes every command and reference and includes the command syntax (by vendor, if the syntax differs across implementations), a clear description, and practical examples that illustrate important concepts and uses. And it also explains how the leading commercial and open sources database product implement SQL. This wealth of information is packed into a succinct, comprehensive, and extraordinarily easy-to-use format that covers the SQL syntax of no less than 4 different databases.When you need fast, accurate, detailed, and up-to-date SQL information, SQL in a Nutshell, Second Edition will be the quick reference you'll reach for every time. SQL in a Nutshell is small enough to keep by your keyboard, and concise (as well as clearly organized) enough that you can look up the syntax you need quickly without having to wade through a lot of useless fluff. You won't want to work on a project involving SQL without it.




PostgreSQL: Up and Running


Book Description

Thinking of migrating to PostgreSQL? This updated guide helps you quickly understand and use the 9.3 release of this open source database system. You’ll not only learn about its unique enterprise-class features, but also discover that PostgeSQL is more than just a database system—it’s also an impressive application platform. Using numerous examples, this book shows you how to achieve tasks that are difficult or impossible in other databases. The second edition covers LATERAL queries, augmented JSON support, materialized views, and other key topics. If you’re an existing PostgreSQL user, you’ll pick up gems you may have missed along the way. Learn basic administration tasks, such as role management, database creation, backup, and restore Apply the psql command-line utility and the pgAdmin graphical administration tool Explore PostgreSQL tables, constraints, and indexes Learn powerful SQL constructs not generally found in other databases Use several different languages to write database functions Tune your queries to run as fast as your hardware will allow Query external and variegated data sources with Foreign Data Wrappers Learn how to replicate data, using built-in replication features




Learning SQL


Book Description

Updated for the latest database management systems -- including MySQL 6.0, Oracle 11g, and Microsoft's SQL Server 2008 -- this introductory guide will get you up and running with SQL quickly. Whether you need to write database applications, perform administrative tasks, or generate reports, Learning SQL, Second Edition, will help you easily master all the SQL fundamentals. Each chapter presents a self-contained lesson on a key SQL concept or technique, with numerous illustrations and annotated examples. Exercises at the end of each chapter let you practice the skills you learn. With this book, you will: Move quickly through SQL basics and learn several advanced features Use SQL data statements to generate, manipulate, and retrieve data Create database objects, such as tables, indexes, and constraints, using SQL schema statements Learn how data sets interact with queries, and understand the importance of subqueries Convert and manipulate data with SQL's built-in functions, and use conditional logic in data statements Knowledge of SQL is a must for interacting with data. With Learning SQL, you'll quickly learn how to put the power and flexibility of this language to work.




Modern Data Science with R


Book Description

From a review of the first edition: "Modern Data Science with R... is rich with examples and is guided by a strong narrative voice. What’s more, it presents an organizing framework that makes a convincing argument that data science is a course distinct from applied statistics" (The American Statistician). Modern Data Science with R is a comprehensive data science textbook for undergraduates that incorporates statistical and computational thinking to solve real-world data problems. Rather than focus exclusively on case studies or programming syntax, this book illustrates how statistical programming in the state-of-the-art R/RStudio computing environment can be leveraged to extract meaningful information from a variety of data in the service of addressing compelling questions. The second edition is updated to reflect the growing influence of the tidyverse set of packages. All code in the book has been revised and styled to be more readable and easier to understand. New functionality from packages like sf, purrr, tidymodels, and tidytext is now integrated into the text. All chapters have been revised, and several have been split, re-organized, or re-imagined to meet the shifting landscape of best practice.