How To Take This Class

Course Overview

In this MySQL Database Development course, students will learn how to design and build a MySQL database. MySQL is the open source community's most popular Relational Database Management System (RDBMS) and is a key part of LAMP – Linux™, Apache™, MySQL®, PHP/Perl/Python®. Many Fortune 500 companies adopt MySQL to reap the benefits of an open source, platform-independent RDMS, such as simplifying conversion from other platforms and lowering database Total Cost of Ownership by 90%. In this course, students will explore database fundamentals as well as features specific to MySQL. They will also learn the basics of MySQL use, programming of stored routines and triggers, correct database design and database optimization. Finally students will explore how to connect to MySQL through a variety of different APIs.

Course Prerequisites

Some prior experience programming in any language, such as HTML, is recommended but not required.

Course Audience

This course is designed for application and web developers, or system administrators who want to learn more about building databases with MySQL.

What You'll Learn

Upon successful completion of this course, students will be able to:
  • Describe MySQL's benefits and features
  • Configure the MySQL server
  • Perform database design and normalization
  • Work with the command-line mysql tool
  • Set up and manage data and data schemas in MySQL
  • Use SELECT statements to retrieve data from a database
  • Combine data from multiple sources
  • Utilize more complex SQL functionality
  • Understand the MySQL storage engine types and their applicability
  • Use some of the more common MySQL standalone tools
  • Write and call stored procedures

Course Duration

3 Days

Course Outline

  1. Course Introduction
    • Course Objectives
    • Course Overview
    • Suggested References
  2. Introduction to Database Concepts and MySQL
    • Features of a Relational Database
    • Where does SQL Fit in?
    • Database Access
    • Why MySQL?
    • The History of MySQL
    • MySQL Software Features
  3. Database Design
    • Developing the Design of a Database
    • Database Entities
    • The Primary Key
    • Foreign Key Relationships
    • Data Models and Normalization
    • Second Normal Form (2NF)
    • Third Normal Form (3NF) and Beyond
    • Translating a Data Model into a Database Design
  4. MySQL Client Software and the mysql Command-Line Tool
    • Available Client Software
    • Environment Variable
    • Running the mysql Client
    • Customizing the mysql Prompt
    • mysql Commands
    • Using the Help Command
    • Some Useful mysql Options
    • Working with a Database
    • Examining Table Definitions
    • Other SHOW Options
  5. DDL – Data Definition Language
    • DDL & DML Overview
    • Building Table Definitions
    • Identifiers
    • Column Definitions
    • Numeric Datatypes
    • ENUM and SET Types
    • Date and Time Datatypes
    • AUTO_INREMENT
    • UNIQUE Constraints
    • Primary Keys
    • Modifying Tables
    • Foreign Keys
    • Renaming and Dropping Tables
  6. DML – Data Manipulation Language
    • DDL & DML Overview
    • Data Values: Numbers
    • Data Values: Strings
    • Working with NULL Values
    • Bulk Loading of Data
    • Bulk Data Format
    • Working with Special Values in Bulk Data
    • Adding New Table Rows with INSERT
    • Copying Rows
    • UPDATE
    • REPLACE
    • Removing Table Rows
    • Transactions
    • InnoDB: Using Transactional Processing
    • Locking Tables
  7. Queries – The SELECT Statement
    • SELECT Syntax Summary
    • Choosing Data Sources and Destinations for SELECT
    • Presentation of Table Data with SELECT
    • Being Selective about Which Rows are Displayed
    • User-Defined Variables
    • Expressions and Functions
    • Control Flow Operators and Functions
    • Function Names
    • Comparison Operators and Functions
    • String Functions
    • Numeric Operators and Functions
    • Date and Time Functions
    • Forcing Data Interpretation
    • Miscellaneous Functions
  8. Building a Result Set from Several Sources
    • UNION
    • Combining Data from Two Tables
    • Using WHERE to Choose Matching Rows
    • INNER JOIN
    • OUTER JOINs
    • Multiple Tables, Fields, Joins, and Ordering
    • SELECT * and USING Columns
  9. Advanced SQL Techniques
    • MySQL Pattern Matching
    • Multipliers, Anchors, and Grouping
    • GROUP BY
    • Aggregates
    • Subqueries
    • Subquery Comparisons and Quantifiers
    • Other Subqueries
    • Subquery Alternatives and Restrictions
    • InnoDB Multi-Table Updates and Deletes
    • Building a VIEW
    • Updatable VIEWs
  10. MySQL Storage Engines
    • Storage Engine Overview
    • Other Storage Engine Types
    • The Basics of Commonly Used Storage Engines
    • MyISAM Limits and Features
    • MyISAM Data File Format
    • InnoDB Data Management
    • MEMORY and FEDERATED
    • MERGE and ARCHIVE
  11. Utilities
    • Client Overview
    • Specifying Options for Command-Line Clients
    • Client Option Files
    • Checking Tables with myisamchk and mysqlchk
    • Using myisamchk and mysqlchk for Repairs
    • mysqlshow and mysqlimport
    • Using mysqldump
    • The MySQL Workbench – General
    • MySQL Workbench - Execution
    • Data Modeling with the Workbench
    • SQL Development
    • Third Party Tools
  12. Database Programmability
    • Stored Routines: Basic Concepts
    • Routine Creation and Use
    • Flow Control Statement
    • Writing Blocks of Code
    • Triggers
    • Stored Routines, Triggers, and the
    • Binary Log
    • Table HANDLERs
    • Prepared Statements
  13. Optimization and Performance Tuning
    • Optimizing Your Database
    • Table Partitioning
    • Optimizing Queries
    • The Use of Indexes to Support Queries
    • Thinking about JOIN Queries
    • Query Sorts, Indexes, and ShortCircuiting
    • INSERT, UPDATE, DELETE, and Table Locks
    • Some General Optimizations
    • Optimizations Specific to MyISAM
    • Optimizations Specific to InnoDB
  14. Appendix A: Installation, Configuration, and Upgrading
    • MySQL Software
    • Preparing to Install MySQL
    • After the Download
    • Configuring the Server
    • Starting the Server
    • The Initial User Accounts
    • Verifying Server Operation
    • Upgrading
    • Copying a Database between
    • Architectures
  15. Appendix B: MySQL Programming Interfaces
    • Database Application Architectures
    • Connecting MySQL to ODBC
    • Connecting MySQL to MS/Office and MS/Access
    • Connecting to MySQL from Perl
    • Programming Perl to MySQL
    • Connecting to MySQL from PHP
    • Programming PHP to MySQL

What Students Receive

Each student will receive:
  • Expert instruction from a MySQL Trainer
  • A printed courseware manual with samples and hands-on exercises for use during and after class.
  • Sample course files and solutions
  • A course completion certificate upon successful completion of the course