Die folgenden, von SQL Anywhere unterstützten SQL-Funktionen sind in vielen anderen SQL-Implementierungen nicht zu finden.
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.
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.
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.
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.
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.
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; |
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.
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.
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.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |