Skip to content
Snippets Groups Projects
Commit 370cde6d authored by Peter Gerwinski's avatar Peter Gerwinski
Browse files

Screenshots 27.11.2024: DBMS, SQL

parent 2f866065
No related branches found
No related tags found
No related merge requests found
cassini/home/peter/bo/2024ws/dbs/20241127> sudo su - postgres
postgres@cassini:~$ psql
psql (15.8 (Debian 15.8-0+deb12u1))
Geben Sie »help« für Hilfe ein.
postgres=# help
Dies ist psql, die Kommandozeilenschnittstelle für PostgreSQL.
Geben Sie ein: \copyright für Urheberrechtsinformationen
\h für Hilfe über SQL-Anweisungen
\? für Hilfe über interne Anweisungen
\g oder Semikolon, um eine Anfrage auszuführen
\q um zu beenden
postgres=# \?
Allgemein
\copyright PostgreSQL-Urheberrechtsinformationen zeigen
\crosstabview [SPALTEN] Anfrage ausführen und Ergebnis als Kreuztabelle
anzeigen
\errverbose letzte Fehlermeldung mit vollen Details anzeigen
\g [(OPT)] [DATEI] SQL-Anweisung ausführen (und Ergebnis in Datei oder
|Pipe schreiben); \g ohne Argumente entspricht Semikolon
\gdesc Ergebnis der Anfrage beschreiben ohne sie auszuführen
\gexec Anfrage ausführen, dann jeden Ergebniswert als
Anweisung ausführen
\gset [PREFIX] SQL-Anweisung ausführen und Ergebnis in psql-Variablen
ablegen
\gx [(OPT)] [DATEI] wie \g, aber mit erweitertem Ausgabemodus
\q psql beenden
\watch [SEK] Anfrage alle SEK Sekunden ausführen
Hilfe
\? [commands] Hilfe über Backslash-Befehle anzeigen
\? options Hilfe über psql-Kommandozeilenoptionen anzeigen
\? variables Hilfe über besondere Variablen anzeigen
\h [NAME] Syntaxhilfe über SQL-Anweisung, * für alle Anweisungen
Anfragepuffer
\e [DATEI] [ZEILE] Anfragepuffer (oder Datei) mit externem Editor bearbeiten
\ef [FUNKNAME [ZEILE]] Funktionsdefinition mit externem Editor bearbeiten
\ev [SICHTNAME [ZEILE]] Sichtdefinition mit externem Editor bearbeiten
\p aktuellen Inhalt der Anfragepuffers zeigen
\r Anfragepuffer löschen
\s [DATEI] Befehlsgeschichte ausgeben oder in Datei schreiben
\w DATEI Anfragepuffer in Datei schreiben
Eingabe/Ausgabe
\copy ... SQL COPY mit Datenstrom auf Client-Host ausführen
\echo [-n] [TEXT] Text auf Standardausgabe schreiben (-n für ohne Newline)
\i DATEI Befehle aus Datei ausführen
\ir DATEI wie \i, aber relativ zum Ort des aktuellen Skripts
\o [DATEI] alle Anfrageergebnisse in Datei oder |Pipe schreiben
\qecho [-n] [TEXT] Text auf Ausgabestrom für \o schreiben (-n für ohne
Newline)
\warn [-n] [TEXT] Text auf Standardfehlerausgabe schreiben (-n für ohne
Newline)
Bedingte Anweisungen
\if AUSDRUCK Beginn einer bedingten Anweisung
\elif AUSDRUCK Alternative in aktueller bedingter Anweisung
\else letzte Alternative in aktueller bedingter Anweisung
\endif Ende einer bedingten Anweisung
Informationen
(Optionen: S = Systemobjekte zeigen, + = zusätzliche Details zeigen)
\d[S+] Tabellen, Sichten und Sequenzen auflisten
\d[S+] NAME Tabelle, Sicht, Sequenz oder Index beschreiben
\da[S] [MUSTER] Aggregatfunktionen auflisten
\dA[+] [MUSTER] Zugriffsmethoden auflisten
\dAc[+] [AMMUST [TYPMUST]] Operatorklassen auflisten
\dAf[+] [AMMUST [TYPMUST]] Operatorfamilien auflisten
\dAo[+] [AMMUST [OPFMUST]] Operatoren in Operatorfamilien auflisten
\dAp[+] [AMMUST [OPFMUST]] Unterst.funktionen in Operatorfamilien auflisten
\db[+] [MUSTER] Tablespaces auflisten
\dc[S+] [MUSTER] Konversionen auflisten
\dconfig[+] [MUSTER] Konfigurationsparameter auflisten
\dC[+] [MUSTER] Typumwandlungen (Casts) auflisten
\dd[S] [MUSTER] Objektbeschreibungen zeigen, die nirgendwo anders
erscheinen
\dD[S+] [MUSTER] Domänen auflisten
\ddp [MUSTER] Vorgabeprivilegien auflisten
\dE[S+] [MUSTER] Fremdtabellen auflisten
\des[+] [MUSTER] Fremdserver auflisten
\det[+] [MUSTER] Fremdtabellen auflisten
\deu[+] [MUSTER] Benutzerabbildungen auflisten
\dew[+] [MUSTER] Fremddaten-Wrapper auflisten
\df[anptw][S+] [FUNKMUSTR [TYPMUSTR ...]]
Funktionen [nur Agg/normale/Proz/Trigger/Fenster] auflisten
\dF[+] [MUSTER] Textsuchekonfigurationen auflisten
\dFd[+] [MUSTER] Textsuchewörterbücher auflisten
\dFp[+] [MUSTER] Textsucheparser auflisten
\dFt[+] [MUSTER] Textsuchevorlagen auflisten
\dg[S+] [MUSTER] Rollen auflisten
\di[S+] [MUSTER] Indexe auflisten
\dl[+] Large Objects auflisten, wie \lo_list
\dL[S+] [MUSTER] prozedurale Sprachen auflisten
\dm[S+] [MUSTER] materialisierte Sichten auflisten
\dn[S+] [MUSTER] Schemas auflisten
\do[S+] [OPMUST [TYPMUST [TYPMUST]]]
Operatoren auflisten
\dO[S+] [MUSTER] Sortierfolgen auflisten
\dp [MUSTER] Zugriffsprivilegien für Tabellen, Sichten und
Sequenzen auflisten
\dP[itn+] [MUSTER] partitionierte Relationen [nur Indexe/Tabellen]
auflisten [n=geschachtelt]
\drds [ROLLMUST [DBMUST]] datenbankspezifische Rolleneinstellungen auflisten
\dRp[+] [MUSTER] Replikationspublikationen auflisten
\dRs[+] [MUSTER] Replikationssubskriptionen auflisten
\ds[S+] [MUSTER] Sequenzen auflisten
\dt[S+] [MUSTER] Tabellen auflisten
\dT[S+] [MUSTER] Datentypen auflisten
\du[S+] [MUSTER] Rollen auflisten
\dv[S+] [MUSTER] Sichten auflisten
\dx[+] [MUSTER] Erweiterungen auflisten
\dX [MUSTER] erweiterte Statistiken auflisten
\dy[+] [MUSTER] Ereignistrigger auflisten
\l[+] [MUSTER] Datenbanken auflisten
\sf[+] FUNKNAME Funktionsdefinition zeigen
\sv[+] SICHTNAME Sichtdefinition zeigen
\z [MUSTER] äquivalent zu \dp
Large Objects
\lo_export LOBOID DATEI
Large Object in Datei schreiben
\lo_import DATEI [KOMMENTAR]
Large Object aus Datei lesen
\lo_list[+] Large Objects auflisten
\lo_unlink LOBOID Large Object löschen
Formatierung
\a zwischen unausgerichtetem und ausgerichtetem Ausgabemodus
umschalten
\C [TEXT] Tabellentitel setzen oder löschen
\f [ZEICHEN] Feldtrennzeichen zeigen oder setzen
\H HTML-Ausgabemodus umschalten (gegenwärtig aus)
\pset [NAME [WERT]] Tabellenausgabeoption setzen
(border|columns|csv_fieldsep|expanded|fieldsep|
fieldsep_zero|footer|format|linestyle|null|
numericlocale|pager|pager_min_lines|recordsep|
recordsep_zero|tableattr|title|tuples_only|
unicode_border_linestyle|unicode_column_linestyle|
unicode_header_linestyle)
\t [on|off] nur Datenzeilen zeigen (gegenwärtig aus)
\T [TEXT] HTML <table>-Tag-Attribute setzen oder löschen
\x [on|off|auto] erweiterte Ausgabe umschalten (gegenwärtig aus)
Verbindung
\c[onnect] {[DBNAME|- BENUTZER|- HOST|- PORT|-] | conninfo}
mit neuer Datenbank verbinden (aktuell »postgres«)
\conninfo Informationen über aktuelle Verbindung anzeigen
\encoding [KODIERUNG] Client-Kodierung zeigen oder setzen
postgres=# \q
postgres@cassini:~$ psql
psql (15.8 (Debian 15.8-0+deb12u1))
Geben Sie »help« für Hilfe ein.
postgres=# \l
Liste der Datenbanken
Name | Eigentümer | Kodierung | Sortierfolge | Zeichentyp | ICU-Locale | Locale-Provider | Zugriffsprivilegien
-----------+------------+-----------+--------------+-------------+------------+-----------------+-----------------------
postgres | postgres | UTF8 | de_DE.UTF-8 | de_DE.UTF-8 | | libc |
template0 | postgres | UTF8 | de_DE.UTF-8 | de_DE.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | de_DE.UTF-8 | de_DE.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
(3 Zeilen)
postgres=# create database testdb;
CREATE DATABASE
postgres=# \l
Liste der Datenbanken
Name | Eigentümer | Kodierung | Sortierfolge | Zeichentyp | ICU-Locale | Locale-Provider | Zugriffsprivilegien
-----------+------------+-----------+--------------+-------------+------------+-----------------+-----------------------
postgres | postgres | UTF8 | de_DE.UTF-8 | de_DE.UTF-8 | | libc |
template0 | postgres | UTF8 | de_DE.UTF-8 | de_DE.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | de_DE.UTF-8 | de_DE.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
testdb | postgres | UTF8 | de_DE.UTF-8 | de_DE.UTF-8 | | libc |
(4 Zeilen)
...skipping...
Liste der Datenbanken
Name | Eigentümer | Kodierung | Sortierfolge | Zeichentyp | ICU-Locale | Locale-Provider | Zugriffsprivilegien
-----------+------------+-----------+--------------+-------------+------------+-----------------+-----------------------
postgres | postgres | UTF8 | de_DE.UTF-8 | de_DE.UTF-8 | | libc |
template0 | postgres | UTF8 | de_DE.UTF-8 | de_DE.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | de_DE.UTF-8 | de_DE.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
testdb | postgres | UTF8 | de_DE.UTF-8 | de_DE.UTF-8 | | libc |
(4 Zeilen)
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
postgres=# create user dbsadmin with password '2345';
CREATE ROLE
postgres=# create user dbs with password '1234';
CREATE ROLE
postgres=# alter database testdb owner to dbsadmin;
ALTER DATABASE
postgres=# \l
Liste der Datenbanken
Name | Eigentümer | Kodierung | Sortierfolge | Zeichentyp | ICU-Locale | Locale-Provider | Zugriffsprivilegien
-----------+------------+-----------+--------------+-------------+------------+-----------------+-----------------------
postgres | postgres | UTF8 | de_DE.UTF-8 | de_DE.UTF-8 | | libc |
template0 | postgres | UTF8 | de_DE.UTF-8 | de_DE.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | de_DE.UTF-8 | de_DE.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
testdb | dbsadmin | UTF8 | de_DE.UTF-8 | de_DE.UTF-8 | | libc |
(4 Zeilen)
postgres=# \q
postgres@cassini:~$
Abgemeldet
cassini/home/peter/bo/2024ws/dbs/20241127> psql -h localhost -U dbsadmin -W testdb
Passwort:
psql (15.8 (Debian 15.8-0+deb12u1))
SSL-Verbindung (Protokoll: TLSv1.3, Verschlüsselungsmethode: TLS_AES_256_GCM_SHA384, Komprimierung: aus)
Geben Sie »help« für Hilfe ein.
testdb=> \d
Keine Relationen gefunden
testdb=> create table Tier ( name text, tierart text, id integer );
CREATE TABLE
testdb=> \d
Liste der Relationen
Schema | Name | Typ | Eigentümer
--------+------+---------+------------
public | tier | Tabelle | dbsadmin
(1 Zeile)
testdb=> grant select, insert, update on Tier to dbs;
GRANT
testdb=> \q
cassini/home/peter/bo/2024ws/dbs/20241127>
cassini/home/peter/bo/2024ws/dbs/20241127> psql -h localhost -U dbsadmin -W testdb
Passwort:
psql (15.8 (Debian 15.8-0+deb12u1))
SSL-Verbindung (Protokoll: TLSv1.3, Verschlüsselungsmethode: TLS_AES_256_GCM_SHA384, Komprimierung: aus)
Geben Sie »help« für Hilfe ein.
testdb=> \d
Keine Relationen gefunden
testdb=> create table Tier ( name text, tierart text, id integer );
CREATE TABLE
testdb=> \d
Liste der Relationen
Schema | Name | Typ | Eigentümer
--------+------+---------+------------
public | tier | Tabelle | dbsadmin
(1 Zeile)
testdb=> grant select, insert, update on Tier to dbs;
GRANT
testdb=> \q
cassini/home/peter/bo/2024ws/dbs/20241127>
cassini/home/peter/bo/2024ws/dbs/20241127> psql -h localhost -U dbs -W testdb
Passwort:
psql (15.8 (Debian 15.8-0+deb12u1))
SSL-Verbindung (Protokoll: TLSv1.3, Verschlüsselungsmethode: TLS_AES_256_GCM_SHA384, Komprimierung: aus)
Geben Sie »help« für Hilfe ein.
testdb=> \d
Liste der Relationen
Schema | Name | Typ | Eigentümer
--------+------+---------+------------
public | tier | Tabelle | dbsadmin
(1 Zeile)
testdb=> select * from tier;
name | tierart | id
------+---------+----
(0 Zeilen)
testdb=> insert into tier values ( 'Schnubbel', 'Kaninchen', 42 );
INSERT 0 1
testdb=> select * from tier;
name | tierart | id
-----------+-----------+----
Schnubbel | Kaninchen | 42
(1 Zeile)
testdb=> insert into tier values ( 'Emeralda', 'Spinne', 95 );
INSERT 0 1
testdb=> select * from tier;
name | tierart | id
-----------+-----------+----
Schnubbel | Kaninchen | 42
Emeralda | Spinne | 95
(2 Zeilen)
testdb=> update tier set id = 43 where name = "Esmeralda";
FEHLER: Spalte »Esmeralda« existiert nicht
ZEILE 1: update tier set id = 43 where name = "Esmeralda";
^
testdb=> update tier set name = "Esmeralda" where name = "Emeralda";
FEHLER: Spalte »Emeralda« existiert nicht
ZEILE 1: update tier set name = "Esmeralda" where name = "Emeralda";
^
testdb=> update tier set name = 'Esmeralda' where name = 'Emeralda';
UPDATE 1
testdb=> select * from tier;
name | tierart | id
-----------+-----------+----
Schnubbel | Kaninchen | 42
Esmeralda | Spinne | 95
(2 Zeilen)
testdb=>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment