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