Grundform einer Anfrage
SELECT FROM WHERE
SELECT-Klausel
entspricht der Projektion der relationalen Algebra → aber: Duplikatelimination nur, wenn nach select DISTINCT steht
FROM-Klausel
Angabe der Relation(en)
mehrere Einträge: kartesisches Produkt wird gebildet
WHERE-Klausel
entspricht der Selektion der relationalen Algebra
Verknüpfung von zwei Blöcken
UNION (Vereinigung) INTERSECT (Durchschnitt) EXCEPT (Differenz)
Änderungsoperationen
Subqueries
(select...from...where)
-> steht meist hinter IN bzw. NOT IN
Existenz-Quantor
where exists (Subquery)
Allquantor
where not exists (select..from..where not..)
Sortieren
order by -> ASC oder DESC
Aggregationen (stehen nur in SELECT-Klausel)
-> Aggregationen beziehen sich immer auf Spalten -> ggf. GROUP BY notwendig
View (Sicht)
virtuelle Relation (Relation existiert eig. nicht)
Viewerzeugung
create [or replace] view Vname as select...from...[where...]
View löschen
drop view VName
Integritätsbedingungen: wo stehen sie?
stehen hinter dem Attribut bei der Erstellung der Relation
Integritätsbedingung: Attribut darf nicht undefiniert sein
NOT NULL
Integritätsbedingung: Primärschlüssel aus 1 Attribut
PRIMARY KEY
Integritätsbedingung: Formel f wird bei jeder Einfügung überprüft
CHECK f
Integritätsbedingung: Verweis auf Attribut a von Tabelle t
references t(a)
Integritätsbedingung: Default-Wert falls unbesetzt
DEFAULT w
zusammengesetzter Primärschlüssel
PRIMARY KEY (s1, s2,...)
Verweis auf zusammengesetzten Schlüssel in t
FOREIGN KEY (s1, s2,...) references t(...)
WHERE-Klausel: Vergleichsoperatoren
=, <, <=, >, >=, <>
WHERE-Klausel: Alternative zu A >= x AND A <= y
A BETWEEEN x AND y
WHERE-Klausel: Wert definiert/undefiniert
A IS NULL / IS NOT NULL
WHERE-Klausel: schauen ob (Teil)string enthalten ist
A LIKE 'ver%'
WHERE-Klausel: schauen, ob Wert in Liste vorkommt
A IN (2,8,9,15)
WHERE-Klausel: und, oder, nicht
AND, OR, NOT
Relation (Tabelle) erzeugen
CREATE TABLE bestellung (
bestellnr integer primary key,
notizen varchar(50)
);
Attribute hinzufügen (Spalten)
ALTER TABLE … ADD COLUMN …
→ ! Name + Datentyp hinschreiben
Tabelle löschen
DROP TABLE
-> ! zuerst Tabellen löschen, von der Fremdschlüssel-Beziehungen ausgehen