Getting started with PostgreSQL



Similar documents
SQL Injection. SQL Injection. CSCI 4971 Secure Software Principles. Rensselaer Polytechnic Institute. Spring

Linas Virbalas Continuent, Inc.

USING MYWEBSQL FIGURE 1: FIRST AUTHENTICATION LAYER (ENTER YOUR REGULAR SIMMONS USERNAME AND PASSWORD)

Understanding Sql Injection

The Advantages of PostgreSQL

The elephant called PostgreSQL

White paper FUJITSU Software Enterprise Postgres

LDAPCON Sébastien Bahloul

plproxy, pgbouncer, pgbalancer Asko Oja

Open Source DBMS CUBRID 2008 & Community Activities. Byung Joo Chung bjchung@cubrid.com

Tableau Server Trusted Authentication

PostgreSQL Functions By Example

Supported DBMS platforms DB2. Informix. Enterprise ArcSDE Technology. Oracle. GIS data. GIS clients DB2. SQL Server. Enterprise Geodatabase 9.

CN=Monitor Installation and Configuration v2.0

Database migration. from Sybase ASE to PostgreSQL. Achim Eisele and Jens Wilke. 1&1 Internet AG

Programming Database lectures for mathema

How to Configure a BYOD Environment with the Unified AP in Standalone Mode

Storing SpamAssassin User Data in a SQL Database Michael Parker. [ Start Slide ] Welcome, thanks for coming out today.

Identikey Server Windows Installation Guide 3.1

How To Run A Standby On Postgres (Postgres) On A Slave Server On A Standby Server On Your Computer (Mysql) On Your Server (Myscientific) (Mysberry) (

2. Boot using the Debian Net Install cd and when prompted to continue type "linux26", this will load the 2.6 kernel

Geodatabase Programming with SQL

EASRestoreService. Manual

news from Tom Bacon about Monday's lecture

How To Use Postgresql With Foreign Data In A Foreign Server In A Multi Threaded Database (Postgres)

HP Device Manager 4.7

Installing and Configuring PostgreSQL 8 on WinXP

PostgreSQL Features, Futures and Funding. Simon Riggs

Lab 2: PostgreSQL Tutorial II: Command Line

A Brief Introduction to MySQL

Introducing SQL Server Express

Managing rights in PostgreSQL

SQL Server An Overview

The release notes provide details of enhancements and features in Cloudera ODBC Driver for Impala , as well as the version history.

Using ODBC with MDaemon 6.5

Managing Objects with Data Dictionary Views. Copyright 2006, Oracle. All rights reserved.

PostgreSQL vs. MySQL vs. Commercial Databases: It's All About What You Need

Sharding with postgres_fdw

Using Temporary Tables to Improve Performance for SQL Data Services

Pivotal Greenplum Database

Getting Started with Postgres Plus (R) on Windows (R) A Postgres Evaluation Quick Tutorial From EnterpriseDB

MongoDB. An introduction and performance analysis. Seminar Thesis

PostgreSQL Past, Present, and Future EDB All rights reserved.

Chapter 9 Java and SQL. Wang Yang wyang@njnet.edu.cn

Database Management System Choices. Introduction To Database Systems CSE 373 Spring 2013

PostgreSQL 9.0 Streaming Replication under the hood Heikki Linnakangas

KonyOne Server Prerequisites _ MS SQL Server

DIGIPASS Authentication for GajShield GS Series

How To Use Gfi Mailarchiver On A Pc Or Macbook With Gfi From A Windows 7.5 (Windows 7) On A Microsoft Mail Server On A Gfi Server On An Ipod Or Gfi.Org (

DIGIPASS Authentication for Citrix Access Gateway VPN Connections

Oracle Database 10g Express

IGEL Universal Management. Installation Guide

EMBL-EBI. Database Replication - Distribution

Oracle 1Z0-528 Exam Questions & Answers

New Features in MySQL 5.0, 5.1, and Beyond

SQL Simple Queries. Chapter 3.1 V3.0. Napier University Dr Gordon Russell

HP Device Manager 4.7

Introducing Ingres. HP OpenVMS Technical Update Days. Darren Horler. Manager, Engineering. October 2011

CSI 2132 Lab 3. Outline 09/02/2012. More on SQL. Destroying and Altering Relations. Exercise: DROP TABLE ALTER TABLE SELECT

Net/FSE Installation Guide v1.0.1, 1/21/2008

IDENTIKEY Server Windows Installation Guide 3.1

Video Administration Backup and Restore Procedures

Using Ruby on Rails for Web Development. Introduction Guide to Ruby on Rails: An extensive roundup of 100 Ultimate Resources

Agenda. ! Strengths of PostgreSQL. ! Strengths of Hadoop. ! Hadoop Community. ! Use Cases

SQL Injection Attack

SQL 2: GETTING INFORMATION INTO A DATABASE. MIS2502 Data Analytics

Working with the Cognos BI Server Using the Greenplum Database

Accessing External Databases from Mobile Applications

Migration Guide Software, Database and Version Migration

AUTHENTICATION... 2 Step 1:Set up your LDAP server... 2 Step 2: Set up your username... 4 WRITEBACK REPORT... 8 Step 1: Table structures...

Tutorial: How to Use SQL Server Management Studio from Home

Typo3_tridion. SDL Tridion R5 3/21/2008

HDB++: HIGH AVAILABILITY WITH. l TANGO Meeting l 20 May 2015 l Reynald Bourtembourg

Tableau Server Trusted Authentication

User Service and Directory Agent: Configuration Best Practices and Troubleshooting

MySQL és Hadoop mint Big Data platform (SQL + NoSQL = MySQL Cluster?!)

A Tutorial on SQL Server CMPT 354 Fall 2007

Serious Threat. Targets for Attack. Characterization of Attack. SQL Injection 4/9/2010 COMP On August 17, 2009, the United States Justice

DB2 - DATABASE SECURITY

Sisense. Product Highlights.

Practical Cassandra. Vitalii

Sophos Mobile Control Web service guide

Installation Guide. Copyright (c) 2015 The OpenNMS Group, Inc. OpenNMS SNAPSHOT Last updated :19:20 EDT

Relational Databases and SQLite

Web Frameworks. web development done right. Course of Web Technologies A.A. 2010/2011 Valerio Maggio, PhD Student Prof.

The Online Research Database Service (ORDS)

Bruce Momjian June, Postgres Plus Technical Overview

Administering your PostgreSQL Geodatabase

Training module 2 Installing VMware View

UQC103S1 UFCE Systems Development. uqc103s/ufce PHP-mySQL 1

MySQL for Beginners Ed 3

Sophos Enterprise Console Auditing user guide. Product version: 5.2

Managing User Accounts

depl Documentation Release depl contributors

How To Create A Table In Sql (Ahem)

Managing User Accounts

Postgres Enterprise Manager Installation Guide

Database: SQL, MySQL

Transcription:

Getting started with PostgreSQL Gavin Sherry gavin@alcove.com.au Alcove Systems Engineering January 16, 2007 Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 1 / 25

Outline 1 SELECT Hello World 2 Hiccups 3 Lets do something 4 Some boring stuff 5 Useful stuff Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 2 / 25

Installing PostgreSQL and start Just do it through your package manager! Fedora/RHEL/CentOS # yum install postgresql # service postgresql start Debian/etc # apt-get search postgresql # /etc/init.d/postgresql-<version> start Windows installer Just run the.msi http://www.postgresql.org/download/ Source #./configure ; make ; make install # initdb /path/to/data # pg_ctl -D /path/to/data start It s that simple! Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 3 / 25

So, lets go Example $ psql postgres Welcome to psql 8.2.1, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help with psql commands \g or terminate with semicolon to execute query \q to quit postgres=# \d No relations found. postgres=# create table foo (i int, t text); CREATE TABLE postgres=# insert into foo values(1, Hello World ); INSERT 0 1 postgres=# select * from foo; i t ---+------------- 1 Hello World (1 row) Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 4 / 25

Outline 1 SELECT Hello World 2 Hiccups 3 Lets do something 4 Some boring stuff 5 Useful stuff Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 5 / 25

FATAL...? What s this? psql: FATAL: IDENT authentication failed for user gavin Some packages tighten up default security What to do: su - postgres createuser gavin Alternatively, you could relax the authentication but I wont tell you how! Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 6 / 25

Exploring Example # select version(); version ------------------------------------------ PostgreSQL 8.2.1... # select table_catalog, table_name, table_type from information_schema.tables where table_schema = public ; table_catalog table_name table_type ---------------+------------+------------ postgres foo BASE TABLE (3 rows) Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 7 / 25

More exploring Example # select column_name, data_type from information_schema.columns where table_schema= public and table_name = foo ; column_name data_type -------------+----------- i integer t text (2 rows) Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 8 / 25

Outline 1 SELECT Hello World 2 Hiccups 3 Lets do something 4 Some boring stuff 5 Useful stuff Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 9 / 25

A little project Say you want to develop a blog everyone s doing it You want to: 1 Store articles 2 Relate articles to blog users 3 Keep statistics on blog posts Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 10 / 25

A little project Say you want to develop a blog everyone s doing it You want to: 1 Store articles 2 Relate articles to blog users 3 Keep statistics on blog posts Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 10 / 25

A little project Say you want to develop a blog everyone s doing it You want to: 1 Store articles 2 Relate articles to blog users 3 Keep statistics on blog posts Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 10 / 25

A little project Say you want to develop a blog everyone s doing it You want to: 1 Store articles 2 Relate articles to blog users 3 Keep statistics on blog posts Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 10 / 25

blogdb version 1 SQL -- Create a table of users (this is a comment, btw) CREATE TABLE users (usrid int, username text, email text); -- insert a user (SQL isn t case sensitive) insert into users values(1, Gavin, gavin@alcove.com.au ); -- create the articles table CREATE TABLE articles (artid int, title text, body text, dt timestamp, usrid int); -- add a post insert into articles values(1, First post, Yay, current_timestamp, 1); -- get article count SELECT count(*) FROM articles; Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 11 / 25

blogdb version 1 SQL -- Create a table of users (this is a comment, btw) CREATE TABLE users (usrid int, username text, email text); -- insert a user (SQL isn t case sensitive) insert into users values(1, Gavin, gavin@alcove.com.au ); -- create the articles table CREATE TABLE articles (artid int, title text, body text, dt timestamp, usrid int); -- add a post insert into articles values(1, First post, Yay, current_timestamp, 1); -- get article count SELECT count(*) FROM articles; Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 11 / 25

blogdb version 1 SQL -- Create a table of users (this is a comment, btw) CREATE TABLE users (usrid int, username text, email text); -- insert a user (SQL isn t case sensitive) insert into users values(1, Gavin, gavin@alcove.com.au ); -- create the articles table CREATE TABLE articles (artid int, title text, body text, dt timestamp, usrid int); -- add a post insert into articles values(1, First post, Yay, current_timestamp, 1); -- get article count SELECT count(*) FROM articles; Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 11 / 25

blogdb version 1 SQL -- Create a table of users (this is a comment, btw) CREATE TABLE users (usrid int, username text, email text); -- insert a user (SQL isn t case sensitive) insert into users values(1, Gavin, gavin@alcove.com.au ); -- create the articles table CREATE TABLE articles (artid int, title text, body text, dt timestamp, usrid int); -- add a post insert into articles values(1, First post, Yay, current_timestamp, 1); -- get article count SELECT count(*) FROM articles; Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 11 / 25

blogdb version 1 SQL -- Create a table of users (this is a comment, btw) CREATE TABLE users (usrid int, username text, email text); -- insert a user (SQL isn t case sensitive) insert into users values(1, Gavin, gavin@alcove.com.au ); -- create the articles table CREATE TABLE articles (artid int, title text, body text, dt timestamp, usrid int); -- add a post insert into articles values(1, First post, Yay, current_timestamp, 1); -- get article count SELECT count(*) FROM articles; Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 11 / 25

What s wrong with version 1? No data integrity No permissions users is a common table name what about other applications with a users table? Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 12 / 25

What s wrong with version 1? No data integrity No permissions users is a common table name what about other applications with a users table? Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 12 / 25

What s wrong with version 1? No data integrity No permissions users is a common table name what about other applications with a users table? Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 12 / 25

What s wrong with version 1? No data integrity No permissions users is a common table name what about other applications with a users table? Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 12 / 25

What s wrong with version 1? No data integrity No permissions users is a common table name what about other applications with a users table? Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 12 / 25

Data integrity There are levels of integrity Referential integrity Enforce a relationship Guard against duplication Each row must have a key Some data must look a certain way like dates and times Some data cannot be undefined or NULL Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 13 / 25

blogdb version 2 SQL CREATE TABLE users (usrid serial primary key, username text NOT NULL, email text NOT NULL, unique(username)); INSERT INTO users (username, email) values(1, Gavin, gavin@alcove.com.au ); CREATE TABLE articles (artid serial primary key, title text NOT NULL, body text NOT NULL, dt timestamp default current_timestamp, usrid int references users(usrid)); Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 14 / 25

blogdb version 2 SQL CREATE TABLE users (usrid serial primary key, username text NOT NULL, email text NOT NULL, unique(username)); INSERT INTO users (username, email) values(1, Gavin, gavin@alcove.com.au ); CREATE TABLE articles (artid serial primary key, title text NOT NULL, body text NOT NULL, dt timestamp default current_timestamp, usrid int references users(usrid)); Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 14 / 25

blogdb version 2 SQL CREATE TABLE users (usrid serial primary key, username text NOT NULL, email text NOT NULL, unique(username)); INSERT INTO users (username, email) values(1, Gavin, gavin@alcove.com.au ); CREATE TABLE articles (artid serial primary key, title text NOT NULL, body text NOT NULL, dt timestamp default current_timestamp, usrid int references users(usrid)); Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 14 / 25

Permissions and privileges We speak of CREATE ROLE and GRANT SQL CREATE ROLE blogread LOGIN; CREATE ROLE blogwrite LOGIN;... GRANT SELECT ON articles,users TO blogread; GRANT ALL ON articles,users TO blobwrite; Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 15 / 25

Name space issues This is why SQL supports schemas SQL CREATE SCHEMA blog; SET search_path = blog; CREATE... SELECT count(*) FROM blog.articles; Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 16 / 25

Further exercises Data integrity for email addresses See CREATE DOMAIN Speed up count(*) in the presence of a large articles table see the advanced lecture today Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 17 / 25

Outline 1 SELECT Hello World 2 Hiccups 3 Lets do something 4 Some boring stuff 5 Useful stuff Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 18 / 25

More on PostgreSQL What s with the name? Post (in) gres, with SQL support Hey, it used to be named POSTQUEL Then again, it used to have a hell of a lot of Lisp in it Academic project in the 80s, one of Michael Stonebraker s projects at Berkeley BSD license do what you want with the source (don t sue us!) Now developed by a group of enthusiasts Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 19 / 25

Buzzword compliance What have we got? JDBC,.NET, ODBC, PHP, Python, Ruby,... Replication Views, Indexes, Schemas, Foreign keys Partitioning Two phase commit Transations and nested transactions! Functions/stored procedures in SQL, Java, Ruby, Python, and much more Online backups... Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 20 / 25

Buzzword compliance What have we got? JDBC,.NET, ODBC, PHP, Python, Ruby,... Replication Views, Indexes, Schemas, Foreign keys Partitioning Two phase commit Transations and nested transactions! Functions/stored procedures in SQL, Java, Ruby, Python, and much more Online backups... Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 20 / 25

Buzzword compliance What have we got? JDBC,.NET, ODBC, PHP, Python, Ruby,... Replication Views, Indexes, Schemas, Foreign keys Partitioning Two phase commit Transations and nested transactions! Functions/stored procedures in SQL, Java, Ruby, Python, and much more Online backups... Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 20 / 25

Buzzword compliance What have we got? JDBC,.NET, ODBC, PHP, Python, Ruby,... Replication Views, Indexes, Schemas, Foreign keys Partitioning Two phase commit Transations and nested transactions! Functions/stored procedures in SQL, Java, Ruby, Python, and much more Online backups... Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 20 / 25

Buzzword compliance What have we got? JDBC,.NET, ODBC, PHP, Python, Ruby,... Replication Views, Indexes, Schemas, Foreign keys Partitioning Two phase commit Transations and nested transactions! Functions/stored procedures in SQL, Java, Ruby, Python, and much more Online backups... Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 20 / 25

Buzzword compliance What have we got? JDBC,.NET, ODBC, PHP, Python, Ruby,... Replication Views, Indexes, Schemas, Foreign keys Partitioning Two phase commit Transations and nested transactions! Functions/stored procedures in SQL, Java, Ruby, Python, and much more Online backups... Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 20 / 25

Buzzword compliance What have we got? JDBC,.NET, ODBC, PHP, Python, Ruby,... Replication Views, Indexes, Schemas, Foreign keys Partitioning Two phase commit Transations and nested transactions! Functions/stored procedures in SQL, Java, Ruby, Python, and much more Online backups... Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 20 / 25

Buzzword compliance What have we got? JDBC,.NET, ODBC, PHP, Python, Ruby,... Replication Views, Indexes, Schemas, Foreign keys Partitioning Two phase commit Transations and nested transactions! Functions/stored procedures in SQL, Java, Ruby, Python, and much more Online backups... Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 20 / 25

Buzzword compliance What have we got? JDBC,.NET, ODBC, PHP, Python, Ruby,... Replication Views, Indexes, Schemas, Foreign keys Partitioning Two phase commit Transations and nested transactions! Functions/stored procedures in SQL, Java, Ruby, Python, and much more Online backups... Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 20 / 25

Buzzword compliance What have we got? JDBC,.NET, ODBC, PHP, Python, Ruby,... Replication Views, Indexes, Schemas, Foreign keys Partitioning Two phase commit Transations and nested transactions! Functions/stored procedures in SQL, Java, Ruby, Python, and much more Online backups... Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 20 / 25

Buzzword compliance What have we got? JDBC,.NET, ODBC, PHP, Python, Ruby,... Replication Views, Indexes, Schemas, Foreign keys Partitioning Two phase commit Transations and nested transactions! Functions/stored procedures in SQL, Java, Ruby, Python, and much more Online backups... Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 20 / 25

Buzzword compliance What have we got? JDBC,.NET, ODBC, PHP, Python, Ruby,... Replication Views, Indexes, Schemas, Foreign keys Partitioning Two phase commit Transations and nested transactions! Functions/stored procedures in SQL, Java, Ruby, Python, and much more Online backups... Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 20 / 25

Buzzword compliance What have we got? JDBC,.NET, ODBC, PHP, Python, Ruby,... Replication Views, Indexes, Schemas, Foreign keys Partitioning Two phase commit Transations and nested transactions! Functions/stored procedures in SQL, Java, Ruby, Python, and much more Online backups... Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 20 / 25

Buzzword compliance What have we got? JDBC,.NET, ODBC, PHP, Python, Ruby,... Replication Views, Indexes, Schemas, Foreign keys Partitioning Two phase commit Transations and nested transactions! Functions/stored procedures in SQL, Java, Ruby, Python, and much more Online backups... Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 20 / 25

Buzzword compliance What have we got? JDBC,.NET, ODBC, PHP, Python, Ruby,... Replication Views, Indexes, Schemas, Foreign keys Partitioning Two phase commit Transations and nested transactions! Functions/stored procedures in SQL, Java, Ruby, Python, and much more Online backups... Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 20 / 25

Buzzword compliance What have we got? JDBC,.NET, ODBC, PHP, Python, Ruby,... Replication Views, Indexes, Schemas, Foreign keys Partitioning Two phase commit Transations and nested transactions! Functions/stored procedures in SQL, Java, Ruby, Python, and much more Online backups... Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 20 / 25

Buzzword compliance What have we got? JDBC,.NET, ODBC, PHP, Python, Ruby,... Replication Views, Indexes, Schemas, Foreign keys Partitioning Two phase commit Transations and nested transactions! Functions/stored procedures in SQL, Java, Ruby, Python, and much more Online backups... Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 20 / 25

Buzzword compliance What have we got? JDBC,.NET, ODBC, PHP, Python, Ruby,... Replication Views, Indexes, Schemas, Foreign keys Partitioning Two phase commit Transations and nested transactions! Functions/stored procedures in SQL, Java, Ruby, Python, and much more Online backups... Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 20 / 25

Buzzword compliance What have we got? JDBC,.NET, ODBC, PHP, Python, Ruby,... Replication Views, Indexes, Schemas, Foreign keys Partitioning Two phase commit Transations and nested transactions! Functions/stored procedures in SQL, Java, Ruby, Python, and much more Online backups... Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 20 / 25

Who uses PostgreSQL? Businesses, big and small Hobbyists and developers Big operators like Fujitsu Sun HP Apple Cisco AC Neilson Skype Just about every Australian government department Safeway (North America).org,.info,.in,... Sony But it s even more popular with small businesses Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 21 / 25

What else can you do? Report writing: Jasper, Crystal,... Wiki, CMS backend All the other OSS jazz forums, photo galleries,... Bugzilla backend LDAP backend J2EE backend Ruby on rails, out of the box GIS 100% standards compliant! Statistical analysis full integration of R Data warehousing Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 22 / 25

Outline 1 SELECT Hello World 2 Hiccups 3 Lets do something 4 Some boring stuff 5 Useful stuff Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 23 / 25

Resources for learning more The PostgreSQL manual - http://www.postgresql.org/docs Books (some free) - http://www.postgresql.org/docs/books/ GUI console - http://www.pgadmin.org Mailing lists - http://www.postgresql.org/ IRC - irc.freenode.net, #postgresql My nick is swm SydPUG - http://pugs.postgresql.org/sydpug/ Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 24 / 25

Stuff for the boss Case studies: http://www.postgresql.org/about/casestudies/ Featured users: http://www.postgresql.org/about/users/ A glossy brochure: http://alcove.com.au/postgresql.pdf Gavin Sherry (Alcove) Getting started with PostgreSQL January 16, 2007 25 / 25