Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » SQL-Dialekte und Kompatibilität » SQL-Dialekte

 

Funktionen, die in anderen SQL-Implementierungen nicht verfügbar sind

Die folgenden, von SQL Anywhere unterstützten SQL-Funktionen sind in vielen anderen SQL-Implementierungen nicht zu finden.

Datumsangaben

SQL Anywhere hat Datums-, Zeit- und Zeitstempeltypen, die Jahr, Monat, Tag, Stunde, Minute, Sekunde und Sekundenbruchteile umfassen. Für Einfügungen oder Aktualisierungen in Datumsfelder oder Vergleiche mit Datumsfeldern wird ein freies Datumsformat unterstützt.

Zusätzlich sind die folgenden Vorgänge mit Datumsangaben zulässig:

  • Datum + Ganzzahl   Fügt die angegebene Anzahl von Tagen zu einem Datum hinzu

  • Datum - Ganzzahl   Zieht die angegebene Anzahl von Tagen von einem Datum ab

  • Datum - Datum   Berechnet die Anzahl von Tagen zwischen zwei Datumsangaben

  • Datum + Zeit   Macht aus einem Datum und einer Zeit einen Zeitstempel

Es sind ebenfalls viele Funktionen zum Ändern von Datumsangaben und Zeiten vorgesehen. Unter SQL-Funktionen finden Sie eine Beschreibung.

Integrität

SQL Anywhere unterstützt sowohl Entitätsintegrität als auch referenzielle Integrität. Dies wurde über die beiden folgenden Erweiterungen der Befehle CREATE TABLE und ALTER TABLE implementiert.

PRIMARY KEY ( Spaltenname, ... )
[NOT NULL] FOREIGN KEY [Rollenname]
            [(Spaltenname, ...)]
         REFERENCES Tabellenname [(Spaltenname, ...)]
            [ CHECK ON COMMIT ]

Die Klausel PRIMARY KEY deklariert den Primärschlüssel für die Beziehung. SQL Anywhere erzwingt dann einen eindeutigen Primärschlüssel und stellt sicher, dass keine Spalte im Primärschlüssel NULL enthält.

Die Klausel FOREIGN KEY legt eine Beziehung zwischen dieser Tabelle und einer anderen Tabelle fest. Diese Beziehung wird von einer Spalte (oder Spalten) in dieser Tabelle repräsentiert, die Werte im Primärschlüssel einer anderen Tabelle enthalten muss. Das System stellt dann die referenzielle Integrität für diese Spalten sicher - immer, wenn diese Spalten geändert werden oder eine Zeile in diese Tabelle eingefügt wird, werden diese Spalten überprüft, um sicherzustellen, dass entweder eine oder mehrere Spalten NULL sind oder die Werte mit den entsprechenden Spalten einer Zeile im Primärschlüssel der anderen Tabelle übereinstimmen. Weitere Hinweise finden Sie unter CREATE TABLE-Anweisung.

Joins

SQL Anywhere ermöglicht automatische Joins zwischen Tabellen. Zusätzlich zu den in anderen Implementierungen unterstützten Join-Operatoren NATURAL und OUTER lässt SQL Anywhere KEY-Joins zwischen Tabellen zu, basierend auf Fremdschlüssel-Beziehungen. Dies reduziert die Komplexität der WHERE-Klausel beim Ausführen von Joins.

Aktualisierungen

SQL Anywhere lässt zu, dass mehr als eine Tabelle durch den Befehl UPDATE referenziert wird. Über mehr als eine Tabelle festgelegte Ansichten können ebenfalls aktualisiert werden. Viele SQL-Implementierungen lassen keine Aktualisierungen von verknüpften Tabellen zu.

Tabellen ändern

Der Befehl ALTER TABLE wurde erweitert. Zusätzlich zu Änderungen der Entität und referenziellen Integrität sind die folgenden Änderungstypen zulässig:

ADD column Datentyp
ALTER column Datentyp
DELETE column
RENAME Name_neue_Tabelle
RENAME alte_Spalte TO neue_Spalte

Mit der Klausel ALTER kann die maximale Länge einer Zeichenspalte geändert und von einem Datentyp in einen anderen konvertiert werden. Weitere Hinweise finden Sie unter ALTER TABLE-Anweisung.

Unterabfragen, in denen Ausdrücke zulässig sind

SQL Anywhere lässt Unterabfragen überall dort zu, wo Ausdrücke erlaubt sind. Viele SQL-Implementierungen lassen Unterabfragen nur auf der rechten Seite eines Vergleichsoperators zu. Der folgende Befehl ist zum Beispiel in SQL Anywhere gültig, aber nicht in den meisten anderen SQL-Implementierungen.

SELECT Surname,
  BirthDate,
  (  SELECT DepartmentName
     FROM Departments
     WHERE EmployeeID = Employees.EmployeeID
     AND DepartmentID = 200 )
FROM Employees;
Zusätzliche Funktionen

SQL Anywhere unterstützt einige Funktionen, die nicht in der ANSI SQL-Definition enthalten sind. Unter SQL-Funktionen finden Sie eine Liste aller verfügbaren Funktionen.

Cursor

Bei der Verwendung von Embedded SQL können Cursor-Positionen frei in der Anweisung FETCH verschoben werden. Cursor können vorwärts und rückwärts, relativ zur aktuellen Position oder einer angegebenen Anzahl von Datensätzen vom Anfang oder Ende des Cursors verschoben werden.

Alias-Referenzen

SQL Anywhere erlaubt, dass Alias-Ausdrücke in der Auswahlliste einer Abfrage in anderen Teilen der Abfrage referenziert werden. Die meisten anderen SQL-Implementierungen erlauben dies nicht.