Table of Contents Index MySQLđ Certification Study Guide By Paul DuBois, Stefan Hinz, Carsten Pedersen Publisher : Sams Publishing Pub Date : April 15, 2004 ISBN : 0-672-32632-9 Pages : 648 The MySQL certification program is a carefully developed, high-quality certification process that can help you prove your skills in using, maintaining, and administering MySQL database servers and other technologies from MySQL AB Covering both the basic MySQL Core Certification exam and the advanced MySQL Professional Certification exam, MySQL Certification Study Guide is the one authority to look to when you're preparing for either test The book teaches you all the concepts, principles, and techniques that you'll need to know for the Core and Professional certification exams, and it includes an array of learning aids, practice questions, and realworld examples to help you prepare for test day • • Table of Contents Index MySQL® Certification Study Guide By Paul DuBois, Stefan Hinz, Carsten Pedersen Publisher : Sams Publishing Pub Date : April 15, 2004 ISBN : 0-672-32632-9 Pages : 648 Copyright About the Authors Acknowledgments References We Want to Hear from You! Reader Services Introduction Foreword About This Book Conventions Used in This Book About the Exams Sample Tables Other Related Documents Interpreting DESCRIBE Output Summary Chapter 1 MySQL and MySQL AB Section 1.1 The Difference Between MySQL and MySQL AB Section 1.2 How MySQL AB Operates Section 1.3 MySQL Core Values Section 1.4 MySQL Dual Licensing Section 1.6 The MySQL Mailing Lists Section 1.5 Organization and Structure of the MySQL Reference Manual Section 1.7 Exercises Chapter 2 MySQL Software Section 2.1 Major Program Components Used in MySQL Section 2.2 Major Operating System Families Supported by MySQL Section 2.3 Differences Between Major MySQL Distributions Section 2.4 Available MySQL Client Interfaces Section 2.5 Exercises Chapter 3 Using MySQL Client Programs Section 3.1 Invoking Command-Line Client Programs Section 3.2 The mysql Client Program Section 3.4 Using mysqldump Section 3.6 Using MySQLCC Section 3.3 Using mysqlimport Section 3.5 Checking Tables with mysqlcheck and myisamchk Section 3.7 MySQL Connectivity Drivers Section 3.8 Exercises Chapter 4 Data Definition Language Section 4.1 General Database and Table Properties Section 4.2 Storage Engines and Table Types Section 4.4 Identifier Syntax Section 4.6 CREATE TABLE Section 4.8 ALTER TABLE Section 4.10 Column Types Section 4.3 Limits on Number and Size of Database Components Section 4.5 CREATE DATABASE and DROP DATABASE Section 4.7 DROP TABLE Section 4.9 Creating and Dropping Indexes Section 4.11 Using SHOW and DESCRIBE to Review Table Structures Section 4.12 Exercises Chapter 5 The SELECT Statement Section 5.1 Identifying What Values to Display Section 5.2 Restricting a Selection Using WHERE Section 5.4 Limiting a Selection Using LIMIT Section 5.3 Using ORDER BY to Sort Query Results Section 5.5 Aggregate Functions, GROUP BY, and HAVING Section 5.6 Using DISTINCT to Eliminate Duplicates Section 5.7 Concatenating SELECT Results with UNION Section 5.8 Exercises Chapter 6 Basic SQL Section 6.1 Using SQL Expressions and Functions Section 6.2 Using LIKE for Pattern Matching Section 6.3 Using IN() to Test Membership in a List of Values Section 6.5 Using Reserved Words as Identifiers Section 6.7 Comments in SQL Statements Section 6.4 Case Sensitivity of Identifiers and Reserved Words Section 6.6 NULL Values Section 6.8 Exercises Chapter 7 Update Statements Section 7.1 The INSERT and REPLACE Statements Section 7.2 The UPDATE Statement Section 7.3 The DELETE and TRUNCATE TABLE Statements Section 7.4 Exercises Chapter 8 Joins Section 8.1 Writing Inner Joins Section 8.2 Writing Outer Joins Section 8.3 Converting Subqueries to Joins Section 8.5 Multiple-Table UPDATE and DELETE Statements Section 8.4 Resolving Name Clashes Using Qualifiers and Aliases Section 8.6 Exercises Chapter 9 Importing and Exporting Data Section 9.1 The LOAD DATA INFILE Statement Section 9.2 The SELECT … INTO OUTFILE Statement Section 9.3 Datafile Format Specifiers Section 9.4 Importing and Exporting NULL Values Section 9.5 Exercises Chapter 10 MySQL Architecture Section 10.1 Client/Server Overview Section 10.2 Choosing the Right Client Section 10.4 How MySQL Uses Disk Space Section 10.6 Log and Status Files Section 10.8 Exercises Section 10.3 Connecting the Client to the Server Section 10.5 How MySQL Uses Memory Section 10.7 MySQL Storage Engines Chapter 11 MySQL Installation and Configuration Section 11.1 Running MySQL on Windows Section 11.3 Runtime MySQL Configuration Section 11.5 Upgrading MySQL Section 11.7 Configuring Disks for MySQL Use Section 11.2 Running MySQL on Unix Section 11.4 Compiling MySQL from a Source Distribution Section 11.6 Optimizing the Operating System for MySQL Use Section 11.8 Choosing Hardware for MySQL Use Section 11.9 Exercises Chapter 12 Security Issues Section 12.1 Securing MySQL Section 12.2 User Account Management Section 12.3 Client Access Control Section 12.4 Exercises Chapter 13 Optimizing for Query Speed Section 13.1 Index Optimization and Index Usage Section 13.2 Using EXPLAIN to Analyze Queries Section 13.4 Optimizing the Logical Database Structure Section 13.3 General Query Enhancement Section 13.5 Exercises Chapter 14 MyISAM Tables Section 14.1 Special MyISAM Features Section 14.2 MyISAM-Specific Optimizations Section 14.3 MyISAM Locking Strategies Section 14.5 Checking and Repairing MyISAM Tables Section 14.4 MyISAM Backup and Recovery Section 14.6 MyISAM Table Maintenance Section 14.7 Exercises Chapter 15 InnoDB Tables Section 15.1 The InnoDB Tablespace and Logs Section 15.2 InnoDB Transaction Support Section 15.4 InnoDB-Specific Optimizations Section 15.6 Checking and Repairing InnoDB Tables Section 15.3 How InnoDB Uses Locks Section 15.5 InnoDB Backup and Recovery Section 15.7 InnoDB Maintenance Section 15.8 Exercises Chapter 16 Advanced Server Features Section 16.1 Interpreting mysqld Server Information Section 16.2 Tuning Memory Parameters Section 16.3 Using the Query Cache Section 16.5 Replication Section 16.4 Using Multiple Servers Section 16.6 Exercises Appendix A Quick Reference Section A.1 SQL Statements Section A.2 SQL Functions Section A.3 Column Types Section A.4 Server System Variables Appendix B MySQL Certification Candidate Guide Section B.1 What Is a MySQL Certification? Section B.2 Other Sources of Information Section B.4 Registering for Exams Section B.6 How the Exams Proceed Section B.8 Staying Updated Section B.10 MySQL 4 Core Certification Section B.12 Pearson VUE Contact Information Section B.3 The MySQL Certification Program Section B.5 Preparing for the Exams Section B.7 After the Exam Section B.9 How Long Are the Certifications Valid? Section B.11 Certified MySQL 4 Professional Section B.13 MySQL AB Certification NDA and LUA Index Copyright Copyright © 2004 by MySQL AB All rights reserved No part of this book shall be reproduced, stored in a retrieval system, or transmitted by any means, electronic, mechanical, photocopying, recording, or otherwise, without written permission from the publisher No patent liability is assumed with respect to the use of the information contained herein Although every precaution has been taken in the preparation of this book, the publisher and author assume no responsibility for errors or omissions Nor is any liability assumed for damages resulting from the use of the information contained herein The world sample database: Copyright Statistics Finland, http://www.stat.fi/worldinfigures Library of Congress Catalog Card Number: 2003095797 Printed in the United States of America First Printing: April 2004 07 06 05 04 4 3 2 1 Trademarks All terms mentioned in this book that are known to be trademarks or service marks have been appropriately capitalized Pearson cannot attest to the accuracy of this information Use of a term in this book should not be regarded as affecting the validity of any trademark or service mark Warning and Disclaimer Every effort has been made to make this book as complete and as accurate as possible, but no warranty or fitness is implied The information provided is on an "as is" basis The author(s) and the publisher shall have neither liability nor responsibility to any person or entity with respect to any loss or damages arising from the information contained in this book Any errata for this book are published at http://www.mysql.com/certification/studyguides Bulk Sales Sams Publishing offers excellent discounts on this book when ordered in quantity for bulk purchases or special sales For more information, please contact U.S Corporate and Government Sales 1-800-382-3419 corpsales@pearsontechgroup.com For sales outside of the U.S., please contact International Sales 1-317-428-3341 international@pearsontechgroup.com Credits ASSOCIATE PUBLISHER Mark Taber ACQUISITIONS EDITOR Shelley Johnston DEVELOPMENT EDITOR Damon Jordan MANAGING EDITOR Charlotte Clapp SENIOR PROJECT EDITOR Tricia Liebig COPY EDITOR Mike Henry INDEXER Rebecca Salerno PROOFREADER Wendy Ott MARKETING MANAGER Randi Roger COVER & INTERIOR DESIGNER Gary Adair PAGE LAYOUT Michelle Mitchell PUBLISHING COORDINATOR status files disk space status information (server) accessing 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th status variables Key read requests 2nd 3rd Key reads 2nd 3rd stopping MySQL servers 2nd 3rd 4th stopping MySQL servers storage engines BDB 2nd 3rd disabling 2nd 3rd enabling 2nd 3rd HEAP (Memory) 2nd 3rd InnoDB 2nd 3rd 4th 5th 6th 7th MERGE 2nd 3rd MyISAM 2nd 3rd 4th 5th 6th purpose of 2nd specifying 2nd 3rd 4th TEMPORARY tables 2nd 3rd string column types 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th 28th 29th 30th 31st string comparisons case sensitivity 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th string values strings binary strings 2nd 3rd 4th 5th 6th literal strings nonbinary strings 2nd 3rd 4th 5th pattern matching 2nd 3rd 4th 5th 6th 7th 8th 9th study guides subqueries converting to joins 2nd 3rd 4th 5th 6th 7th 8th subscribing to mailing lists SUBSTRING INDEX() function 2nd SUBSTRING() function SUM() function 2nd 3rd summary tables 2nd 3rd 4th 5th 6th summary values 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th support services supported operating systems 2nd 3rd 4th SuSE Linux symbol links moving databases 2nd 3rd 4th symlinking MyISAM tables 2nd 3rd 4th system variables 2nd 3rd 4th 5th 6th global 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th innodb buffer log size innodb buffer pool size key buffer size 2nd 3rd max connections 2nd session setting 2nd 3rd 4th 5th showing 2nd 3rd 4th 5th 6th 7th 8th 9th status 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th table cache 2nd [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [Y] table cache table cache system variable 2nd table format files (.frm files) table_cache system variable table_type system variable tables BDB tables 2nd checking 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th columns adding 2nd 3rd 4th aliases 2nd 3rd defined deleting editing 2nd 3rd indexing 2nd 3rd 4th 5th 6th 7th 8th NULL values 2nd 3rd 4th options 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st sort order 2nd 3rd 4th 5th 6th 7th types 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th 28th 29th 30th 31st 32nd 33rd 34th 35th 36th 37th 38th 39th 40th 41st 42nd creating 2nd 3rd 4th 5th default options default tables deleting 2nd 3rd 4th 5th 6th 7th 8th multiple tables 2nd 3rd DESCRIBE statement editing 2nd 3rd file size limitations 2nd format file grant tables 2nd 3rd 4th 5th 6th 7th 8th HEAP tables 2nd identifying databases 2nd 3rd 4th InnoDB tables ACID compliance 2nd backups 2nd 3rd 4th buffer pool 2nd 3rd characteristics 2nd checking 2nd converting tables to InnoDB tables creating format (.frm) file locks 2nd 3rd 4th log files 2nd 3rd 4th 5th 6th 7th 8th maintenance 2nd monitoring 2nd 3rd 4th optimizing 2nd 3rd 4th recovering backups 2nd repairing 2nd 3rd tablespace 2nd 3rd 4th tablespace configuration 2nd 3rd 4th 5th 6th 7th tablespace portability 2nd 3rd transactions 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th joins defined 2nd inner joins 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th outer joins 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th resolving name clashes 2nd 3rd 4th 5th 6th 7th 8th 9th MERGE tables 2nd multiple alterations MyISAM tables backups 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th characteristics 2nd 3rd 4th 5th checking 2nd 3rd 4th 5th 6th compression 2nd 3rd 4th 5th 6th 7th 8th 9th converting ISAM tables to MyISAM tables datafile format file index file indexes locking 2nd 3rd 4th 5th 6th 7th maintenance 2nd 3rd 4th 5th maximum row count 2nd 3rd 4th 5th optimizing 2nd 3rd 4th portability 2nd 3rd 4th query scheduling 2nd 3rd 4th RAID tables 2nd 3rd repairing 2nd 3rd 4th 5th 6th storage formats 2nd 3rd symlinking 2nd 3rd 4th obtaining table information 2nd records adding 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th 28th 29th 30th 31st deleting 2nd 3rd 4th 5th 6th 7th 8th duplicate records 2nd 3rd 4th eliminating duplicates 2nd 3rd 4th 5th 6th grouping 2nd 3rd 4th 5th replacing 2nd 3rd 4th 5th 6th 7th 8th 9th retrieving from multiple tables selecting 2nd 3rd 4th 5th 6th 7th 8th 9th 10th updating 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th renaming 2nd repairing 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th reviewing table structure 2nd rows defined grouping 2nd 3rd 4th 5th 6th sorting 2nd SHOW CREATE TABLE statement SHOW TABLE STATUS statement showing 2nd 3rd 4th 5th storage engines BDB 2nd HEAP (Memory) 2nd InnoDB 2nd MERGE 2nd MyISAM 2nd specifying 2nd 3rd 4th summary tables 2nd 3rd 4th 5th 6th TEMPORARY tables 2nd 3rd types 2nd 3rd 4th 5th 6th 7th 8th 9th 10th updating multiple tables 2nd 3rd optimizing updates 2nd 3rd 4th tables_priv table tar file distribution 2nd 3rd 4th 5th 6th temporal values TEMPORARY tables 2nd 3rd terminators for statements 2nd 3rd testing membership in a list of values 2nd 3rd 4th TEXT column types 2nd thread handlers 2nd TIME column type 2nd 3rd time column types 2nd TIME DAYS() function 2nd TIME FORMAT() function 2nd TIME TO SEC() function TIMESTAMP column type 2nd 3rd tmp_table_size system variable training services transactions InnoDB ACID compliance 2nd isolation levels 2nd 3rd 4th 5th 6th 7th 8th performing 2nd 3rd 4th 5th TRIM() function 2nd TRUNCATE TABLE statement 2nd 3rd 4th 5th 6th 7th TRUNCATE() function 2nd tuning memory parameters 2nd 3rd 4th 5th turning on/off logs 2nd [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [Y] UCASE() function UNION (SELECT UNION) statement 2nd UNION keyword 2nd 3rd 4th 5th 6th UNIQUE index UNIQUE indexes 2nd unique-valued index Unix 2nd 3rd 4th UNIX TIMESTAMP() function 2nd UNLOCK TABLES statement 2nd 3rd UPDATE statement 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th UPDATE statements 2nd 3rd 4th update statements defined updating records in tables 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th tables multiple tables 2nd 3rd optimizing updates 2nd 3rd 4th upgrades 2nd 3rd 4th 5th UPPER() function user accounts privileges 2nd user table utilities myisamchk 2nd 3rd 4th 5th myisampack 2nd 3rd mysqlbinlog utility utility programs 2nd myisamchk mysqldumpslow perror 2nd [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [Y] value clipping 2nd 3rd 4th 5th 6th 7th values duplicate key values 2nd 3rd illegal values 2nd NULL values 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th numeric values string values summary values 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th temporal values testing membership in a list of values 2nd 3rd 4th VARCHAR column types 2nd 3rd variables per-client variables 2nd 3rd 4th 5th status variables Key read requests 2nd 3rd Key reads 2nd 3rd system variables 2nd 3rd 4th 5th 6th global 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th innodb buffer log size innodb buffer pool size key buffer size 2nd 3rd max connections 2nd session setting 2nd 3rd 4th 5th showing 2nd 3rd 4th 5th 6th 7th 8th 9th status 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th table cache 2nd versions alpha beta command-line client programs gamma pre-alpha production viewing log files privileges 2nd viewing table structure 2nd [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [Y] Web sites Pearson VUE 2nd WEEK() function 2nd WEEKDAY() function WHERE clause SELECT statements 2nd 3rd 4th 5th UPDATE statements 2nd 3rd 4th win32 mailing list Windows installing MySQL 2nd 3rd versions that support MySQL writing inner joins 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th outer joins 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th queries 2nd 3rd [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [Y] YEAR column type 2nd YEAR() function YEARWEEK() function 2nd ... Kaj Arnö, MySQL AB, Vice President, Professional Services About This Book This is a study guide for the MySQL Core and Professional Certification exams It contains both the "Core Study Guide" and the "Professional Study Guide. " It should be seen as a... After you've taken a certification exam, the Web site is also where you will be able to check the status of your certification The MySQL Certification Candidate Guide The "MySQL Certification Candidate Guide" contains the overall... Summary Chapter 1 MySQL and MySQL AB Section 1.1 The Difference Between MySQL and MySQL AB Section 1.2 How MySQL AB Operates Section 1.3 MySQL Core Values Section 1.4 MySQL Dual Licensing