Collection Contents Index Binary data types Java class data types pdf/chap7.pdf

Reference Manual
   CHAPTER 7. SQL Data Types     

User-defined data types


Function 

User-defined data types are aliases for built-in data types, including precision and scale values where applicable, and optionally including DEFAULT values and CHECK conditions.

User-defined data types, also called domains, allow columns throughout a database to be automatically defined on the same data type, with the same NULL or NOT NULL condition, with the same DEFAULT setting, and with the same CHECK condition. This encourages consistency throughout the database.

Simple user-defined data types 

User-defined data types are created using the CREATE DOMAIN statement For full description of the syntax, see CREATE DOMAIN statement.

The following statement creates a data type named street_address, which is a 35-character string.

CREATE DOMAIN street_address CHAR( 35 )

CREATE DATATYPE can be used as an alternative to CREATE DOMAIN, but is not recommended because CREATE DOMAIN is the syntax used in the draft SQL/3 standard.

Resource authority is required to create data types. Once a data type is created, the user ID that executed the CREATE DOMAIN statement is the owner of that data type. Any user can use the data type. Unlike with other database objects, the owner name is never used to prefix the data type name.

The street_address data type may be used in exactly the same way as any other data type when defining columns. For example, the following table with two columns has the second column as a street_address column:

CREATE TABLE twocol (
id INT,
street street_address
)

User-defined data types can be dropped by their owner or by the DBA, using the DROP DOMAIN statement:

DROP DOMAIN street_address

This statement can be carried out only if the data type is not used in any table in the database.

Constraints and defaults with user-defined data types 

Many of the attributes associated with columns, such as allowing NULL values, having a DEFAULT value, and so on, can be built into a user-defined data type. Any column that is defined on the data type automatically inherits the NULL setting, CHECK condition, and DEFAULT values. This allows uniformity to be built into columns with a similar meaning throughout a database.

For example, many primary key columns in the sample database are integer columns holding ID numbers. The following statement creates a data type that may be useful for such columns:

CREATE DOMAIN id INT
NOT NULL
DEFAULT AUTOINCREMENT
CHECK( @col > 0 )

Any column created using the data type id is not allowed to hold NULLs, defaults to an auto-incremented value, and must hold a positive number. Any identifier could be used instead of col in the @col variable.

The attributes of the data type can be overridden if needed by explicitly providing attributes for the column. A column created on data type id with NULL values explicitly allowed does allow NULLs, regardless of the setting in the id data type.

Compatibility 


Collection Contents Index Binary data types Java class data types pdf/chap7.pdf