Verbindung aufnehmen …
psql
psql -ddatenbank -U user -h hostname
psql -d template1 -c '\l'
psql -d template1 -c'select * from pg_stat_activity'
psql -d template1 -f create_testdatenbank.sql
Datei create_testdatenbank.sql:
CREATE DATABASE testdatenbank WITH OWNER=postgres ENCODING='UNICODE';
Was ist ein Schema?: Ein Schema ist im Prinzip ein Namensraum unterhalb einer Datenbank: Es enthält benannte Objekte (Tabellen, Datentypen, Funktionen und Operatoren), die die gleichen Namen haben können wie andere Objekte in anderen Schemas. Auf benannte Objekte wird zugegriffen, indem man entweder ihre Namen mit dem Schemanamen als Präfix „qualifiziert“ oder die gewünschten Schemas in den Suchpfad einfügt. 1)
Fehlen Tabellen, Datentypen, Funktionen oder Operatoren die eigentlich da sein sollten? Dann erst mal prüfen, ob das richtige Schema gerade im Suchpfad ist. 2)
postgres=# \dn
# \dn
List of schemas
Name | Owner
--------------------+-------------
anderes_schema | anderer_user
public | postgres
welches Schema verwende ich gerade?
show search_path ;
anderes schema verwenden
set search_path=anderes_schema;
$ psql -l
oder \l im interaktiven Modus
$ psql
Welcome to psql 8.2.5, 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=# \l
List of databases
Name | Owner | Encoding
-----------+----------+----------
meinedb | postgres | UTF8
postgres | postgres | UTF8
template0 | postgres | UTF8
template1 | postgres | UTF8
(4 rows)
postgres=#
$psql -d meinedb
...
meinedb=# \dt
List of relations
Schema | Name | Type | Owner
--------+--------------+-------+----------
public | tabellenname | table | postgres
meinedb=# \d tabellenname
Table "public.tabellenname"
Column | Type | Modifiers
----------+------------------------+-----------
id | bigint | not null
name | character varying(200) | not null
count | bigint |
Indexes:
"pk_tabellename" PRIMARY KEY, btree (id)
Kompliziertere Methode dort beschrieben: http://forums.devshed.com/postgresql-help-21/show-databases-show-tables-describe-table-38544.html#post160440
Zeige mir alle Funktionen:
\df
zeig mir den Code der Funktion func_tuwas:
\df+ func_tuwas
\H - von "Aligned" Ausgabe auf HTML-Ausgabe oder zurück umschalten\dp - zeige alle Zugriffsprivilegien von Tabellen, Views und Sequenzen\dF - zeige alle "Textsuchekonfigurationen" (List of text search configurations) 3)\dF+ pg_catalog.german - ausführlicher für eine tsearch Konfigurationzeige alle bestehenden Verbindungen zur Datenbank:
select * from pg_stat_activity;
zeige die Datenbank-Verbindungen, die "IDLE in transaction sind" (wenn das viele sind, kann VACUUM nicht richtig arbeiten)
select * from pg_stat_activity where current_query='<IDLE> in transaction';
cross join:
select a.email,b.upper from
(select email from mail_weiterleitung
where email~'@example.org' and destination ~'storm.example.com')
as a cross join (select * from upper('OK')) as b;
email | upper
--------------------------------+-------
hauke.haien@example.org | OK
elke.volkerts@example.org | OK
ole.peters@example.org | OK
pole.poppenspaeler@example.org | OK
lisei.paulsen@example.org | OK
joseph.tendler@example.org | OK
mutter.stine@example.org | OK
INSERT in andere Tabelle mit CROSS JOIN:
insert into mail_empfangimmerlaubt (mailadresse,aktion,kommentar)
select a.email,b.upper,c.lower from
(select email from mail_weiterleitung where email~'@example.org'
and destination ~'storm.example.com') as a
cross join (select * from upper('OK')) as b
cross join (select * from lower('2010-08-25 kommentar')) as c ;
2014-03-10
gilt für alle Tipps, Tricks & Spickzettel:
dies sind einfache, teils banale Notizen für meinen persönlichen Gebrauch,
die hier eher zufällig auch öffentlich lesbar sind
(vielleicht hilft es ja jemandem weiter). Verwendung auf eigene Gefahr
Fehler-Hinweise, Dankesschreiben , etc. bitte an: web.25@unixwitch.de
weitere Tools / Spickzettel