This is a pretty accurate table of contents, give or take a sub-heading or two. Each hour also has a summary, quiz questions, and one or more activities.
PART I: INTRODUCTION TO MYSQL AND RELATIONAL DATABASES
Hour 1: Introducing MySQL
- What Is a Relational Database?
- What Is MySQL?
- Main Features of MySQL
- MySQL Distributions
- MySQL Licensing and Support
- Communicating with MySQL
- PHP
- Perl
- ODBC
- Additional Languages
Hour 2: Understanding Database Terminology
- Basic Elements Explained
- Understanding Tables
- Understanding Fields
- Understanding Records
- Understanding Indexes
Hour 3: Learning the Database Design Process
- Types of Table Relationships
- One-to-One Relationships
- One-to-Many Relationships
- Many-to-Many Relationships
- Understanding Normalization
- Problems with the Flat Table
- First Normal Form
- Second Normal Form
- Third Normal Form
- Following the Design Process
PART II: SETTING UP YOUR ENVIRONMENT
Hour 4: Using the MySQL Client
- Working with the MySQL Command-Line Interface
- Starting the MySQL Monitor in Windows
- Starting the MySQL Monitor on Linux/UNIX
- Issuing Commands
- Working with the MySQL Administration Tools
- Using mysqladmin
- Using mysqldump
- Other Interfaces to MySQL
- phpMyAdmin
- MySQL-Front
- MySQLManager
Hour 5: Securing MySQL
- Basic Security Guidelines
- Starting MySQL
- Securing Your MySQL Connection
- Introducing the MySQL Privilege System
- The Two-Step Authentication Process
- Working with User Privileges
- Adding Users
- Removing Privileges
PART III: LEARNING TO PLAN FOR YOUR DATABASE-DRIVEN APPLICATIONS
Hour 6: Planning and Creating Your Database
- Determine Your Goals
- Conceptualize the Tables
- Determining Relationships
- Creating the Database
- Define the User Privileges
Hour 7: Creating Your Database Tables - Part I
- Learning the MySQL Data Types
- Numeric Data Types
- Date and Time Types
- String Types
- Learning the Table Creation Syntax
- Naming Your Fields
- Preliminary Table Creation Statements
Hour 8: Creating Your Database Tables - Part II
- Identifying Keys in Your Tables
- Primary Keys
- Unique Keys
- Adding Indexes to Your Tables
- When to Use, or Not to Use, Keys and Indexes
- Issuing Your Table Creation Statements
- Creating Tables in the MySQL Monitor
- Using SQL Commands from External Files
PART IV: WORKING WITH YOUR TABLES
Hour 9: Populating Your Database Tables
- Using the INSERT Command
- A Closer Look at INSERT
- Using Function Results in INSERT Statements
- Importing Data from Other Databases
- Preparing Data for Import
- Using Data from a Flat File
- Using Data from Microsoft Access
- Using mysqlimport
- Using the LOAD DATA INFILE Command
Hour 10: Selecting Data from Your Tables
- Using the SELECT Command
- Ordering SELECT Results
- Limiting Your Results
- Using Some Aggregate Functions with SELECT
- Using WHERE in Your Queries
- Using Operators in WHERE Clauses
- String Comparison Using LIKE
Hour 11: Advanced Usage of SELECT Statements
- Using the GROUP BY Clause
- Using SELECT Within INSERT Statements
- Selecting from Multiple Tables
- Using JOIN
Hour 12: Modifying and Deleting Data
- Using the UPDATE Command to Modify Records
- Conditional UPDATEs
- Using Existing Column Values with UPDATE
- Using Functions in UPDATE Statements
- Using the REPLACE Command
- Using the DELETE Command
- Optimizing DELETE Queries
- Conditional DELETE
Hour 13: More About DELETE
- Deleting Related Records
- Listing Tables and Databases Before Deleting Them
- Using mysqlshow
- Using the SHOW Command
- Using the DROP Command
- DROP TABLE
- DROP DATABASE
Hour 14: Modifying Table Structure
- Using DESCRIBE to View Table Structure
- Using the ALTER Command
- Adding Fields, Indexes, and Keys
- Deleting Fields, Indexes, and Keys
PART V: USING BUILT-IN FUNCTIONS IN MYSQL QUERIES
Hour 15: Using MySQL String Functions
- Frequently Used String Functions
- Length and Concatenation Functions
- Trimming and Padding Functions
- Location and Position Functions
- Substring Functions
- String Modification Functions
- Obscure String Functions
Hour 16: Using MySQL Numeric Functions
- Using Numeric Functions in Queries
- Basic Arithmetic Operations
- Mathematical Functions
- Trigonometric Functions
- Rounding Functions
Hour 17: Using MySQL Date and Time Functions
- Using Date and Time Functions in Queries
- Working with Days
- Working with Months and Years
- Working with Weeks
- Working with Hours, Minutes, and Seconds
PART VI: USING TRANSACTIONS
Hour 18: Transactions Overview
- What Are Transactions?
- Properties of Transactions
- COMMIT and ROLLBACK
- Row-Level Locking
- Transaction-Safe Table Types in MySQL
- BerkeleyDB
- InnoDB
- Gemini
Hour 19: Practical Transaction Usage
- Converting Tables to Transaction-Safe Table Types
- Using Transactions in Your Applications
- When to Use Transaction-Safe Tables
- Modifying the contactDB Schema
- Programming Transactions in the Contact Management System
PART VII: ADMINISTERING YOUR MYSQL SERVER
Hour 20: Optimizing and Tuning Your Database
- Building an Optimized Platform
- Using the benchmark() Function
- MySQL Startup Options
- Key Startup Parameters
- Optimizing Your Table Structure
- Optimizing Your Queries
Hour 21: Backing Up and Restoring Your Database
- Database Backup Overview
- Using mysqlhotcopy
- Using the BACKUP TABLE and RESTORE TABLE Commands
- Using myisamchk
Hour 22: Basic Administrative Commands
- Using the FLUSH Command
- Using the SHOW Command
- Retrieving Information about Databases and Tables
- Retrieving Table Structure Information
- Retrieving System Status
PART VIII: INTERFACING WITH MYSQL
Hour 23: Using MySQL with Perl
- Getting Access to Perl
- Accessing the Perl DBI and MySQL DBD
- Quick Perl Test
- Connecting to MySQL with Perl
- Making the Initial Connection
- Executing Queries
- Working with MySQL Data
- Inserting Data with Perl
- Retrieving Data with Perl
Hour 24: Using MySQL with PHP
- Getting Access to PHP
- How PHP Works
- Variables and Types in PHP
- Operators in PHP
- Control Structures in PHP
- Connecting to MySQL with PHP
- Using mysql_connect()
- Executing Queries
- Retrieving Error Messages
- Working with MySQL Data
- Inserting Data with PHP
- Retrieving Data with PHP
APPENDICES
Appendix A: Installing MySQL
- How to Get MySQL
- Installing MySQL 3.23 or 4.0 on Windows
- Installing MySQL 3.23 or 4.0 on Linux/UNIX
- Troubleshooting Your Installation
Appendix B: Using MyODBC
- Installing MyODBC on Windows
- MyODBC Configuration
- Importing/Exporting Data with MySQL and Microsoft Access
- Exporting from Microsoft Access to MySQL
- Importing into Microsoft Access from MySQL
Appendix C: Reserved Words
Appendix D: Practical MySQL/PHP Examples
- Creating Access Logs and Reports
- The Basic Hit Counter
- Souped-up Hit Counter and Report
- Creating an Online Poll
- Storing Uploaded Files in Your Database
- Retrieving Images Files from Your Database
