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äss 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 Grossbuchstaben
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 Gross- 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 |
Grossbuchstaben |
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össten Banknummer beginnend. Beachten Sie die richtige Gross- 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. Ausserdem 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'