Erstellt eine Domäne in einer Datenbank.
CREATE { DOMAIN | DATATYPE } [ AS ] domain-name data-type [ [ NOT ] NULL ] [ DEFAULT default-value ] [ CHECK ( condition ) ] [ AS USER user-name ]
domain-name : identifier
data-type : built-in data type, with precision and scale
DOMAIN | DATATYPE-Klausel Es wird empfohlen, CREATE DOMAIN zu verwenden anstatt CREATE DATATYPE, da CREATE DOMAIN im SQL/2008-Standard definiert ist.
NULL-Klausel Mit dieser Klausel können Sie die Nullwertfähigkeit einer Domäne angeben. Wenn eine Domäne zur Definition einer Tabelle verwendet wird, wird die Nullwertfähigkeit folgendermaßen bestimmt:
In der Spaltendefinition.
In der Domänendefinition.
Wenn die Nullwertfähigkeit weder in der Spalten- noch in der Domänendefinition explizit angegeben ist, wird die Einstellung der Option allow_nulls_by_default verwendet.
CHECK-Klausel Für die Erstellung einer Domäne mit CHECK-Integritätsregel können Sie in der Suchbedingung den Namen einer Variablen verwenden, dem das Zeichen "@" vorangestellt wird. Wenn der Datentyp in der Definition einer Spalte verwendet wird, wird eine solche Variable durch den Spaltennamen ersetzt. Dadurch kann die CHECK-Integritätsregel einer Domäne auf jede mit dieser Domäne definierte Tabellenspalte angewendet werden.
AS USER-Klausel Gibt den Eigentümer des Objekts an.
Domänen sind Aliasnamen für integrierte Datentypen, und beinhalten ggf. auch Gesamtstellen- und Dezimalstellenwerte. Sie verbessern den Bedienungskomfort und unterstützen die Konsistenz in der Datenbank.
Domänen sind Objekte innerhalb einer Datenbank. Ihre Namen müssen den Regeln für Bezeichner entsprechen. Bei Domänennamen wird die Groß-/Kleinschreibung genauso wie bei integrierten Datentypnamen nicht berücksichtigt.
Der Benutzer, der einen Datentyp erstellt, wird automatisch zum Eigentümer dieses Datentyps. In der CREATE DATATYPE-Anweisung kann kein Eigentümer angegeben werden. Der Domänenname muss eindeutig sein, und alle Benutzer können auf den Datentyp zugreifen, ohne den Eigentümer als Präfix zu verwenden.
Domänen können CHECK-Bedingungen und DEFAULT-Werte haben. Außerdem können Sie angeben, ob der Datentyp NULL zulässt oder nicht. Diese Bedingungen und Werte werden an alle Spalten vererbt, die mit dieser Domäne definiert wurden. Alle explizit in der Spalte angegebenen Bedingungen oder Werte heben die für die Domäne angegebenen auf.
Sie müssen das CREATE DATATYPE-Systemprivileg oder das CREATE ANY OBJECT-Systemprivileg haben, um Domänen erstellen zu können, deren Eigentümer Sie sind. Sie können keine Domänen erstellen, deren Eigentümer andere Benutzer sind.
Automatisches Festschreiben (Autocommit).
SQL/2008 Die Domänenunterstützung ist die optionale SQL-Sprachenfunktion F251 des SQL/2008-Standards.
Die folgende Anweisung erstellt eine Domäne mit dem Namen address, die eine Zeichenfolge aus 35 Zeichen enthält und NULL zulässt.
CREATE DOMAIN address CHAR( 35 ) NULL; |
Die folgende Anweisung erstellt eine Domäne namens ID, die NULL nicht zulässt und standardmäßig auf "autoincrement" gesetzt ist.
CREATE DOMAIN ID INT NOT NULL DEFAULT AUTOINCREMENT; |
Die folgende Anweisung erstellt eine Domäne mit dem Namen PhoneNumber, die mithilfe eines regulären Ausdrucks innerhalb einer CHECK-Integritätsregel sicherstellt, dass die Zeichenfolge eine korrekt formatierte nordamerikanische Telefonnummer mit 12 Zeichen enthält, bestehend aus dreistelliger Vorwahl, dreistelliger Vermittlungsnummer und vierstelliger Durchwahl, getrennt entweder durch Bindestriche oder durch Leerzeichen.
CREATE DOMAIN PhoneNumber CHAR(12) NULL CHECK( @PhoneNumber REGEXP '([2-9][0-9]{2}-[2-9][0-9]{2}-[0-9]{4})|([2-9][0-9]{2}\s[2-9][0-9]{2}\s[0-9]{4})'); |
Einige Spalten in einer Datenbank werden für Namen von Mitarbeitern verwendet, andere für Adressen. Sie können dazu folgende Domänen definieren:
CREATE DOMAIN persons_name CHAR(30) CREATE DOMAIN street_address CHAR(35); |
Wenn Sie diese Domänen definiert haben, können Sie sie genauso verwenden wie die integrierten Datentypen. Sie können diese Definitionen folgendermaßen verwenden, um eine Tabelle zu definieren. Sie müssen das CREATE TABLE-Privileg haben, um die folgende Anweisung ausführen zu können.
CREATE TABLE myCustomers ( ID INT DEFAULT AUTOINCREMENT PRIMARY KEY, Name persons_name, Street street_address); |
Im obigen Beispiel wird der Primärschlüssel der Tabelle als Ganzzahl definiert. Viele Ihrer Tabellen benötigen ähnliche Bezeichner. Statt nun jedesmal anzugeben, dass es sich dabei um Ganzzahlen handelt, ist es bequemer, eine Bezeichnerdomäne für diese Anwendungen anzugeben.
Wenn Sie eine Domäne erstellen, können Sie einen Standardwert festlegen und eine Prüf-Integritätsregel bereitstellen, um sicherzustellen, dass keine falschen Werte in eine Spalte dieses Typs eingegeben werden.
Ganzzahlwerte werden im Allgemeinen als Tabellenbezeichner verwendet. Eine gute Methode für eindeutige Bezeichner besteht darin, positive Ganzzahlen zu verwenden. Da solche Bezeichner wahrscheinlich in vielen Tabellen verwendet werden, könnten Sie folgende Domäne definieren:
CREATE DOMAIN identifier UNSIGNED INT DEFAULT AUTOINCREMENT; |
Unter Verwendung dieser Definition können Sie die Definition der Tabelle "Customers" neu schreiben, wie es oben gezeigt wird.
CREATE TABLE Customers2 ( ID identifier PRIMARY KEY, Name persons_name, Street street_address ); |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |