This book is about POSTGRESQL, the most advanced open source database. From its origins in academia, POSTGRESQL has moved to the Internet with explosive growth. It is hard to believe the advances over the past three years under the guidance of a team of world-wide Internet developers. This book is a testament to their vision, and to the success POSTGRESQL has become.
The book is designed to lead a person from their first database query through the complex queries needed to solve real-world problems. No knowledge of database theory or practice is required. Basic operating system capabilities are expected, like the ability to type at an operating system prompt.
The book starts with a short history of POSTGRESQL. It leads the reader through their first query, and teaches the five most important database commands. Common problems are covered early. Problems like adding quotes to quoted strings, or using proper capitalization and punctuation in queries. This should prevent users from getting stuck with queries that fail. I have seen many bug reports in the past few years, and try to cover the common pitfalls.
With a firm foundation and hands-on examples, additional commands are then introduced. Finally specialty chapters outline complex topics like multi-user control and performance. While coverage of these complex topics is not exhaustive, I try to show common real-world problems and their solutions. For example, telling someone about multi-user concurrency issues is meaningless unless they can image user queries misbehaving in an improperly configured multi-user application.
I do not shy away from complex topics, like index types and table join methods. For new users confused by these complex issues, it is sufficient to skim these chapters and continue. Start using the database, and return to these topics when you are more comfortable.
At each step, the purpose of the commands is clearly illustrated. I want readers to understand more than query syntax. I want readers to know why each command is valuable, so they will use the proper commands in their real-world database applications.
A novice should read the entire book, while skimming over the later chapters. Don't let the complex nature of database systems prevent you from getting started. Test databases are safe way to try out your own queries. As you gain more experience, the later chapters will start to make sense. Experienced database user can skip the chapters on basic SQL functionality. The cross-referencing of sections should allow you to quickly move from general to more specific information.
Appendix contains a copy of the POSTGRESQL reference manual which should be consulted anytime you have having trouble with query syntax. Also, I should mention the excellent documentation that is part of POSTGRESQL. The documentation covers many complex topics. It includes much POSTGRESQL-specific functionality that can not be covered in a book of this length. I refer to sections of the documentation in this text where appropriate.
This book was typeset using LYX, http://www.lyx.org, a powerful document processor linked to the LATEX typesetting system.