120 likes | 230 Vues
PostgreSQL is a powerful object-relational database management system (ORDBMS) originally based on POSTGRES, developed at the University of California, Berkeley. Established in 1986, it grew to be a fully featured database with extensive support for SQL92/99 dialects. PostgreSQL enables the use of various programming languages such as C, Python, and Perl for writing triggers and functions. It supports complex queries, transactions, and referential integrity, making it an excellent choice for developers and enterprises alike. Discover its features and commands for effective database management.
E N D
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
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 MySQL • Aimed to be a fully-featured database • Understands a good subset of SQL92/99 dialects • Rules, triggers, server-side functions can be written in C, PgSQL, Python, Perl and TCL
Does not support subqueries, stored procedures, subqueries, cursors or views Has basic provisions for referential integrity and transactions/rollbacks PostgreSQL MySQL • Supports subqueries, stored procedures, subqueries, cursors or views • Supports referential integrity, has transactions and rollbacks, foreign keys ON DELETE CASCADE and ON UPDATE CASCADE
Works better on Windows Fast on both simple and complex SELECTs PostgreSQL MySQL • Doesn't have binary distribution for all the support platforms • Slower on low-end but has some options for improving
#!/bin/bash for student in $@ do echo "CREATE ROLE $student WITH LOGIN;" | psql echo "CREATE DATABASE $student with OWNER $student;" | psql done Roles and Databases
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"