A column_definition) can contain the column name (column_name)and the data types.
The following data types exist:
·
Non-NULL value
Character
string, LONG column, number, date value,
time
value, time stamp value,
BOOLEAN
The non-NULL values can be specified using the syntax element data_type .
<data_type> ::=
CHAR[ACTER]
[(<unsigned_integer>)]
[ASCII | BYTE
| UNICODE]
| VARCHAR
[(<unsigned_integer>)] [ASCII | BYTE | UNICODE]
| LONG
[VARCHAR] [ASCII | BYTE | UNICODE]
| BOOLEAN
| FIXED
(<unsigned_integer> [,<unsigned_integer>])
| FLOAT
(<unsigned_integer>)
| INT[EGER] | SMALLINT
| DATE |
TIME | TIMESTAMP
A code attribute can also be specified, if necessary, for the following character strings (ASCII, BYTE, or UNICODE) as part of a column definition (column_definition):
CHAR[ACTER], VARCHAR, LONG[VARCHAR]
In addition to the data types defined above, the following data types are permitted in a column definition and are mapped as follows to the data types below:
Data Type |
Is Mapped To |
BINARY(p) |
FIXED(p) |
DEC[IMAL](p,s) |
FIXED(p,s) |
DEC[IMAL](p) |
FIXED(p) |
DEC[IMAL] |
FIXED (5) |
DOUBLE PRECISION |
FLOAT(38) |
FLOAT |
FLOAT(16) |
FLOAT(39..64) |
FLOAT(38) |
LONG VARCHAR |
LONG |
NUMERIC(p,s) |
FIXED(p,s) |
NUMERIC(p) |
FIXED(p) |
NUMERIC |
FIXED (5) |
REAL(p) |
FLOAT(p) |
REAL |
FLOAT(16) |
SERIAL |
FIXED(10) DEFAULT SERIAL |
SERIAL(p) |
FIXED(10) DEFAULT SERIAL(p) |
In the column definition (column_definition), the memory requirement of a column value depends on the data type.
Data Type |
Memory Requirements of a Column Value in Bytes for This Data Type |
FIXED(p,s) |
(p+1) DIV 2 + 2 |
FLOAT(p) |
(p+1) DIV 2 + 2 |
BOOLEAN |
2 |
DATE |
9 |
TIME |
9 |
TIMESTAMP |
21 |
LONG |
9 |
CHAR(n); n<=30 |
n+1 |
CHAR(n); 30<n<=1023; key column |
n+1 |
CHAR(n); 30<n<=254; no key column |
n+2 |
CHAR(n); 254<n; no key column |
n+3 |
CHAR(n) UNICODE; n<=15 |
2*n+1 |
CHAR(n) UNICODE; 15<n<=511; key column |
2*n+1 |
CHAR(n) UNICODE; 15<n<=127; no key column |
2*n+2 |
CHAR(n) UNICODE; 127<n; no key column |
2*n+3 |
VARCHAR(n); n<=1023; key column |
n+1 |
VARCHAR(n); n<=254; no key column |
n+2 |
VARCHAR(n); 254<n; no key column |
n+3 |
VARCHAR(n) UNICODE; n<=511; key column |
2*n+1 |
VARCHAR(n) UNICODE; n<=127; no key column |
2*n+2 |
VARCHAR(n) UNICODE; 127<n; no key column |
2*n+3 |