Zum Hauptinhalt springen

SQL Statements

Select

Standard Abfrage:

SELECT * FROM abteilung where id=1;

Insert

Standard Insert:

INSERT INTO abteilung (abteilung, ort) VALUES ('Marketing', 'Büro hinten rechts');

Update

Standard Update:

UPDATE abteilung SET abteilung='Lager', ort='erstes Buero' WHERE id=2;

Create Table

CREATE TABLE taetigkeit (
ID SERIAL,
Bezeichnung varchar(255),
Beginn varchar(255),
Ende varchar(255),
Dauert varchar(255),
aufgabe integer,
mitarbeiter integer,
CONSTRAINT taetigkeit_pk PRIMARY KEY (ID),
CONSTRAINT aufgabe_fk FOREIGN KEY (aufgabe)
REFERENCES aufgabe(ID) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT mitarbeiter_fk FOREIGN KEY (mitarbeiter)
REFERENCES mitarbeiter(ID) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
);

Erklärung: id SERIAL = Es wird eine Seqenz eingeleitet (MYSQL Auto_incroment)

CONSTRAINT taetigkeit_pk PRIMARY KEY (ID) = Hier wird der Primäre Schlüssel defeniert

CONSTRAINT mitarbeiter_fk FOREIGN KEY (mitarbeiter)
REFERENCES mitarbeiter(ID) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION

Es wird eine Referentielle Identität erstellt (Fremdschlüssel). Mit der Tabelle mitarbeiter und der Spalte id. Außerdem sind Optionen hinterlegt, keine aktion bei der löschung eine Datensatzes sowie keine aktion bei einem update.

Drop

DROP TABLE abteilung;

Transaktionen

Transaktionen starten mit:

begin;

Transaktionen löschen (wiederherstellen)

rollback;

Transaktion übernehmen

commit;

Übersicht der Tabellen

Eine Übersicht der Tabellen in der Datenbank kann man mittels:

\d

oder

\dt

bekommen. Dies Ausgabe würde ungefähr so aussehen.

                    Liste der Relationen
Schema | Name | Typ | Eigentümer
--------+----------------------------+---------+------------
public | _syncinfo | Tabelle | postgres
public | _systemmapping | Tabelle | postgres
public | crm_bankverbindungen | Tabelle | postgres
public | crm_communication | Tabelle | postgres
public | crm_contactpersons | Tabelle | postgres

Eine Tabelle Übersicht zu bekommen ist auch möglich

\d hr_abwesenheit

SQL UPPER and LOWER Functions

Wandelt die Zeichen in groß oder klein um.

SELECT UPPER('Upper'),LOWER('Lower')

UPPER('Upper') LOWER('Lower')
-------------- --------------
UPPER lower

Typumwandlung

plz::integer

UPDATE geo_orte
SET bundesland_code = 'DE-SN'
WHERE plz::integer BETWEEN 01001 AND 01936;

Zwischen

Werte müssen natürlich Integer Werte sein. Text werte sind dafür nicht geeignet.

UPDATE geo_orte
SET bundesland_code = 'DE-SN'
WHERE plz::integer BETWEEN 01001 AND 01936;

oder

plz >= 1001 and plz <= 1936

Explain

Falls man ein SQL Befehl hat und nicht genau weiß was er anstellt so kann ein explain helfen.

EXPLAIN UPDATE geo_orte SET bundesland_code = 'DE-TH' WHERE plz::integer BETWEEN '07952' AND '07952';

Mit Hilfe vom Explain lässt sich gut anschauen wie er diese SQL Anweisung verarbeiten würde.

Clear

Die Konsole kann mit dem Linux-Kommando clear bereinigt werden. Dafuer muss mit in Postgresql der externe Befehl mit einem Ausrufezeichen (wie im vi) eingeleitet werden.

\! clear