SQL-Syntax

In diesem Abschnitt ist die Syntax der SQL-Anweisungen zusammengefaßt

Die Klauseln CREATE SCHEMA und AUTHORISATION sind nicht aufgeführt. Abweichungen der verschiedenen Implementationen müssen in den entsprechenden Tools nachgeschlagen werden.

 DDL:  Data Definition Language

Tabellendefinition

 Für typ können- bei fast allen Implementationen- folgende Typen verwendet werden: SMALLINT, INTEGER, FIXED, FLOAT, CHARACTER, DATE und TIME.

 CREATE TABLE tabelle

(spalte1  typ1 [NOT NULL [UNIQUE]],

spalten typn [NOT NULL [UNIQUE]]

[ PRIMARY KEY (spaltei [‚ spaltej …..])]

[FOREIGN KEY [keyname] (spaltek [, spaltel…])

REFERENCES tab [ON DELETE RESTRICT|CASCADE|SET NULL)] );

 

DROP TABLE tabelle;

ALTER TABLE tabelle ADD (spalte typ [NOT NULL] [,…]);

CREATE VIEW vtabelle [(spalte1, ...)] AS select-anweisung [WITH CHECK OPTION]

 DROP VIEW tabelle

Indexdefinition

CREATE [UNIQUE] INDEX name ON TABLE tabelle (spaltei)

DROP INDEX name

Vergabe von Rechten

 

Als Rechte können vergeben werden: SELECT, INSERT, DELETE, UPDATE (eingeschränkt auf spezielle Spalten) oder ALL.

 Für benutzerliste kann PUBLIC eingesetzt werden, um alle zu berechtigen, oder eine durch Kommata getrennte Liste von Benutzerkennungen.

GRANT recht 0N tabelle TO benutzerliste [WITH GRANT OPTION]

REVOKE recht FROM benutzer

 Synonymdefinition

 CREATE SYNONYM sname FOR tabelle

 DROP SYNONYM snamne

DML:Data Manipulation Language

Einfache SELECT-Anweisung

Für ausdruck i darf ein (vollqualifizierter) Spaltenname oder ein allgemeiner algebraischer Ausdruck, der sich aus Konstanten, Spaltennamen, skalaren Funktionen und einer Spaltenfunktion zusammensetzen kann, benutzt werden.

Für suchbedingung1 kann ein logischer Ausdruck eingesetzt werden. Der Ausdruck wird durch Klammersetzung und die logischen Operatoren AND, OR und NOT aufgebaut aus Vergleichen und den Prädikaten, die durch Benutzung von BETWEEN, IS NULL, LIKE, EXISTS bzw. IN gebildet werden.

Die Konstruktionen EXISTS und IN wie auch die verallgemeinerten Vergleiche unter Benutzung von ALL und ANY ermöglichen den Gebrauch von Unteranfragen.

 Die GROUP BY-Klausel kann nur mit Spaltennamen benutzt werden. Durch diese Klausel wird eine Gruppierung der Ergebnistabelle nach den angegebenen Spalten erreicht.

Die HAVING-Klausel bildet eine Auswahlbedingung für die in der GROUP BY-Klausel erzeugten Gruppen.

SELECT [DISTINCT] ausdruck1 [‚ ausdruck2, ...] FROM  tabelle1 [ref1 [‚ tabelle2 [ref2] .. .] WHERE suchbedingung 1] [GROUP BY spalte1 [‚ spalte2 .. [HAVING suchbedingung2]

Ordnen

Spalten können entweder über den Namen oder über die Spaltennummer angeben werden. Die zweite Form muß verwendet werden, wenn die Spalte  als Ausdruck definiert wurde.

 ORDER BY spalte1 [ord1] [‚ spalte2 [ord2] .

 

Einfügen

             INSERT INTO tabelle  [(spaltei [, spaltej…])] VALUES (wert 1 [‚ wert 2...])

Löschen

Entfällt die WHERE-Klausel, so wird der ganze Tabelleninhalt gelöscht.

DELETE FROM tabelle [WHERE suchbedingung]

Verändern

UPDATE tabelle SET spaltei = werti [‚ spaltej = wertj...] [WHERE suchbedingung]

DCL:  Data Control Language

Anmelden

CONNECT benutzer [IDENTIFIED BY passwort]

Transaktionsgrenzen

Zugleich werden implizit und explizit gesetzte Sperren wieder freigegeben.

COMMIT WORK [RELEASE]

 ROLLBACK WORK [RELEASE]