Acknowledgments |
|
xi | |
Introduction |
|
xiii | |
|
Part I Installation and Administration |
|
|
|
|
3 | (22) |
|
|
4 | (1) |
|
The History of PostgreSQL |
|
|
5 | (3) |
|
|
8 | (5) |
|
PostgreSQL Versus Microsoft Access |
|
|
8 | (4) |
|
PostgreSQL Versus Commercial DBMS Products |
|
|
12 | (1) |
|
|
13 | (11) |
|
|
13 | (1) |
|
|
14 | (4) |
|
|
18 | (1) |
|
|
18 | (1) |
|
|
18 | (2) |
|
|
20 | (1) |
|
|
20 | (1) |
|
Support for Binary Large Objects (BLOBs) |
|
|
20 | (1) |
|
|
21 | (1) |
|
|
21 | (1) |
|
|
22 | (2) |
|
Generalized Search Tree (GiST) |
|
|
24 | (1) |
|
|
24 | (1) |
|
Installing PostgreSQL on Windows |
|
|
25 | (24) |
|
|
26 | (7) |
|
|
26 | (3) |
|
|
29 | (4) |
|
|
33 | (2) |
|
|
35 | (11) |
|
Installation Options Window |
|
|
36 | (3) |
|
Service Configuration Window |
|
|
39 | (1) |
|
Initialise Database Cluster Window |
|
|
40 | (2) |
|
Enable Procedural Languages Window |
|
|
42 | (1) |
|
Enable Contrib Modules Window |
|
|
43 | (1) |
|
|
44 | (2) |
|
|
46 | (2) |
|
|
46 | (1) |
|
|
47 | (1) |
|
|
48 | (1) |
|
The PostgreSQL Files and Programs |
|
|
49 | (32) |
|
|
50 | (1) |
|
Database Cluster Directory |
|
|
50 | (3) |
|
|
53 | (22) |
|
|
54 | (16) |
|
|
70 | (4) |
|
|
74 | (1) |
|
|
75 | (5) |
|
PostgreSQL Server Commands |
|
|
75 | (3) |
|
|
78 | (1) |
|
|
79 | (1) |
|
|
80 | (1) |
|
Managing PostgreSQL on Windows |
|
|
81 | (40) |
|
|
82 | (1) |
|
Parts of the PostgreSQL System |
|
|
83 | (6) |
|
|
85 | (1) |
|
|
86 | (2) |
|
|
88 | (1) |
|
|
89 | (1) |
|
Creating a New Application |
|
|
89 | (15) |
|
|
89 | (2) |
|
|
91 | (3) |
|
|
94 | (7) |
|
Entering and Viewing Data |
|
|
101 | (3) |
|
The pgAdmin III Query Tool |
|
|
104 | (1) |
|
Working with User Accounts |
|
|
105 | (7) |
|
|
106 | (3) |
|
|
109 | (2) |
|
|
111 | (1) |
|
|
112 | (2) |
|
|
114 | (3) |
|
|
115 | (1) |
|
|
116 | (1) |
|
|
117 | (4) |
|
Part II Using PostgreSQL in Windows |
|
|
|
|
121 | (20) |
|
The psql Command-Line Format |
|
|
122 | (5) |
|
|
122 | (1) |
|
|
123 | (3) |
|
Using the Command-Line Options |
|
|
126 | (1) |
|
|
127 | (11) |
|
psql General Meta-commands |
|
|
128 | (3) |
|
Query Buffer Meta-commands |
|
|
131 | (1) |
|
Input/Output Meta-commands |
|
|
132 | (1) |
|
Informational Meta-commands |
|
|
133 | (2) |
|
|
135 | (1) |
|
Copy and Large Object Meta-commands |
|
|
136 | (2) |
|
|
138 | (1) |
|
|
139 | (1) |
|
|
140 | (1) |
|
|
141 | (28) |
|
|
142 | (4) |
|
|
142 | (1) |
|
|
142 | (4) |
|
|
146 | (12) |
|
|
146 | (2) |
|
|
148 | (1) |
|
|
149 | (5) |
|
Creating Group and Login Roles |
|
|
154 | (1) |
|
|
155 | (3) |
|
|
158 | (4) |
|
|
158 | (1) |
|
|
159 | (2) |
|
|
161 | (1) |
|
|
162 | (5) |
|
|
162 | (2) |
|
|
164 | (3) |
|
|
167 | (2) |
|
|
169 | (26) |
|
Revisiting the Select Command |
|
|
170 | (7) |
|
|
171 | (1) |
|
|
171 | (1) |
|
|
172 | (2) |
|
|
174 | (1) |
|
|
174 | (1) |
|
|
175 | (1) |
|
The Set Operation Clauses |
|
|
175 | (1) |
|
|
176 | (1) |
|
|
176 | (1) |
|
|
177 | (1) |
|
|
177 | (2) |
|
|
179 | (6) |
|
|
180 | (1) |
|
|
180 | (3) |
|
Determining the Index Method |
|
|
183 | (2) |
|
|
185 | (4) |
|
|
186 | (1) |
|
|
187 | (2) |
|
|
189 | (5) |
|
|
189 | (1) |
|
|
190 | (4) |
|
|
194 | (1) |
|
|
195 | (20) |
|
|
196 | (10) |
|
|
196 | (9) |
|
|
205 | (1) |
|
|
206 | (3) |
|
|
209 | (2) |
|
|
211 | (1) |
|
|
211 | (3) |
|
|
214 | (1) |
|
Stored Procedures and Triggers |
|
|
215 | (20) |
|
PostgreSQL Procedural Languages |
|
|
216 | (1) |
|
|
217 | (1) |
|
|
217 | (10) |
|
Creating a PL/pgSQL Function |
|
|
218 | (4) |
|
Creating a Stored Procedure Using pgAdmin III |
|
|
222 | (3) |
|
|
225 | (2) |
|
|
227 | (5) |
|
|
228 | (1) |
|
Creating a Trigger Function |
|
|
229 | (3) |
|
Testing the Trigger Function |
|
|
232 | (1) |
|
|
232 | (3) |
|
|
235 | (16) |
|
Controlling Network Users |
|
|
236 | (6) |
|
Controlling Access via Firewalls |
|
|
236 | (3) |
|
Controlling Access via Configuration Files |
|
|
239 | (2) |
|
Testing Remote Connectivity |
|
|
241 | (1) |
|
Encrypting Network Sessions |
|
|
242 | (7) |
|
Enabling SSL in PostgreSQL |
|
|
244 | (1) |
|
Encryption Keys and Certificates |
|
|
244 | (1) |
|
Creating an SSL Encryption Key |
|
|
245 | (3) |
|
|
248 | (1) |
|
|
249 | (1) |
|
|
250 | (1) |
|
|
251 | (14) |
|
Enhancing Query Performance |
|
|
252 | (5) |
|
|
252 | (3) |
|
Using pgAdmin III to Evaluate Queries |
|
|
255 | (2) |
|
The postgresql.conf Performance Parameters |
|
|
257 | (4) |
|
|
257 | (2) |
|
|
259 | (1) |
|
|
260 | (1) |
|
|
261 | (4) |
|
Part III Windows Programming with PostgreSQL |
|
|
|
Microsoft Access and PostgreSQL |
|
|
265 | (22) |
|
Interfacing PostgreSQL with Access |
|
|
266 | (9) |
|
Installing the ODBC Driver |
|
|
266 | (3) |
|
Configuring a PostgreSQL ODBC Connection |
|
|
269 | (6) |
|
Creating an Access Application Using PostgreSQL |
|
|
275 | (9) |
|
|
275 | (1) |
|
Designing an Application Database |
|
|
276 | (1) |
|
Setting Up the ODBC Session |
|
|
277 | (1) |
|
Creating the Access Application |
|
|
278 | (4) |
|
Using PostgreSQL Views in Access |
|
|
282 | (2) |
|
|
284 | (1) |
|
Exporting an Access Application to PostgreSQL |
|
|
284 | (2) |
|
|
286 | (1) |
|
|
287 | (26) |
|
The Microsoft .NET Framework |
|
|
288 | (1) |
|
Creating a .NET Development Environment |
|
|
289 | (3) |
|
Downloading the .NET Packages |
|
|
290 | (1) |
|
Installing the .NET Packages |
|
|
290 | (2) |
|
Integrating the Npgsql Library |
|
|
292 | (3) |
|
|
293 | (1) |
|
Installing the Npgsql Library |
|
|
294 | (1) |
|
Creating .NET Applications with Npgsql |
|
|
294 | (1) |
|
|
295 | (16) |
|
The NpgsqlConnection Class |
|
|
296 | (4) |
|
|
300 | (9) |
|
The NpgsqlParameterCollection Class |
|
|
309 | (2) |
|
|
311 | (2) |
|
|
313 | (30) |
|
The Visual C++ Programming Environment |
|
|
314 | (8) |
|
Visual C++ Express Edition |
|
|
314 | (1) |
|
Downloading and Installing Visual C++ Express Edition |
|
|
315 | (4) |
|
Installing the Microsoft Platform SDK |
|
|
319 | (3) |
|
|
322 | (3) |
|
|
325 | (17) |
|
Opening and Closing Sessions |
|
|
325 | (5) |
|
|
330 | (8) |
|
|
338 | (4) |
|
|
342 | (1) |
|
|
343 | (24) |
|
The Java Development Environment |
|
|
344 | (6) |
|
|
345 | (1) |
|
|
346 | (2) |
|
Building a Java Program Using NetBeans |
|
|
348 | (2) |
|
|
350 | (4) |
|
Using JDBC in a NetBeans Application |
|
|
352 | (1) |
|
Using JDBC in a Java Command-Line Application |
|
|
353 | (1) |
|
Java Database Connectivity |
|
|
354 | (11) |
|
|
354 | (2) |
|
|
356 | (6) |
|
Using Parameters and Prepared Statements |
|
|
362 | (3) |
|
|
365 | (2) |
Index |
|
367 | |