playserengeti.googlecode.com

Download Report

Transcript playserengeti.googlecode.com

What is PostgreSQL?





Object-relational database management system
(ORDBMS)
Based on POSTGRES at Berkeley Computer
Science Department.
Sponsored by the Defense Advanced Research
Projects Agency (DARPA), the Army Research
Office (ARO), the National Science Foundation
(NSF), and ESL, Inc.
Implementation of POSTGRES began in 1986.
It used a query language based on QUEL,
called POST-QUEL
PostgreSQL



Aimed to be a fullyfeatured database
Understands a good
subset of SQL92/99
dialects
Rules, triggers,
server-side functions
can be written in C,
PgSQL, Python, Perl
and TCL
MySQL



Aimed first to be a
fast database
Uses SQL92 as its
foundation
Has simple
mechanism for
server-side libraries
with C function and
rudimentary support
for triggers
PostgreSQL


Supports subqueries,
stored procedures,
subqueries, cursors
or views
Supports referential
integrity, has
transactions and
rollbacks, foreign
keys ON DELETE
CASCADE and ON
UPDATE CASCADE
MySQL


Does not support
subqueries, stored
procedures,
subqueries, cursors
or views
Has basic provisions
for referential integrity
and
transactions/rollbacks
PostgreSQL


Doesn't have binary
distribution for all the
support platforms
Slower on low-end
but has some options
for improving
MySQL


Works better on
Windows
Fast on both simple
and complex
SELECTs
Roles and Databases
Roles and Databases
#!/bin/bash
for student in $@
do
echo "CREATE ROLE $student WITH LOGIN;" | psql
echo "CREATE DATABASE $student with OWNER $student;" | psql
done
Creation Alternatives

createdb

psql --command //can't mix of psql and sql

psql --file

psql < filename
Other Command Line Options

--hostname

--username

--password //force password prompt

psql database username //default
Environment Variables

PGDATABASE

PGHOST

PGPORT

PGUSER
Useful Commands


\connect
\d [ pattern ] //list table, view, index, or
sequence

\dn [ pattern ] //list schemas

\du [ pattern ] //list all roles

\i filename //excute from file

\l //list databases
Useful Commands




\o [ {filename | |command} ] //Saves future
query results to the file filename, standard
output or pipes result to the Unix command
\s [ filename ] //Saves the history to file or to
standard output
\set [ name [ value [ ... ] ] ] //Defines a variable
\! [ command ] //Executes command on a Unix
shell

\? //Help

the “+”
Sources

http://www.postgresql.org/docs/8.1

psql man page

Google "Postgres versus MySQL"