PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer...
Transcript of PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer...
![Page 1: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/1.jpg)
PostGre – SQL-Anweisungen in pgAdmin
![Page 2: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/2.jpg)
PostGre - SQL, 21.11.13 Seite 2
S(tructured)Q(uery)L(anguage) ...
ist eine eigenständige Sprache für relationale Datenbanken.
bietet Befehle zum Bearbeiten von Daten und Erstellen von Objekten in relationalen Datenbanken.
beschreibt eine Aktion wie zum Beispiel „Erstelle eine Tabelle“ oder „Alle Kunden aus Hannover“.
ist standardisiert. wird von allen gängigen Datenbanksystemen mehr oder
weniger unterstützt.
![Page 3: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/3.jpg)
PostGre - SQL, 21.11.13 Seite 3
Manual
PostgreSQL-Manual (englisch): http://www.postgresql.org/docs/manuals/
PostgreSQL-Manual (deutsch): http://doc.postgres.de/
![Page 4: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/4.jpg)
PostGre - SQL, 21.11.13 Seite 4
Beispieldatenbanken
http://wiki.postgresql.org/wiki/Sample_Databases
http://www.postgresqltutorial.com/postgresql-sample-database
![Page 5: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/5.jpg)
PostGre - SQL, 21.11.13 Seite 5
Weitere Informationen
http://www.schulserver.hessen.de/darmstadt/lichtenberg/ SQLTutorial/
http://sql.lernenhoch2.de/lernen/ http://ssl.gymnasium-zwettl.ac.at/postgresql/html/tutorial.html http://sqlzoo.net/de/
![Page 6: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/6.jpg)
PostGre - SQL, 21.11.13 Seite 6
… besteht aus ...
DDL (Data Definition Language). Datenbanken, Tabellen etc. anlegen. Datenbankschema festlegen.
DML (Data Manipulation Language). Daten in einer Datenbank lesen, ändern, einfügen oder löschen.
DCL (Data Controlling Language). Administration von Datenbanken.
![Page 7: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/7.jpg)
PostGre - SQL, 21.11.13 Seite 7
Menübefehle „Neue Datenbank”
Bearbeiten – Neues Objekt – Neue Datenbank
-- Database: "dbsProdukt"
-- DROP DATABASE "dbsProdukt";
CREATE DATABASE "dbsProdukt"
WITH OWNER = postgres
ENCODING = 'UTF8'
TABLESPACE = pg_default
LC_COLLATE = 'German_Germany.1252'
LC_CTYPE = 'German_Germany.1252'
CONNECTION LIMIT = -1;
![Page 8: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/8.jpg)
PostGre - SQL, 21.11.13 Seite 8
SQL-Anweisungen ...
Beginn mit einem SQL-Befehl.
Semikolon als Ende-Zeichen einer Anweisung. Leerzeichen, Tabulatoren, neue Zeilen erhöhen die Lesbarkeit
von Anweisungen. Groß- und Kleinschreibung bei Befehlen und Bezeichnern wird
nicht beachtet.
![Page 9: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/9.jpg)
PostGre - SQL, 21.11.13 Seite 9
SQL-Feld in pgAdmin
Anzeige von SQL-Befehlen zu dem gewählten Objekt.
Schreibschutz der Anweisungen. Kommentare werden standardmäßig grün angezeigt. SQL-
Schlüsselwörter werden blau angezeigt.
![Page 10: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/10.jpg)
PostGre - SQL, 21.11.13 Seite 10
Kommentare in SQL-Anweisungen
Der Kommentar beginnt mit zwei Bindestrichen und endet automatisch mit der Zeile.
Aufgrund der besseren Lesbarkeit folgt dem Bindestrichpaar ein Leerzeichen.
Beliebige Positionierung.
-- Database: "dbsProdukt"
-- DROP DATABASE "dbsProdukt";
![Page 11: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/11.jpg)
PostGre - SQL, 21.11.13 Seite 11
SQL-Anweisung „Neue Datenbank”
-- CREATE DATABASE [Datenbankname]
CREATE DATABASE "dbsProdukt"
WITH OWNER = postgres -- Eigentümer der Datenbank
ENCODING = 'UTF8' -- Zeichencodierung
TABLESPACE = pg_default -- Speicherort der Datenbank
-- Betrifft die Zeichen
LC_COLLATE = 'German_Germany.1252' -- Sortierung
LC_CTYPE = 'German_Germany.1252' -- Kategorisierung
CONNECTION LIMIT = -1; -- -1 beliebig viele Zugriffe
![Page 12: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/12.jpg)
PostGre - SQL, 21.11.13 Seite 12
Aufbau einer Datenbank
Datenbank
Zeile 1
Zeile 2
Zeile n
Tabelle
Tabelle A
Tabelle B
Tabelle...
![Page 13: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/13.jpg)
PostGre - SQL, 21.11.13 Seite 13
SQL-Anweisung eingeben
Werkzeuge – Abfragewerkzeug.
Oder: Beliebige SQL-Abfragen ausführen in der Symbolleiste.
![Page 14: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/14.jpg)
PostGre - SQL, 21.11.13 Seite 14
Query
![Page 15: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/15.jpg)
PostGre - SQL, 21.11.13 Seite 15
SQL-Editor
Eingabe von SQL-Anweisungen.
Ausführen von SQL-Anweisungen (Abfrage – Ausführen; F5). Das Ergebnis der SQL-Anweisung wird im Ausgabefeld; Registerkarte Datenanzeige angezeigt.
Speichern von SQL-Anweisungen (Datei – Speichern unter).
![Page 16: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/16.jpg)
PostGre - SQL, 21.11.13 Seite 16
Tabelle anlegen
-- CREATE TABLE [Tabllenname]
CREATE TABLE tblProdukt (
-- Felder in der Tabelle
-- Feldname Datentyp,
produktName varchar(100),
produktNr int,
produktPreis numeric,
aufgenommenAm timestamp
);
![Page 17: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/17.jpg)
PostGre - SQL, 21.11.13 Seite 17
SQL-Befehle ...
beschreiben eine Aktion. In diesem Beispiel CREATE TABLE erstellt eine neue Tabelle.
werden häufig groß geschrieben. beginnen immer mit einem Buchstaben.
![Page 18: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/18.jpg)
PostGre - SQL, 21.11.13 Seite 18
Auflistungen
Die Listenelemente werden durch ein Kommata getrennt.
Feldnamen werden dem Befehl CREATE TABLE als Liste hinzugefügt.
Werte, die in einer Tabelle gespeichert werden, werden als Liste angegeben.
Attribute eines Objekts werden beim Anlegen als Liste übergeben.
![Page 19: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/19.jpg)
PostGre - SQL, 21.11.13 Seite 19
Anweisung ausführen
Abfrage – Ausführen oder F5 im SQL-Editor.
Im Ausgabefeld wird das Ergebnis der Ausführung angezeigt. Die Registerkarte Meldungen zeigt eventuelle Fehler oder die korrekte Ausführung an. Ausgewählte Daten werden auf der Registerkarte Datenanzeige angezeigt.
Bei der Erstellung von Objekten, muss anschließend das Eltern-Objekt aufgefrischt werden (rechter Mausklick; Auffrischen).
![Page 20: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/20.jpg)
PostGre - SQL, 21.11.13 Seite 20
Anweisungen speichern und erneut ausführen
Datei – Speichern unter im SQL-Editor.
Datei – öffnen zeigt eine gespeicherte Anweisung im SQL-Editor an.
F5 führt die Anweisung aus.
![Page 21: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/21.jpg)
PostGre - SQL, 21.11.13 Seite 21
Bezeichner in SQL-Anweisungen
sind Namen, die vom Benutzer für Tabellen, Datenfelder etc. definiert werden.
in dem Beispiel sind tblProdukt, produktName etc. beginnen immer mit einem Buchstaben. können Buchstaben (A...Z, a...Z), Zahlen (0...9) und den
Unterstrich enthalten. sind maximal 63 Zeichen lang.
![Page 22: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/22.jpg)
PostGre - SQL, 21.11.13 Seite 22
Aufbau von Tabellen
Zeile 1
Zeile 2
Zeile n
Tabelle
Spalte 1 Spalte 2 Spalte n
Zeilen (Datensatz)
![Page 23: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/23.jpg)
PostGre - SQL, 21.11.13 Seite 23
Datensätze
Die Anzahl der Datensätze ist beliebig.
Die Datensätze werden unsortiert abgelegt.
produktName produktNr produktPreis aufgenommenAm
Kaffee „Arabica” 1 5,99 € 20.11.2013 09:00
Tee „Darjeeling” 2 4,99 € 21.11.2013 10:23
Kaffee „Kenia” 3 7,99 € 21.11.2013 12:05
![Page 24: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/24.jpg)
PostGre - SQL, 21.11.13 Seite 24
Spalten in einer Tabelle
Identifizierung mit Hilfe eines eindeutigen Namens.
Der Datentyp der Spalte beschreibt die Art des Inhaltes. Die Anzahl der Spalten und deren Reihenfolge ist fest. Die maximale Anzahl der Spalten liegt zwischen 250 und 1600.
produktName : StringproduktNr : IntegerproduktPreis : CurrencyaufgenommenAm : Date / Time
tblProdukt
![Page 25: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/25.jpg)
PostGre - SQL, 21.11.13 Seite 25
Feldnamen ...
sind eine eindeutige Bezeichnung für eine Spalte einer Tabelle.
identifizieren eindeutig ein Datenfeld in einer Tabelle. entsprechen häufig der Bezeichnung des Attributes des
beschriebenen Objekts in der realen Welt. sind frei wählbar.
![Page 26: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/26.jpg)
PostGre - SQL, 21.11.13 Seite 26
Der Datentyp eines Feldes ...
beschreibt die Art der Daten in einem Feld.
legt Regeln für die Verwendung der Daten fest. legt den Speicherbedarf der Daten fest. ergibt sich häufig aus der Funktion und / oder Nutzung des, in
dem Feld zu speichernden Wert. in PostgreSQL
http://www.postgresql.org/docs/9.3/static/datatype.html.
![Page 27: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/27.jpg)
PostGre - SQL, 21.11.13 Seite 27
Zeichenketten / Text
Alle Zeichen der Tastatur in Abhängigkeit des Eingabegebietsschema.
Speicherung von Telefonnummern, Postleitzahlen etc. Standardlänge 1.
![Page 28: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/28.jpg)
PostGre - SQL, 21.11.13 Seite 28
Möglichkeiten
Datentyp Beschreibungchar(N) Zeichenkette von N Zeichen
varchar(N) In Abhängigkeit der Länge der Zeichenkette N = maximale Zeichenkettenlänge
![Page 29: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/29.jpg)
PostGre - SQL, 21.11.13 Seite 29
Zahlenwerte
Mathematische Berechnungen
Ganzzahl. Nachkommastellen werden automatisch entfernt. Dezimalzahlen sind Nährungswerte. Das Dezimaltrennzeichen
ist von dem Eingabegebietsschema des Rechners abhängig. Implemtentierung nach dem IEEE Standard 754 für binäre Fließkommazahlen.
![Page 30: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/30.jpg)
PostGre - SQL, 21.11.13 Seite 30
Ganzzahlen
Datentyp Zahlenraum
smallint -32768 bis +32767
int -2147483648 bis +2147483647
bigint -9223372036854775808 bis +9223372036854775807
![Page 31: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/31.jpg)
PostGre - SQL, 21.11.13 Seite 31
Dezimalzahlen
Datentyp Beschreibung
double precision 15 Stellen nach dem Komma genau
real 6 Stellen nach dem Komma genau
numeric(precision, scale) 131072 Stellen vor dem Komma und 16383 Stellen nach dem Kommaprecision = Genauigkeitscale = Anzahl der Nachkommastellen Standardwert von 0
money -92233720368547758,08 bis +92233720368547758,07
![Page 32: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/32.jpg)
PostGre - SQL, 21.11.13 Seite 32
Auto-Inkrement
Datentyp Beschreibung
smallserial 1 bis 32767
serial 1 bis 2147483647
bigserial 1 bis 9223372036854775807
![Page 33: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/33.jpg)
PostGre - SQL, 21.11.13 Seite 33
Datumswerte und Uhrzeiten
Datumswerte basieren auf den gregorianischen Kalender.
Abhängig vom genutzten SQL-Dialekt und das gewählte Eingabegebietsschema.
![Page 34: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/34.jpg)
PostGre - SQL, 21.11.13 Seite 34
Möglichkeiten
Datentyp Beschreibung
date Jahr, Monat, Tag.
time Stunde, Minute, Sekunde.
timestamp Zeitstempel. Datum und Uhrzeit.
![Page 35: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/35.jpg)
PostGre - SQL, 21.11.13 Seite 35
Standardwerte
CREATE TABLE tblProdukt (
produktName varchar(100),
produktNr int,
produktPreis numeric DEFAULT 2.00,
aufgenommenAm timestamp
);
![Page 36: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/36.jpg)
PostGre - SQL, 21.11.13 Seite 36
Konstante Werte in SQL
Strings / Zeichenketten: 'Dies ist eine Zeichenkette'.
Integer / Ganzzahlen: int8 '400' oder 400. Dezimalzahlen: float4 '2.00' oder 2.0. Als Dezimaltrennzeichen
wird der Punkt genutzt. Datums- und Zeitwerte: '2013-11-22'. Datumswerte werden in
dem Format „yyyy-mm-dd” und Zeitwerte in dem Format „hh:mm:ss” angegeben
![Page 37: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/37.jpg)
PostGre - SQL, 21.11.13 Seite 37
Aktueller „Zeitstempel“ als Standardwert
CREATE TABLE tblProdukt (
produktName varchar(100),
produktNr int,
produktPreis numeric,
aufgenommenAm timestamp
DEFAULT CURRENT_TIMESTAMP
);
![Page 38: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/38.jpg)
PostGre - SQL, 21.11.13 Seite 38
NULL
CREATE TABLE tblProdukt (
produktName varchar(100) NOT NULL,
produktNr int,
produktPreis numeric,
aufgenommenAm timestamp
);
Das Datenfeld darf keinen undefinierten Inhalt enthalten.
Das Datenfeld muss gefüllt werden.
![Page 39: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/39.jpg)
PostGre - SQL, 21.11.13 Seite 39
Tabelle löschen
DROP TABLE tblProdukt;
Die Tabelle wird ohne Nachfrage gelöscht!
![Page 40: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/40.jpg)
PostGre - SQL, 21.11.13 Seite 40
Primärschlüssel
Identifizierung eines Datensatzes.
Setzen von künstlichen Attributen. Das Produkt existiert auch ohne Produktnummer.
Verknüpfung von Tabellen.
![Page 41: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/41.jpg)
PostGre - SQL, 21.11.13 Seite 41
… in SQL
CREATE TABLE tblProdukt (
produktName varchar(100) NOT NULL,
produktNr int UNIQUE NOT NULL,
aufgenommenAm timestamp
);
CREATE TABLE tblProdukt (
produktName varchar(100) NOT NULL,
produktNr int PRIMARY KEY,
aufgenommenAm timestamp
);
![Page 42: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/42.jpg)
PostGre - SQL, 21.11.13 Seite 42
Zusammengesetzte Primärschlüssel
CREATE TABLE tblProdukt (
produktName varchar(100) NOT NULL,
produktNr int,
aufgenommenAm timestamp,
PRIMARY KEY (produktNr, aufgenommenAm)
);
![Page 43: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/43.jpg)
PostGre - SQL, 21.11.13 Seite 43
Fremdschlüssel
Der Wert identifiziert einen Datensatz in einer Tabelle.
Der Fremdschlüssel und der dazugehörige Primärschlüssel haben den gleichen Datentyp.
![Page 44: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/44.jpg)
PostGre - SQL, 21.11.13 Seite 44
… in SQL
CREATE TABLE tblProdukt (
produktName varchar(100) NOT NULL,
produktNr int PRIMARY KEY,
aufgenommenAm timestamp
);
CREATE TABLE tblLager (
IDLager int PRIMARY KEY
produktNr int REFERENCES
tblProdukt(produktNr),
bestandAenderung int
);
![Page 45: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/45.jpg)
PostGre - SQL, 21.11.13 Seite 45
Weitere Möglichkeit
CREATE TABLE tblLager (
IDLager serial,
FIDProduktNr int,
Entnahme int
PRIMARY KEY (IDLager),
FOREIGN KEY (FIDProduktNr)
REFERENECES tblProdukt (produktNr)
);
![Page 46: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/46.jpg)
PostGre - SQL, 21.11.13 Seite 46
Daten einfügen
INSERT INTO tblProdukt
VALUES
(
'Kaffee Arabica',
1,
5.99,
'2013-11-20 09:00'
);
![Page 47: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/47.jpg)
PostGre - SQL, 21.11.13 Seite 47
Daten aus einer Textdatei einfügen
COPY tblProdukt FROM '/pfad/datei.txt';
Der Pfad wird aus Sicht des Servers angegeben. Der Server muss die Rechte zum Lesen der Datei besitzen.
Andernfalls wird ein Fehler angezeigt.
Es können Textdateien oder Dateien im CVS-Format kopiert werden.
Pro Zeile in der Textdatei wird ein Datensatz in der Tabelle angelegt.
![Page 48: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/48.jpg)
PostGre - SQL, 21.11.13 Seite 48
Daten aus einer Textdatei einfügen
COPY tblProdukt FROM '/pfad/datei.txt';
Der Pfad wird aus Sicht des Servers angegeben. Der Server muss die Rechte zum Lesen der Datei besitzen.
Andernfalls wird ein Fehler angezeigt.
Es können Textdateien oder Dateien im CVS-Format kopiert werden.
Pro Zeile in der Textdatei wird ein Datensatz in der Tabelle angelegt.
![Page 49: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/49.jpg)
PostGre - SQL, 21.11.13 Seite 49
Beispiel: Textdatei
Kaffee Arabica 1 5.99 2013-11-20 09:00
Tee Darjeeling 2 4.99 2013-11-21 10:23
Kaffee Kenia 3 7.99 2013-11-21 12:05
Trennung durch Tabulatoren.
Als Dezimaltrennzeichen wird der Punkt genutzt. Datums- und Zeitwerte sollten wie in SQL geschrieben werden.
COPY tblProdukt FROM 'D:\temp\produkte.txt'
![Page 50: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/50.jpg)
PostGre - SQL, 21.11.13 Seite 50
Beispiel: CSV-Datei
Kaffee Arabica,1,5.99,2013-11-20 09:00
Tee \"Darjeeling\",2,4.99,2013-11-21 10:23
Kaffee Kenia,3,7.99,2013-11-21 12:05
COPY tblProdukt
(produktName, produktNr, produktPreis, aufgenommenAM)
FROM 'D:\temp\produkte.csv'
WITH DELIMITER ',';
![Page 51: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/51.jpg)
PostGre - SQL, 21.11.13 Seite 51
Beispiel: CSV-Datei
COPY tblProdukt
(produktName, produktNr, produktPreis, aufgenommenAM)
FROM 'D:\temp\produkte.csv'
WITH DELIMITER ',';
Dem Tabellennamen folgen in Klammern die Felder, die von der Datei gefüllt werden. Alle anderen Felder nutzen den vorgegebenen Standardwert oder sind leer.
Das Trennzeichen zwischen den Daten wird angegeben (WITH DELIMITER).
![Page 52: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/52.jpg)
PostGre - SQL, 21.11.13 Seite 52
Escape-Sequenzen ...
beginnen immer mit einem Backslash \.
sind nicht druckbare Zeichen eines Zeichensatzes. maskieren Zeichen, die in SQL-Anweisungen genutzt werden.
Sequenz Erläuterung
\b Backspace. Einen Schritt zurück.
\f Formfeed. Seitenvorschub
\n New Line. Neue Zeile.
\r Carriage Return. Wagenrücklauf.
\t Tabulator
\\ Backslash
\' Apostroph
\" Anführungszeichen
![Page 53: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/53.jpg)
PostGre - SQL, 21.11.13 Seite 53
Auswahlabfragen ...
sortieren Informationen aus ein oder mehreren Tabellen.
filtern Informationen in Abhängigkeit von bestimmten Kriterien. stellen Informationen neu zusammen. berechnen Daten aus vorhandenen Informationen. liefern eine leere Tabelle zurück, wenn kein Datensatz die
Bedingung erfüllt.
![Page 54: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/54.jpg)
PostGre - SQL, 21.11.13 Seite 54
… in SQL
SELECT
*
FROM Tabelle
WHERE Kriterium
ORDER BY Tabelle.Feld;
SELECT
Tabelle.Feld, Tabelle.Feld, Tabelle.Feld
FROM Tabelle
WHERE Kriterium
ORDER BY Tabelle.Feld;
![Page 55: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/55.jpg)
PostGre - SQL, 21.11.13 Seite 55
Alle Felder aus einer Tabelle
Wähle (SELECT) alle Felder (*) aus (FROM) ....
Das Sternchen ist ein Platzhalter für alle Felder einer Tabelle.
Dem Schlüsselwort FROM folgt der Name der Tabelle.
SELECT * FROM film;
![Page 56: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/56.jpg)
PostGre - SQL, 21.11.13 Seite 56
Felder aus einer Tabelle
Dem Befehl SELECT folgt eine Auflistung der gewünschten Felder einer Tabelle. Es muss mindestens ein Feld oder das Sternchen angegeben werden.
Die einzelnen Felder werden durch ein Kommata getrennt. Das erste Feld in der Auflistung wird auch als erste Spalte
angezeigt.
SELECT
title, description, length
FROM film;
![Page 57: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/57.jpg)
PostGre - SQL, 21.11.13 Seite 57
Felder aus einer Tabelle
Der Punkt verbindet ein Tabellennamen mit einem darin definierten Feldnamen.
Die Angabe des Tabellennamens wird nicht benötigt, wenn der Feldname eindeutig einer Tabelle zugeordnet werden kann.
SELECT
film.title, film.description, film.length
FROM film;
![Page 58: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/58.jpg)
PostGre - SQL, 21.11.13 Seite 58
Daten sortieren
Dem Befehl ORDER BY folgt eine Liste von Feldern nach denen die Daten sortiert werden.
Standardmäßig werden die Daten aufsteigend sortiert (ASC). In diesem Beispiel werden die Daten zuerst nach dem
Nachnamen aufsteigend sortiert und anschließend nach dem Vornamen.
SELECT
last_name, first_name, email
FROM customer
ORDER BY last_name, first_name;
![Page 59: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/59.jpg)
PostGre - SQL, 21.11.13 Seite 59
Daten aufsteigend sortieren
SELECT
film.title, film.description, film.length
FROM film
ORDER BY film.length ASC;
![Page 60: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/60.jpg)
PostGre - SQL, 21.11.13 Seite 60
Daten absteigend sortieren
SELECT
film.title, film.description, film.length
FROM film
ORDER BY film.length DESC;
![Page 61: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/61.jpg)
PostGre - SQL, 21.11.13 Seite 61
Doppelte Datensätze ausblenden
SELECT DISTINCT
release_year
FROM film
ORDER BY release_year DESC;
Jahreszahlen werden nur einmal angezeigt, egal wie oft die Daten in der Tabelle angezeigt werden.
Aus welchen Jahren liegen Filme vor?
![Page 62: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/62.jpg)
PostGre - SQL, 21.11.13 Seite 62
Daten filtern
Dem Befehl WHERE folgen eine oder mehrere Bedingungen. Die Datensätze werden mit Hilfe der Bedingung gefiltert.
SELECT first_name, last_name
FROM staff
WHERE (active = TRUE)
ORDER BY last_name;
![Page 63: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/63.jpg)
PostGre - SQL, 21.11.13 Seite 63
Bedingungen
Überprüfung von Daten in einem Feld.
Ausdrücke, die einen boolschen (True, False) Wert zurückliefern.
Mit Hilfe von Vergleichsoperatoren wird ein Wert überprüft.
![Page 64: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/64.jpg)
PostGre - SQL, 21.11.13 Seite 64
Vergleichsoperatoren
ist ... Operator
gleich =
ungleich <>
kleiner <
kleiner gleich <=
größer >
größer gleich >=
![Page 65: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/65.jpg)
PostGre - SQL, 21.11.13 Seite 65
Überprüfung von Ganzzahlen
SELECT title, length
FROM film
WHERE (length > 60)
ORDER BY length;
![Page 66: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/66.jpg)
PostGre - SQL, 21.11.13 Seite 66
Überprüfung von Dezimalzahlen
SELECT customer_id, amount
FROM payment
WHERE (amount > 5.5)
ORDER BY customer_id;
Als Dezimaltrennzeichen wird ein Punkt genutzt.
Es werden Nährungswerte überprüft!
![Page 67: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/67.jpg)
PostGre - SQL, 21.11.13 Seite 67
Liste von Werten
SELECT title, rental_rate
FROM film
WHERE (rental_rate IN (0.99, 2.99))
ORDER BY title;
Einer Werte in der Liste muss zutreffen.
![Page 68: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/68.jpg)
PostGre - SQL, 21.11.13 Seite 68
Überprüfung von Datums- und Zeitwerten
SELECT *
FROM payment
WHERE (payment_date = '2007-03-01')
ORDER BY customer_id;
Datums- und Zeitwerte werden in Apostrophs eingeschlossen.
Konstante Datumswerte: YYYY-MM-DD.
![Page 69: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/69.jpg)
PostGre - SQL, 21.11.13 Seite 69
Zwischen … und ...
SELECT *
FROM payment
WHERE (payment_date BETWEEN '2007-03-01' AND '2007-03-31')
ORDER BY customer_id;
Zwischen [min] und [max].
Zwischen [Beginn Datum / Uhrzeit] und [Ende Datum / Uhrzeit].
![Page 70: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/70.jpg)
PostGre - SQL, 21.11.13 Seite 70
Überprüfung von boolschen Werten
IS TRUE. Ist das Feld gesetzt / an?
IS FALSE. Ist das Feld nicht gesetzt / aus?
SELECT first_name, last_name
FROM staff
WHERE (active IS TRUE)
ORDER BY last_name;
![Page 71: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/71.jpg)
PostGre - SQL, 21.11.13 Seite 71
Überprüfung von Text
SELECT last_name, first_name
FROM customer
WHERE (last_Name = 'May')
ORDER BY last_name;
Konstante Zeichenketten werden in Apostrophs eingeschlossen.
![Page 72: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/72.jpg)
PostGre - SQL, 21.11.13 Seite 72
Arbeiten mit Suchmustern
SELECT last_Name, first_Name, email
FROM customer
WHERE (email LIKE '%.%@%')
ORDER BY last_name;
Platzhalter %: Beliebige Anzahl von Zeichen.
Platzhalter _: Ein beliebiges Zeichen.
Die Platzhalter können an beliebiger Position in beliebiger Anzahl in einem Suchmuster vorkommen.
Beachtung von Groß- und Kleinschreibung.
![Page 73: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/73.jpg)
PostGre - SQL, 21.11.13 Seite 73
Suche nach leeren Zeichenfolgen
SELECT *
FROM address
WHERE (postal_code LIKE '')
ORDER BY city_id;
Das Feld ist leer, aber hat einen definierten Wert.
![Page 74: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/74.jpg)
PostGre - SQL, 21.11.13 Seite 74
Null-Werte abfragen
SELECT *
FROM address
WHERE (postal_code IS NULL)
ORDER BY city_id;
Das Feld hat einen undefinierten Wert.
![Page 75: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/75.jpg)
PostGre - SQL, 21.11.13 Seite 75
Not-Operator
SELECT *
FROM address
WHERE (postal_code NOT LIKE '')
ORDER BY city_id;
SELECT *
FROM address
WHERE (postal_code IS NOT NULL)
ORDER BY city_id;a Not a
True False
False True
Null Null
![Page 76: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/76.jpg)
PostGre - SQL, 21.11.13 Seite 76
AND-Operator
SELECT amount, customer_id
FROM payment
WHERE ((amount > 3.0) AND (amount < 4.0))
ORDER BY customer_id;
a b a AND b
True True True
True False False
False True False
False False False
True Null Null
False Null False
![Page 77: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/77.jpg)
PostGre - SQL, 21.11.13 Seite 77
Or-Operator
SELECT amount, customer_id
FROM payment
WHERE ((customer_id = 5) OR (customer_id = 6))
ORDER BY customer_id;
a b a Or b
True True True
True False True
False True True
False False False
True Null True
False Null Null
![Page 78: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/78.jpg)
PostGre - SQL, 21.11.13 Seite 78
Daten löschen
Daten können nur kaskadierend gelöscht werden. Zuerst werden die Daten in den Tabellen gelöscht, in dem der
Primärschlüssel als Fremdschlüssel genutzt wird. Anschließend können Datensätze mit dem Primärschlüssel gelöscht werden.
DELETE
FROM city
WHERE country_id = 20;
![Page 79: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/79.jpg)
PostGre - SQL, 21.11.13 Seite 79
Daten ändern
UPDATE [Tabelle]
SET [Feldname] = [neuer Wert], [Feldname] = [neuer Wert]
WHERE [Bedingung];
UPDATE customer
SET active = 0, activebool = FALSE
WHERE store_id = 2;
UPDATE payment
SET amount = amount + 1
WHERE amount < 1;
![Page 80: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/80.jpg)
PostGre - SQL, 21.11.13 Seite 80
Mathematische Operatoren
Operator Beschreibung Beispiel
+ Addition 2 + 3 = 5
- Subtraktion 2 – 3 = -1
* Multiplikation 2 * 3 = 6
/ Division 5 / 2 = 2.5
% Modula 5 % 2 = 1
^ Expontential 2^3 = 8
@ Absolutwert @-5 = 5
![Page 81: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/81.jpg)
PostGre - SQL, 21.11.13 Seite 81
Relationen ...
beschreiben Beziehungen zwischen Tabellen.
werden mit Hilfe von Primärschlüssel und Fremdschlüssel zwischen den Tabellen gebildet.
beschreiben Hierarchien zwischen Tabellen.
![Page 82: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/82.jpg)
PostGre - SQL, 21.11.13 Seite 82
Beispiel
IDKeyFeldname_AFeldname_B
Mastertabelle
IDKeyFIDkeyFeldname_A
Detailtabelle
IDProduktNrProduktnameProduktbeschreibung
Produkte
IDBestandAenderungFID_ProduktNrBestandaenderung
Lager
![Page 83: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/83.jpg)
PostGre - SQL, 21.11.13 Seite 83
Master- und Detailtabelle
Eine Mastertabelle beschreibt ein Objekt allgemein. Die Mastertabelle befindet sich in der Hierarchie oberhalb einer anderen Tabelle.
Eine Detailtabelle beschreibt ein Detail-Aspekt eines Objekts. Detailtabellen besitzen einen Fremdschlüssel aus einer anderen Tabelle.
Eine Mastertabelle kann eine Detailtabelle für ein bestimmtes Objekt sein.
![Page 84: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/84.jpg)
PostGre - SQL, 21.11.13 Seite 84
1:1-Relation
Jedem Datensatz aus der Mastertabelle kann exakt ein Datensatz in der Detailtabelle zugeordnet werden.
Nutzung bei Tabellen mit sehr vielen Spalten. Informationen werden in Abhängigkeit ihrer Nutzung
gespeichert.
ID_MitarbeiterNrVornameNachnameEMail
Mitarbeiter
ID_PersonFID_MitarbeiterNrGehaltGeburtsdatum
Personal
![Page 85: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/85.jpg)
PostGre - SQL, 21.11.13 Seite 85
1:n-Relation
Jedem Datensatz aus der Mastertabelle können beliebig viele Datensätze aus der Detailtabelle zugeordnet werden.
Häufigst vorkommende Relation.
IDProduktNrProduktnameProduktbeschreibung
Produkte
IDBestandAenderungFID_ProduktNrBestandaenderung
Lager
![Page 86: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/86.jpg)
PostGre - SQL, 21.11.13 Seite 86
m:n-Relation
Beliebig viele Datensätze können mit Datensätzen aus einer anderen Tabelle verknüpft werden.
Die Relation wird in einer Pseudo-Tabelle abgebildet.
ID_KursNrKursnameKursbeschreibung
Kurse
ID_TeilnehmerNrAnredeNachname
Teilnehmer
FID_KursNrFID_TeilnehmerID_Nr
Kurse_Teilnehmer
![Page 87: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/87.jpg)
PostGre - SQL, 21.11.13 Seite 87
Inner-Join-Verknüpfung
SELECT
customer.last_name, customer.first_name,
payment.amount
FROM customer
INNER JOIN payment
ON customer.customer_id = payment.customer_id;
Aktion: Kunden und deren Bezahlung.
![Page 88: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/88.jpg)
PostGre - SQL, 21.11.13 Seite 88
Beispiel
ID Erdteil
1 Europa
2 Asien
3 Afrika
4 Amerika
ID Erdteil Land
1 1 Belgien
2 1 Polen
3 3 Algier
4 2 Indien
Erdteil Land
Europa Belgien
Europa Polen
Afrika Algier
Asien Indien
![Page 89: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/89.jpg)
PostGre - SQL, 21.11.13 Seite 89
Left-Join-Verknüpfung
SELECT
customer.last_name, customer.first_name,
payment.amount
FROM customer
LEFT JOIN payment
ON customer.customer_id = payment.customer_id;
Aktion: Alle Kunden und falls vorhanden, deren Bezahlung.
![Page 90: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/90.jpg)
PostGre - SQL, 21.11.13 Seite 90
Beispiel
ID Erdteil
1 Europa
2 Asien
3 Afrika
4 Amerika
ID Erdteil Land
1 1 Belgien
2 1 Polen
3 3 Algier
4 2 Indien
Erdteil Land
Europa Belgien
Europa Polen
Afrika Algier
Asien Indien
Amerika
![Page 91: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/91.jpg)
PostGre - SQL, 21.11.13 Seite 91
Right-Join-Verknüpfung
SELECT
language.name,
film.title
FROM film
RIGHT JOIN language
ON film.language_id = language.language_id;
Aktion: Alle Sprachen und falls vorhanden, die dazugehörigen Filme.
![Page 92: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/92.jpg)
PostGre - SQL, 21.11.13 Seite 92
Beispiel
ID Erdteil
1 Europa
2 Asien
3 Afrika
4 Amerika
ID Erdteil Land
1 1 Belgien
2 1 Polen
3 3 Algier
4 2 Indien
Erdteil Land
Europa Belgien
Europa Polen
Afrika Algier
Asien Indien
![Page 93: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/93.jpg)
PostGre - SQL, 21.11.13 Seite 93
… und sortieren
SELECT
language.name,
film.title
FROM film
RIGHT JOIN language
ON film.language_id = language.language_id
ORDER BY language.name, film.title;
![Page 94: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/94.jpg)
PostGre - SQL, 21.11.13 Seite 94
Daten filtern
SELECT
language.name,
film.title, film.length
FROM film
RIGHT JOIN language
ON film.language_id = language.language_id
WHERE film.length > 100
ORDER BY language.name, film.length;
![Page 95: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/95.jpg)
PostGre - SQL, 21.11.13 Seite 95
1 : n : 1 -Relation
SELECT
category.name, film.title
FROM film
INNER JOIN film_category
ON film.film_id = film_category.film_id
INNER JOIN category
ON film_category.category_id = category.category_id;
![Page 96: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/96.jpg)
PostGre - SQL, 21.11.13 Seite 96
Aggregatfunktionen ...
fassen das Ergebnis einer SQL-Anweisung zusammen.
gruppieren alle Datenfelder in einer Abfrage. komprimieren Datensätze auf die angegebenen Datenfelder.
![Page 97: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/97.jpg)
PostGre - SQL, 21.11.13 Seite 97
… in SQL
Aggregatfunktion Erläuterung
Sum([Datenfeld]) Summe einer Spalte.
Avg([Datenfeld]) Durchschnitt einer Spalte.
Min([Datenfeld]) Kleinster Wert einer Spalte.
Max([Datenfeld]) Größter Wert einer Spalte.
Count([Datenfeld]) Anzahl der Datensätze. Leere Datenfelder werden nicht berücksichtigt.
Count(*) Alle Datensätze zählen. Undefinierte Datenfelder werden nicht berücksichtigt.
![Page 98: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/98.jpg)
PostGre - SQL, 21.11.13 Seite 98
Anzahl der Datensätze
SELECT
COUNT(*) AS customerPayCount
FROM customer
INNER JOIN payment
ON customer.customer_id = payment.customer_id;
Die Anzahl der Zeilen wird ausgegeben. Mit Hilfe von AS wird dem berechneten Feld ein neuer Name
zugewiesen.
![Page 99: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/99.jpg)
PostGre - SQL, 21.11.13 Seite 99
Grafische Darstellung
Kunde A
Kunde B
Kunde C
Kunde D
4
![Page 100: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/100.jpg)
PostGre - SQL, 21.11.13 Seite 100
Summe von Feld x
SELECT
SUM(amount) AS allPayment
FROM customer
INNER JOIN payment
ON customer.customer_id = payment.customer_id;
![Page 101: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/101.jpg)
PostGre - SQL, 21.11.13 Seite 101
Grafische Darstellung
6,20 €
59,80 €
7,80 €
6,20 €
6,80 €
4,20 €
7,80 €
1
1
2
2
1
2
![Page 102: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/102.jpg)
PostGre - SQL, 21.11.13 Seite 102
Felder gruppieren
SELECT
customer.last_Name,
SUM(amount) AS PaymentForCustomer
FROM customer
INNER JOIN payment
ON customer.customer_id = payment.customer_id
GROUP BY customer.last_Name
ORDER BY customer.last_Name;
![Page 103: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/103.jpg)
PostGre - SQL, 21.11.13 Seite 103
Hinweis
Für jedes Feld, welches in der SQL-Anweisung angegeben ist und nicht mit einer Aggregatfunktion wie Sum(), Count(), usw. berechnet wird, muss mit der Group-By-Anweisung zusammengefasst werden.
Null-Werte werden in der Group-By-Anweisung zusammengefasst.
![Page 104: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/104.jpg)
PostGre - SQL, 21.11.13 Seite 104
Grafische Darstellung
6,20 € 6,20 €
7,80 €
6,20 €
6,80 €
4,20 €
7,80 €
1
1
2
2
1
2
Bestellung 1
Bestellung 2
Bestellung 2
Bestellung 3
Bestellung 3
Bestellung 4
20,20 €
17,80 €
15,60 €
![Page 105: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/105.jpg)
PostGre - SQL, 21.11.13 Seite 105
Daten filtern
SELECT
customer.last_Name,
SUM(amount) AS PaymentForCustomer
FROM customer
INNER JOIN payment ON customer.customer_id = payment.customer_id
WHERE customer.last_Name LIKE 'A%'
GROUP BY customer.last_Name
ORDER BY customer.last_Name;
![Page 106: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/106.jpg)
PostGre - SQL, 21.11.13 Seite 106
Having-Klausel
SELECT
customer.last_Name,
SUM(amount) AS PaymentForCustomer
FROM customer
INNER JOIN payment
ON customer.customer_id = payment.customer_id
GROUP BY customer.last_Name
HAVING SUM(amount) > 100
ORDER BY customer.last_Name;
![Page 107: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/107.jpg)
PostGre - SQL, 21.11.13 Seite 107
Hinweise
Der Befehl Where bezieht sich auf Felder, die nicht mit Hilfe einer Aggregatfunktion zusammengefasst werden. Die Where-Klausel filtert einzelne Datensätze.
Der Befehl Having bezieht sich auf Felder, deren Felder mit Hilfe von Aggregatfunktionen berechnet wurden. Die Having-Klausel filtert Gruppen von Datensätze.
![Page 108: PostGre – SQL-Anweisungen in pgAdmin · PDF fileWITH OWNER = postgres -- Eigentümer der Datenbank ENCODING = 'UTF8' -- Zeichencodierung TABLESPACE = pg_default -- Speicherort der](https://reader031.fdocument.pub/reader031/viewer/2022022001/5a7a05a47f8b9ab83f8d8a29/html5/thumbnails/108.jpg)
PostGre - SQL, 21.11.13 Seite 108
Kombination
SELECT
customer.last_Name, SUM(amount) AS PaymentForCustomer
FROM customer
INNER JOIN payment ON customer.customer_id = payment.customer_id
WHERE customer.last_Name LIKE 'A%'
GROUP BY customer.last_Name
HAVING SUM(amount) > 100
ORDER BY customer.last_Name;