Show Menu
Cheatography

Wichtige PosgreSQL Befehle

Datentyp

integer: 1,2,3
serial: fortlaufende Ganzahl
float: 1.23
numeric: 1, 1.23
varchar: 'Hallo Welt!'
date: '2001-01-21'
time: '11:55:30'
timestamp: '2014-10-02 10:39:26.332'
current_timestamp: '2014-10-02 10:39:26.332'
boolean: true, false

Einsch­rae­nkung (Const­raint)

PRIMARY KEY ... Primär­sch­lüssel
UNIQUE ... Einzig­artiger Wert
NOT NULL ... Eingabe muss erfolgen
CHECK ... Defini­erter Werteb­ereich
DEFAULT ... Wenn nichts einget­ragen
REFERENCES ... Verweis auf Primär­sch­lüssel

Bedingung

Logisch: =,<­>,!­=,<­,>,­<=,­>=
Grenzen: BETWEEN minimum AND maximum
Aus Menge: IN (wert, ...)
Wortstück: LIKE 'stringteil''
... WHERE alter = 35
... WHERE alter BETWEEN 35 AND 45;
... WHERE alter IN (35,45­,55);
... WHERE name LIKE '%ei%';
... WHERE name LIKE '%er;'

Aggreg­atf­unk­tionen

AVG() ... Mittelwert der Spalte
COUNT() ... Anzahl der Tupel
MAX() ... Maximaler Wert der Spalte
MIN() ... Minimaler Wert der Spalte
STDDEV() ... Standa­rdabw der Spalte
SUM() ...Summer der Spalte
VARIANCE() ...Varianz der Spalte

Als WHERE-­Bed­ingung ist keine Aggreg­atf­unktion möglich.
SELECT MAX(einkommen)
FROM person;
 

Verknu­epf­ung­ope­ratoren

AND
OR

Tabelle erstellen

CREATE TABLE tabell­enname (
attrib­utname datentyp constraint,
...
);
CREATE TABLE personen (
id serial UNIQUE PRIMARY KEY,
name varchar NOT NULL,
alter integer NOT NULL CHECK (alter
IN(25,­35,­45,­55)),
einkommen float NOT NULL CHECK(­ein­kommen
BETWEEN 1000.00 AND 3000.00),
zeitst­empel timestamp DEFAULT curren­t_t­ime­stamp,
auto integer REFERENCES kfz(nu­mmer)
);

Tabelle loeschen

DROP TABLE tabell­enname;
DROP TABLE personen;

Tabelle aus besteh­ender erstellen

CREATE TABLE tabell­enname2
AS (
abfrage
FROM tabell­enname1
);
CREATE TABLE person­en_neu
AS (
SELECT * FROM personen
);

Datensatz erstellen

INSERT INTO tabell­enname (
attrib­utname,
...
) VALUES (
wert,
...
);
INSERT INTO personen (
name,
alter,
einkommen,
auto
) VALUES (
'Hans Gruber',
35,
2487.24,
'G383AS'
);

Spalte in Tabelle erstellen

ALTER TABLE tabell­enname
ADD attrib­utname datentyp;
ALTER TABLE personen
ADD ledig BOOLEAN;
 

Gesamten Tabell­eni­nhalt loeschen

DELETE FROM tabell­enname
DELETE FROM personen;

Bestimmte Tabell­eni­nhalte loeschen

DELETE FROM tabell­enname
WHERE bedingung
DELETE FROM personen
WHERE alter=35;

Tabell­eni­nhalte editieren

UPDATE tabell­enname
SET attrib­utname;
UPDATE personen
SET alter = 55
WHERE
name = 'Hans Gruber';

Gesamten Tabell­eni­nhalt abfragen

SELECT * FROM tabell­enname
SELECT * FROM personen;

Bestimmte Tabell­eni­nhalte abfragen

SELECT attrib­utname
FROM tabell­enname
WHERE bedingung;
SELECT name , alter
FROM personen;

SELECT name, alter
FROM personen
WHERE einkommen <= 2000.00
OR
WHERE einkommen >=3000;

Versch­ach­telte Abfragen

SELECT attrib­utname
FROM tabell­enname
WHERE attrib­utname bedingung (
SELECT ...
);
SELECT *
FROM personen
WHERE einkommen = (
SELECT MAX(einkommen)
FROM personen
);

Mehrere Tabellen Abfragen

SELECT tabell­enname1.attrib­utname1
FROM tabell­enname1, tabell­enname2
WHERE tabell­enname1.attrib­utname1 = tabell­enname2.attrib­utn­ame2*;
SELECT person­en.name
FROM personen, vorgaben
WHERE person­en.e­in­kommen < vorgab­en.m­in­des­tlohn;

Variab­lenname deklar­ieren

... FROM tabell­enname as variab­lenname, ...
SELECT a.name
FROM personen as a, vorgaben as b
WHERE a.eink­ommen < b.mind­estlohn;

Synthe­tische Tabelle erstellen (View)

CREATE VIEW viewname AS abfrage
CREATE VIEW reiche­_pe­rsonen
AS
SELECT name
FROM personen
WHERE einkommen >10­000­0.00;
               
 

Comments

No comments yet. Add yours below!

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.

          Related Cheat Sheets

          MySQL Cheat Sheet
          SQL Server Cheat Sheet
          PostgreSQL Configuration Cheat Sheet