HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
PostgreSQL
is the world¿s most advanced open-source database. PostgreSQL is the most comprehensive, in-depth, and easy-to-read guide to this award-winning database. This book starts with a thorough overview of SQL, a description of all PostgreSQL data types, and a complete explanation of PostgreSQL commands.If you are a developer or an administrator, you¿ll love the chapter that explores PostgreSQL performance. The authors explain how PostgreSQL stores data on disk (and in memory) and how to measure and influence the effectiveness of PostgreSQL¿s caching mechanisms. You¿ll also learn how PostgreSQL generates and evaluates execution plans. The authors explain all of the query operators that can appear in the results of an EXPLAIN command, describing the performance implications of each operator as well as the conditions which will cause PostgreSQL to use that operator.
PostgreSQL is also a complete guide for the developer. Whether you¿re developing with C, C++, ODBC, Embedded SQL, Java, Tcl/Tk, Perl, Python or PHP, you¿ll find a comprehensive description of the PostgreSQL API for your language of choice. Easy to follow exercises will walk you through the development of working applications that fully demonstrate the features offered by each API. You will also find a chapter that describes the PL/pgSQL server-side procedural language, learning how to build triggers, functions, and stored-procedures. The authors have even included a chapter that walks you through the process of extending the PostgreSQL server with custom-written C functions and new data types. The accompanying web site, www.conjectrix.com, contains downloadable versions of all of the sample code and a wealth of PostgreSQL-related resources.
The last section of PostgreSQL was written for the PostgreSQL administrator. You will learn how to install PostgreSQL on Windows, Linux, and Unix systems, from source code or from pre-compiled installers. The authors have described all of the PostgreSQL configuration options (compile-time, startup, and on-the-fly). The chapter on PostgreSQL security describes all of the authentication protocols that you can choose from and describes how to secure your database, both internally and externally. If you have to support a multi-national environment, you will find the chapter on internationalization and localization to be invaluable.
You won¿t find a more complete guide to PostgreSQL anywhere. The authors have made PostgreSQL approachable by leading the reader from basic concepts to advanced features. Whether you¿re a database beginner or an advanced user, you will find this book a valuable addition to your library.
The authors maintain a book companion web site where you can find the latest code samples, errata, and general information for PostgreSQL. Please go to www.conjectrix.com to access the book companion web site.
Introduction.
PostgreSQL Features. What Versions Does This Book Cover? What Topics Does This Book Cover?
I. GENERAL POSTGRESQL USE.
1. Introduction to PostgreSQL and SQL.
A Sample Database. Basic Database Terminology. Prerequisites. Connecting to a Database. Creating Tables. Viewing Table Descriptions. Adding New Records to a Table. Installing the Sample Database. Retrieving Data from the Sample Database. Aggregates. Multi-Table Joins. UPDATE. DELETE. A (Very) Short Introduction to Transaction Processing. Creating New Tables Using CREATE TABLE...AS. Using VIEW.
2. Working with Data in PostgreSQL.
NULL Values. Character Values. Numeric Values. Date/Time Values. Boolean (Logical) Values. Geometric Data Types. Object IDs (OID). BLOBs. Network Address Data Types. Sequences. Arrays. Column Constraints. Expression Evaluation and Type Conversion. Creating Your Own Data Types.
3. PostgreSQL SQL Syntax and Use.
PostgreSQL Naming Rules. Creating, Destroying, and Viewing Databases. Creating New Tables. Adding Indexes to a Table. Getting Information About Databases and Tables. Transaction Processing.
4. Performance.
How PostgreSQL Organizes Data. Gathering Performance Information. Understanding How PostgreSQL Executes a Query. Table Statistics. Performance Tips.
II. PROGRAMMING WITH POSTGRESQL.
5. Introduction to PostgreSQL Programming.
Server-Side Programming. Client-Side APIs. General Structure of Client Applications. Choosing an Application Environment.
6. Extending PostgreSQL.
Extending the PostgreSQL Server with Custom Functions. Returning Multiple Values from an Extension Function. Extending the PostgreSQL Server with Custom Data Types. Internal and External Forms. Defining a Simple Data Type in PostgreSQL. Defining the Data Type in C. Defining the Input and Output Functions in C. Defining the Input and Output Functions in PostgreSQL. Defining the Data Type in PostgreSQL.
7. PL/pgSQL.
Installing PL/pgSQL. Language Structure. Function Body. Cursors. Triggers.
8. The PostgreSQL C API—libpq.
Prerequisites. Client 1—Connecting to the Server. Client 2—Adding Error Checking. Client 3—Simple Processing—PQexec() and PQprint(). Client 4—An Interactive Query Processor.
9. A Simpler C API—libpgeasy.
Prerequisites. Client 1—Connecting to the Server. Client 2—Adding Error Checking. Client 3—Processing Queries. Client 4—An Interactive Query Processor.
10. The PostgreSQL C++ API—libpq++.
Prerequisites. Client 1—Connecting to the Server. Client 2—Adding Error Checking. Client 3—Processing Queries. Client 4—An Interactive Query Processor.
11. Embedding SQL Commands in C Programs—ecpg.
Prerequisites. Client 1—Connecting to the Server. Client 2—Adding Error Checking. Client 3—Processing SQL Commands. Client 4—An Interactive Query Processor.
12. Using PostgreSQL from an ODBC Client Application.
ODBC Architecture Overview. Prerequisites. Client 1—Connecting to the Server. Client 2—Adding Error Checking. Client 3—Processing Queries. Client 4—An Interactive Query Processor. Resources.
13. Using PostgreSQL from a Java Client Application.
JDBC Architecture Overview. Prerequisites. Client 1—Connecting to the Server. Client 2—Adding Error Checking. Client 3—Processing Queries. Client 4—An Interactive Query Processor.
14. Using PostgreSQL with Perl.
DBI Architecture Overview. Prerequisites. Client 1—Connecting to the Server. Client 2—Adding Error Checking. Client 3—Processing Queries. Client 4—An Interactive Query Processor.
15. Using PostgreSQL with PHP.
PHP Architecture Overview. Prerequisites. Client 1—Connecting to the Server. Client 2—Adding Error Checking. Client 3—Query Processing. Client 4—an Interactive Query Processor. Other Features.
16. Using PostgreSQL with Tcl and Tcl/Tk.
Prerequisites. Client 1—Connecting to the Server. Client 2—Query Processing. Client 3—An Interactive Query Processor. The libpgtcl Large-Object API.
17. Using PostgreSQL with Python.
Python/PostgreSQL Interface Architecture. Prerequisites. Client 1—Connecting to the Server. Client 2—Adding Error Checking. Client 3—Query Processing. Client 4—An Interactive Command Processor.
III. POSTGRESQL ADMINISTRATION.
18. Introduction to PostgreSQL Administration.
Security. User Accounts. Backup and Restore. Server Startup and Shutdown. Tuning. Installing Updates. Localization.
19. PostgreSQL Administration.
Roadmap (Where¿s All My Stuff?). Installing PostgreSQL. Managing Databases. Managing User Accounts. Configuring Your PostgreSQL Runtime Environment. Arranging for PostgreSQL Startup and Shutdown. Backing Up and Copying Databases.
20. Internationalization and Localization.
Locale Support. Multibyte Character Sets.
21. Security.
Securing the PostgreSQL Data Files. Securing Network Access. Securing Tables.
Index.