SQL-Befehlssatz
SQL ist eine
leistungsfähige Sprache, mit der man mit kurzen Anweisungen in relationalen
Datenbanken operieren kann. Die Sprachsyntax und der -umfang sind nicht
einheitlich geregelt und können von Hersteller zu Hersteller variieren.
Der im Programm eingebaute Syntaxinterpreter unterstützt eine Teilmenge von
ANSI-Standard-SQL.
Mit SQL können Sie Abfragen erstellen, Tabellen und Indizes erzeugen, ändern
und löschen, sowie Felder manipulieren.
Erfahrungsgemäß werden vor allem SQL-Abfragen erstellt.
Abfragesyntax
SELECT [ALL|DISTINCT] {spalten|*}
FROM tabelle [AS alias] [tabelle [AS alias]]...
[WHERE {bedingung}]
[GROUP BY spalten [HAVING {bedingung|subquery}]]
[ORDER BY spalten [ASC|DESC]...]
Dabei wurden alle SQL-Begriffe in Großbuchstaben
geschrieben, alle zu ersetzenden Begriffe in Kleinbuchstaben.
Teile, die nicht immer notwendig sind, stehen in eckigen Klammern und Teile, bei
denen es mehrere Möglichkeiten gibt, stehen in geschweiften Klammern und sind
durch einen senkrechten Strich geteilt.
Die SQL-Syntax unterscheidet nicht zwischen Groß- und Kleinschreibung und benötigt
keine Zeilentrennungen zwischen den Elementen.
Operatoren, die in Bedingungen Verwendung finden, nach ihrer Bindekraft geordnet:
Multiplikation |
* |
Division |
/ |
Addition |
+ |
Subtraktion |
- |
Gleichheit |
= |
Ungleichheit |
!= oder <> |
Vergleiche |
>, <, >=, <= |
Enthaltensein |
IN menge |
Nullwert |
IS [NOT] NULL |
Bereich |
BETWEEN start AND ende |
Ähnlichkeit |
LIKE muster mit wildcards % und _ |
Negation |
NOT |
logisches Und |
AND |
logisches Oder |
OR |
Runde Klammern werden zum Bilden von Teilbedingungen benutzt.
Zeichenkettenaddition |
+ oder || (nur BDE) |
Teilzeichenkette |
für BDE: SUBSTRING(spalte FROM start FOR länge) |
Kleinbuchstaben |
für BDE: LOWER |
Großbuchstaben |
für BDE: UPPER |
Datumsentschlüsselung |
für BDE: EXTRACT {YEAR| MONTH| DAY| HOUR| MINUTE|
SECOND} FROM spalte |
Gruppierungsfunktionen werden in Verbindung mit der GROUP BY –Klausel verwendet.
Maximum der Spaltenwerte |
MAX |
Minimum der Spaltenwerte |
MIN |
Summe der Spaltenwerte |
SUM |
Durchschnitt der Spaltenwerte |
AVG |
Anzahl der Datenbankeinträge |
COUNT |
Zeichenketten sind in Anführungsstriche zu setzen, gebrochene Zahlen müssen mit Dezimalpunkt geschrieben werden, Datumsangaben in der Syntax tt/mm/jjjj (tt: Tag, mm: Monat, jjjj: Jahr).
Kommentare werden mit /* eingeleitet und mit */ beendet.
Beispiele:
-
Auflistung aller Felder und Sätze aus der Bankendatei:
select * from Bank -
Auflistung aller Filialen der Dresdner Bank, mit der größten Banknummer beginnend. Beachten Sie die richtige Groß- und Kleinschreibung in der WHERE-Klausel:
select Banknummer, Name
from Bank
where upper(Name) like'DRESDNER BANK%'
order by Banknummer desc -
Kundenabhängige Aufsummierung aller Offenen Posten aus Rechnungen im Mandanten 1. Außerdem werden die Anzahl und die durchschnittliche Höhe des OP‘s angezeigt:
select KLNr, SUM(Offen) as Gesamt,
COUNT(Offen) as Anzahl,
AVG(Offen) as Durchschnitt
from OPOS
where OPTyp='1' and Status='O'
group by KLNr -
Anzeige von Kundennummer und Name von allen (unterschiedlichen - distinct) Kunden, die offene Rechnungen besitzen:
select distinct opos.KLNr,KUNDEN.Name
from OPOS
join KUNDEN on OPOS.KLNr=KUNDEN.Nummer
where opos.OPTyp='1'
and opos.Status='O'