Home > Store

MySQL, 5th Edition

Register your product to gain access to bonus material or receive a coupon.

MySQL, 5th Edition

eBook (Watermarked)

  • Your Price: $35.19
  • List Price: $43.99
  • Includes EPUB and PDF
  • About eBook Formats
  • This eBook includes the following formats, accessible from your Account page after purchase:

    ePub EPUB The open industry format known for its reflowable content and usability on supported mobile devices.

    Adobe Reader PDF The popular standard, used most often with the free Adobe® Reader® software.

    This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.


  • Copyright 2013
  • Dimensions: 7" x 9"
  • Pages: 1184
  • Edition: 5th
  • eBook (Watermarked)
  • ISBN-10: 0-13-303856-4
  • ISBN-13: 978-0-13-303856-9

MySQL, Fifth Edition by Paul DuBois
The definitive guide to using, programming and administering MySQL 5.5 and MySQL 5.6

MySQL provides a comprehensive guide to effectively using and administering the MySQL database management system (DBMS).

Author Paul DuBois describes everything from the basics of getting information into a database and formulating queries, to using MySQL with PHP or Perl to generate dynamic web pages, to writing your own programs that access MySQL databases, to administering MySQL servers. The book also includes a comprehensive reference section providing detailed information on MySQL’s structure, language, syntax, and APIs.

The fifth edition of this bestselling book has been meticulously revised and updated to thoroughly cover the latest features and capabilities of MySQL 5.5, as well as to add new coverage of features introduced with MySQL 5.6.

MySQL is an open source relational database management system (DBMS) that has experienced a phenomenal growth in popularity and use. Known for its speed and ease of use, MySQL has proven itself to be particularly well-suited for developing database-backed websites and applications. MySQL runs on anything from modest hardware all the way up to enterprise servers, and its performance rivals any database system put up against it.

Paul DuBois' MySQL, Fifth Edition, is the definitive guide to fully exploiting all the power and versatility of MySQL 5.5 and MySQL 5.6

Contents at a Glance

Part I: General MySQL Use
Chapter 1 Getting Started with MySQL
Chapter 2 Using SQL to Manage Data
Chapter 3 Data Types
Chapter 4 Views and Stored Programs
Chapter 5 Query Optimization

Part II: Using MySQL Programming Interfaces
Chapter 6 Introduction to MySQL Programming
Chapter 7 Writing MySQL Programs Using C
Chapter 8 Writing MySQL Programs Using Perl DBI
Chapter 9 Writing MySQL Programs Using PHP

Part III: MySQL Administration
Chapter 10 Introduction to MySQL Administration
Chapter 11 The MySQL Data Directory
Chapter 12 General MySQL Administration
Chapter 13 Security and Access Control
Chapter 14 Database Maintenance, Backups, and Replication

Part IV: Appendixes
Appendix A Software Required to Use This Book
Appendix B Data Type Reference
Appendix C Operator and Function Reference
Appendix D System, Status, and User Variable Reference
Appendix E SQL Syntax Reference
Appendix F MySQL Program Reference

Online Appendixes:
Appendix G C API ReferenceAppendix H Perl DBI API Reference
Appendix I PHP API Reference

Sample Content

Table of Contents


Part I: General MySQL Use

Chapter 1 Getting Started with MySQL

1.1 How MySQL Can Help You

1.2 A Sample Database

1.2.1 The U.S. Historical League Project

1.2.2 The Grade-Keeping Project

1.2.3 How the Sample Database Applies to You

1.3 Basic Database Terminology

1.3.1 Structural Terminology

1.3.2 Query Language Terminology

1.3.3 MySQL Architectural Terminology

1.4 A MySQL Tutorial

1.4.1 Obtaining the Sample Database Distribution

1.4.2 Preliminary Requirements

1.4.3 Establishing and Terminating Connections to the MySQL Server

1.4.4 Executing SQL Statements

1.4.5 Creating a Database

1.4.6 Creating Tables

1.4.7 Adding New Rows

1.4.8 Resetting the sampdb Database to a Known State

1.4.9 Retrieving Information

1.4.10 Deleting or Updating Existing Rows

1.5 Tips for Interacting with mysql

1.5.1 Simplifying the Connection Process

1.5.2 Issuing Statements with Less Typing

1.6 Where to Now?

Chapter 2 Using SQL to Manage Data

2.1 The Server SQL Mode

2.2 MySQL Identifier Syntax and Naming Rules

2.3 Case Sensitivity in SQL Statements

2.4 Character Set Support

2.4.1 Specifying Character Sets

2.4.2 Determining Character Set Availability and Current Settings

2.4.3 Unicode Support

2.5 Selecting, Creating, Dropping, and Altering Databases

2.5.1 Selecting Databases

2.5.2 Creating Databases

2.5.3 Dropping Databases

2.5.4 Altering Databases

2.6 Creating, Dropping, Indexing, and Altering Tables

2.6.1 Storage Engine Characteristics

2.6.2 Creating Tables

2.6.3 Dropping Tables

2.6.4 Indexing Tables

2.6.5 Altering Table Structure

2.7 Obtaining Database Metadata

2.7.1 Obtaining Metadata with SHOW

2.7.2 Obtaining Metadata with INFORMATION_SCHEMA

2.7.3 Obtaining Metadata from the Command Line

2.8 Performing Multiple-Table Retrievals with Joins

2.8.1 Inner Joins

2.8.2 Qualifying References to Columns from Joined Tables

2.8.3 Left and Right (Outer) Joins

2.9 Performing Multiple-Table Retrievals with Subqueries

2.9.1 Subqueries with Relative Comparison Operators

2.9.2 IN and NOT IN Subqueries

2.9.3 ALL, ANY, and SOME Subqueries

2.9.4 EXISTS and NOT EXISTS Subqueries

2.9.5 Correlated Subqueries

2.9.6 Subqueries in the FROM Clause

2.9.7 Rewriting Subqueries as Joins

2.10 Performing Multiple-Table Retrievals with UNION

2.11 Multiple-Table Deletes and Updates

2.12 Performing Transactions

2.12.1 Using Transactions to Ensure Safe Statement Execution

2.12.2 Using Transaction Savepoints

2.12.3 Transaction Isolation

2.13 Foreign Keys and Referential Integrity

2.14 Using FULLTEXT Searches

2.14.1 Natural Language FULLTEXT Searches

2.14.2 Boolean Mode FULLTEXT Searches

2.14.3 Query Expansion FULLTEXT Searches

2.14.4 Configuring the FULLTEXT Search Engine

Chapter 3 Data Types

3.1 Data Value Categories

3.1.1 Numeric Values

3.1.2 String Values

3.1.3 Temporal (Date and Time) Values

3.1.4 Spatial Values

3.1.5 Boolean Values

3.1.6 The NULL Value

3.2 MySQL Data Types

3.2.1 Data Type Overview

3.2.2 Specifying Column Types in Table Definitions

3.2.3 Specifying Column Default Values

3.2.4 Numeric Data Types

3.2.5 String Data Types

3.2.6 Temporal (Date and Time) Data Types

3.3 How MySQL Handles Invalid Data Values

3.4 Working with Sequences

3.4.1 General AUTO_INCREMENT Properties

3.4.2 Storage Engine-Specific AUTO_INCREMENT Properties

3.4.3 Issues to Consider with AUTO_INCREMENT Columns

3.4.4 Tips for Working with AUTO_INCREMENT Columns

3.4.5 Generating Sequences Without AUTO_INCREMENT

3.5 Expression Evaluation and Type Conversion

3.5.1 Writing Expressions

3.5.2 Type Conversion

3.6 Choosing Data Types

3.6.1 What Kind of Values Will the Column Hold?

3.6.2 Do Your Values Lie Within Some Particular Range?

Chapter 4 Views and Stored Programs

4.1 Using Views

4.2 Using Stored Programs

4.2.1 Compound Statements and Statement Delimiters

4.2.2 Stored Functions and Procedures

4.2.3 Triggers

4.2.4 Events

4.3 Security for Views and Stored Programs

Chapter 5 Query Optimization

5.1 Using Indexing

5.1.1 Benefits of Indexing

5.1.2 Costs of Indexing

5.1.3 Choosing Indexes

5.2 The MySQL Query Optimizer

5.2.1 How the Optimizer Works

5.2.2 Using EXPLAIN to Check Optimizer Operation

5.3 Choosing Data Types for Efficient Queries

5.4 Choosing Table Storage Formats for Efficient Queries

5.5 Loading Data Efficiently

5.6 Scheduling, Locking, and Concurrency

Part II: Using MySQL Programming Interfaces

Chapter 6 Introduction to MySQL Programming

6.1 Why Write Your Own MySQL Programs?

6.2 APIs Available for MySQL

6.2.1 The C API

6.2.2 The Perl DBI API

6.2.3 The PHP API

6.3 Choosing an API

6.3.1 Execution Environment

6.3.2 Performance

6.3.3 Development Time

6.3.4 Portability

Chapter 7 Writing MySQL Programs Using C

7.1 Compiling and Linking Client Programs

7.2 Connecting to the Server

7.3 Handling Errors and Processing Command Options

7.3.1 Checking for Errors

7.3.2 Getting Connection Parameters at Runtime

7.3.3 Incorporating Option Processing into a Client Program

7.4 Processing SQL Statements

7.4.1 Handling Statements That Modify Rows

7.4.2 Handling Statements That Return a Result Set

7.4.3 A General-Purpose Statement Handler

7.4.4 Alternative Approaches to Statement Processing

7.4.5 mysql_store_result() Versus mysql_use_result()

7.4.6 Using Result Set Metadata

7.4.7 Encoding Special Characters and Binary Data

7.5 An Interactive Statement-Execution Program

7.6 Writing Clients That Include SSL Support

7.7 Using Multiple-Statement Execution

7.8 Using Server-Side Prepared Statements

7.9 Using Prepared CALL Support

Chapter 8 Writing MySQL Programs Using Perl DBI

8.1 Perl Script Characteristics

8.2 Perl DBI Overview

8.2.1 DBI Data Types

8.2.2 A Simple DBI Script

8.2.3 Handling Errors

8.2.4 Handling Statements That Modify Rows

8.2.5 Handling Statements That Return a Result Set

8.2.6 Quoting Special Characters in Statement Strings

8.2.7 Placeholders and Prepared Statements

8.2.8 Binding Query Results to Script Variables

8.2.9 Specifying Connection Parameters

8.2.10 Debugging

8.2.11 Using Result Set Metadata

8.2.12 Performing Transactions

8.3 Putting DBI to Work

8.3.1 Generating the Historical League Directory

8.3.2 Sending Membership Renewal Notices

8.3.3 Historical League Member Entry Editing

8.3.4 Finding Historical League Members with Common Interests

8.3.5 Putting the Historical League Directory Online

8.4 Using DBI in Web Applications

8.4.1 Setting Up Apache for CGI Scripts

8.4.2 A Brief CGI.pm Primer

8.4.3 Connecting to the MySQL Server from Web Scripts

8.4.4 A Web-Based Database Browser

8.4.5 A Grade-Keeping Project Score Browser

8.4.6 Historical League Common-Interest Searching

Chapter 9 Writing MySQL Programs Using PHP

9.1 PHP Overview

9.1.1 A Simple PHP Script

9.1.2 Using PHP Library Files for Code Encapsulation

9.1.3 A Simple Data-Retrieval Page

9.1.4 Processing Statement Results

9.1.5 Testing for NULL Values in Query Results

9.1.6 Using Prepared Statements

9.1.7 Using Placeholders to Handle Data Quoting Issues

9.1.8 Handling Errors

9.2 Putting PHP to Work

9.2.1 An Online Score-Entry Application

9.2.2 Creating an Interactive Online Quiz

9.2.3 Historical League Online Member Entry Editing

Part III: MySQL Administration

Chapter 10 Introduction to MySQL Administration

10.1 MySQL Components

10.2 General MySQL Administration

10.3 Access Control and Security

10.4 Database Maintenance, Backups, and Replication

Chapter 11 The MySQL Data Directory

11.1 The Data Directory Location

11.2 Structure of the Data Directory

11.2.1 How the MySQL Server Provides Access to Data

11.2.2 Representation of Databases in the Filesystem

11.2.3 Representation of Tables in the Filesystem

11.2.4 Representation of Views and Triggers in the Filesystem

11.2.5 How SQL Statements Map onto Table File Operations

11.2.6 Operating System Constraints on Database Object Names

11.2.7 Factors That Affect Maximum Table Size

11.2.8 Implications of Data Directory Structure for System Performance

11.2.9 MySQL Status and Log Files

11.3 Relocating Data Directory Contents

11.3.1 Relocation Methods

11.3.2 Relocation Precautions

11.3.3 Assessing the Effect of Relocation

11.3.4 Relocating the Entire Data Directory

11.3.5 Relocating Individual Databases

11.3.6 Relocating Individual Tables

11.3.7 Relocating the InnoDB System Tablespace

11.3.8 Relocating Status and Log Files

Chapter 12 General MySQL Administration

12.1 Securing a New MySQL Installation

12.1.1 Establishing Passwords for the Initial MySQL Accounts

12.1.2 Setting Up Passwords for Additional Servers

12.2 Arranging for MySQL Server Startup and Shutdown

12.2.1 Running the MySQL Server On Unix

12.2.2 Running the MySQL Server On Windows

12.2.3 Specifying Server Startup Options

12.2.4 Controlling How the Server Listens for Connections

12.2.5 Stopping the Server

12.2.6 Regaining Control of the Server When You Cannot Connect to It

12.3 Using System and Status Variables

12.3.1 Checking and Setting System Variable Values

12.3.2 Checking Status Variable Values

12.4 The Plugin Interface

12.5 Storage Engine Configuration

12.5.1 Selecting Storage Engines

12.5.2 Selecting a Default Storage Engine

12.5.3 Configuring the InnoDB Storage Engine

12.6 Globalization Issues

12.6.1 Configuring Time Zone Support

12.6.2 Selecting the Default Character Set and Collation

12.6.3 Selecting the Language for Error Messages

12.6.4 Selecting the Locale

12.7 Server Tuning

12.7.1 General-Purpose System Variables for Server Tuning

12.7.2 Storage Engine Tuning

12.7.3 Using the Query Cache

12.7.4 Hardware Optimizations

12.8 Server Logs

12.8.1 The Error Log

12.8.2 The General Query Log

12.8.3 The Slow Query Log

12.8.4 The Binary Log

12.8.5 The Relay Log

12.8.6 Using Log Tables

12.8.7 Log Management

12.9 Running Multiple Servers

12.9.1 General Multiple Server Issues

12.9.2 Configuring and Compiling Different Servers

12.9.3 Strategies for Specifying Startup Options

12.9.4 Using mysqld_multi for Server Management

12.9.5 Running Multiple Servers on Windows

12.9.6 Running Clients of Multiple Servers

12.10 Updating MySQL

Chapter 13 Security and Access Control

13.1 Securing Filesystem Access to MySQL

13.1.1 How to Steal Data

13.1.2 Securing Your MySQL Installation

13.2 Managing MySQL User Accounts

13.2.1 High-Level MySQL Account Management

13.2.2 Granting Privileges

13.2.3 Displaying Account Privileges

13.2.4 Revoking Privileges

13.2.5 Changing Passwords or Resetting Lost Passwords

13.2.6 Avoiding Access-Control Risks

13.2.7 Pluggable Authentication and Proxy Users

13.3 Grant Table Structure and Contents

13.3.1 Grant Table Scope-of-Access Columns

13.3.2 Grant Table Privilege Columns

13.3.3 Grant Table Authentication Columns

13.3.4 Grant Table SSL-Related Columns

13.3.5 Grant Table Resource Management Columns

13.4 How the Server Controls Client Access

13.4.1 Scope Column Contents

13.4.2 Statement Access Verification

13.4.3 Scope Column Matching Order

13.4.4 A Privilege Puzzle

13.5 Setting Up Secure Connections Using SSL

Chapter 14 Database Maintenance, Backups, and Replication

14.1 Principles of Preventive Maintenance

14.2 Performing Database Maintenance with the Server Running

14.2.1 Locking Individual Tables for Read-Only or Read/Write Access

14.2.2 Locking All Databases for Read-Only Access

14.3 General Preventive Maintenance

14.3.1 Using the Server’s Auto-Recovery Capabilities

14.3.2 Scheduling Preventive Maintenance

14.4 Making Database Backups

14.4.1 Storage Engine Portability Characteristics

14.4.2 Making Text Backups with mysqldump

14.4.3 Making Binary Database Backups

14.4.4 Backing Up InnoDB Tables

14.5 Copying Databases to Another Server

14.5.1 Copying Databases Using a Backup File

14.5.2 Copying Databases from One Server to Another

14.6 Checking and Repairing Database Tables

14.6.1 Checking Tables with CHECK TABLE

14.6.2 Repairing Tables with REPAIR TABLE

14.6.3 Using mysqlcheck to Check and Repair Tables

14.7 Using Backups for Data Recovery

14.7.1 Recovering Entire Databases

14.7.2 Recovering Individual Tables

14.7.3 Re-Executing Statements in Binary Log Files

14.7.4 Coping with InnoDB Auto-Recovery Problems

14.8 Setting Up Replication Servers

14.8.1 How Replication Works

14.8.2 Establishing a Master-Slave Replication Relationship

14.8.3 Binary Logging Formats

14.8.4 Using a Replication Slave for Making Backups

Part IV: Appendixes

Note: Appendixes G, H, and I are located online and are accessible either by registering this book at informit.com/register or visiting www.kitebird.com/mysql-book

Appendix A Software Required to Use This Book

A.1 Obtaining the sampdb Sample Database Distribution

A.2 Obtaining MySQL and Related Software

A.3 MySQL Installation Notes

A.3.1 Creating a Login Account for the MySQL User

A.3.2 Installing MySQL

A.3.3 Setting Your PATH Environment Variable

A.3.4 Initializing the Data Directory and Grant Tables

A.3.5 Starting the Server

A.3.6 Initializing Other System Tables

A.4 Perl DBI Installation Notes

A.5 PHP and PDO Installation Notes

Appendix B Data Type Reference

B.1 Numeric Types

B.1.1 Integer Types

B.1.2 Fixed-Point Types

B.1.3 Floating-Point Types

B.1.4 BIT Type

B.2 String Types

B.2.1 Binary String Types

B.2.2 Nonbinary String Types

B.2.3 ENUM and SET Types

B.3 Temporal (Date and Time) Types

Appendix C Operator and Function Reference

C.1 Operators

C.1.1 Operator Precedence

C.1.2 Grouping Operators

C.1.3 Arithmetic Operators

C.1.4 Comparison Operators

C.1.5 Bit Operators

C.1.6 Logical Operators

C.1.7 Cast Operators

C.1.8 Pattern-Matching Operators

C.2 Functions

C.2.1 Comparison Functions

C.2.2 Cast Functions

C.2.3 Numeric Functions

C.2.4 String Functions

C.2.5 Date and Time Functions

C.2.6 Summary Functions

C.2.7 Security and Compression Functions

C.2.8 Advisory Locking Functions

C.2.9 IP Address Functions

C.2.10 XML Functions

C.2.11 Spatial Functions

C.2.12 Miscellaneous Functions

Appendix D System, Status, and User Variable Reference

D.1 System Variables

D.1.1 InnoDB System Variables

D.2 Status Variables

D.2.1 InnoDB Status Variables

D.2.2 Query Cache Status Variables

D.2.3 SSL Status Variables

D.3 User-Defined Variables

Appendix E SQL Syntax Reference

E.1 SQL Statement Syntax (Noncompound Statements)

E.2 SQL Statement Syntax (Compound Statements)

E.2.1 Control Structure Statements

E.2.2 Declaration Statements

E.2.3 Cursor Statements

E.2.4 Condition-Handling Statements

E.3 Comment Syntax

Appendix F MySQL Program Reference

F.1 Displaying a Program’s Help Message

F.2 Specifying Program Options

F.2.1 Standard MySQL Program Options

F.2.2 Option Files

F.2.3 Environment Variables

F.3 myisamchk

F.3.1 Standard Options Supported by myisamchk

F.3.2 Options Specific to myisamchk

F.3.3 Variables for myisamchk

F.4 mysql

F.4.1 Standard Options Supported by mysql

F.4.2 Options Specific to mysql

F.4.3 Variables for mysql

F.4.4 mysql Commands

F.4.5 mysql Prompt Definition Sequences

F.5 mysql.server

F.5.1 Options Supported by mysql.server

F.6 mysql_config

F.6.1 Options Specific to mysql_config

F.7 mysql_install_db

F.7.1 Standard Options Supported by mysql_install_db

F.7.2 Options Specific to mysql_install_db

F.8 mysql_upgrade

F.8.1 Standard Options Supported by mysql_upgrade

F.8.2 Options Specific to mysql_upgrade

F.9 mysqladmin

F.9.1 Standard Options Supported by mysqladmin

F.9.2 Options Specific to mysqladmin

F.9.3 Variables for mysqladmin

F.9.4 mysqladmin Commands

F.10 mysqlbinlog

F.10.1 Standard Options Supported by mysqlbinlog

F.10.2 Options Specific to mysqlbinlog

F.10.3 Variables for mysqlbinlog

F.11 mysqlcheck

F.11.1 Standard Options Supported by mysqlcheck

F.11.2 Options Specific to mysqlcheck

F.12 mysqld 1

F.12.1 Standard Options Supported by mysqld

F.12.2 Options Specific to mysqld

F.12.3 Variables for mysqld

F.13 mysqld_multi

F.13.1 Standard Options Supported by mysqld_multi

F.13.2 Options Specific to mysqld_multi

F.14 mysqld_safe

F.14.1 Standard Options Supported by mysqld_safe

F.14.2 Options Specific to mysqld_safe

F.15 mysqldump

F.15.1 Standard Options Supported by mysqldump

F.15.2 Options Specific to mysqldump

F.15.3 Data Format Options for mysqldump

F.15.4 Variables for mysqldump

F.16 mysqlimport

F.16.2 Options Specific to mysqlimport

F.16.3 Data Format Options for mysqlimport

F.17 mysqlshow

F.17.1 Standard Options Supported by mysqlshow

F.17.2 Options Specific to mysqlshow

F.18 perror

F.18.1 Standard Options Supported by perror

Appendix G C API Reference (Online Only) 

G.1 Compiling and Linking

G.2 C API Data Structures

G.2.1 Scalar Data Types

G.2.2 Nonscalar Data Structures

G.2.3 Accessor Macros

G.3 C API Functions

G.3.1 Client Library Initialization and Termination Routines

G.3.2 Connection Management Routines

G.3.3 Error-Reporting Routines

G.3.4 Statement Construction and Execution Routines

G.3.5 Result Set Processing Routines

G.3.6 Multiple Result Set Routines

G.3.7 Information Routines

G.3.8 Transaction Control Routines

G.3.9 Prepared Statement Routines

G.3.10 Administrative Routines

G.3.11 Threaded Client Routines

G.3.12 Debugging Routines

Appendix H Perl DBI API Reference (Online Only)

H.1 Writing Scripts

H.2 DBI Methods

H.2.1 DBI Class Methods

H.2.2 Database-Handle Methods

H.2.3 Statement-Handle Methods

H.2.4 General Handle Methods

H.2.5 MySQL-Specific Administrative Methods

H.3 DBI Utility Functions

H.4 DBI Attributes

H.4.1 Database-Handle Attributes

H.4.2 General Handle Attributes

H.4.3 MySQL-Specific Database-Handle Attributes

H.4.4 Statement-Handle Attributes

H.4.5 MySQL-Specific Statement-Handle Attributes

H.4.6 Dynamic Attributes

H.5 DBI Environment Variables

Appendix I PHP API Reference (Online Only) 

I.1 Writing PHP Scripts

I.2 PDO Classes

I.3 PDO Methods

I.3.1 PDO Class Methods

I.3.2 PDOStatement Object Methods

I.3.3 PDOException Object Methods

I.3.4 PDO Constants

Note: Appendixes G, H, and I are located online and are accessible either by registering this book at informit.com/register or visiting www.kitebird.com/mysql-book


Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information

To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.


Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.


If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information

Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.


This site is not directed to children under the age of 13.


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information

If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information

Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents

California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure

Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact

Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice

We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020