Description | Syntax | Topics | Examples
CREATE ENVIRONMENT and CREATE DATABASE have to be specified before specifying CREATE TABLE.
The IN “filespec.xml” clause has to be specified after the column definitions.
Tables must be declared in order of their constraints.
Parent tables should be declared before children tables.
Most CREATE TABLE statements will typically look like the following example where Omnidex indexing is specified after the column_name and column_type.
CREATE TABLE mytable PHYSICAL "mydir/mytable.dat" ( user_id INTEGER OMNIDEX, region CHARACTER(2) OMNIDEX, full_name CHARACTER(30) QUICKTEXT, address CHARACTER(60) QUICKTEXT, city CHARACTER(30) QUICKTEXT, state CHARACTER(2) OMNIDEX ) in "simple.xml";
create table "HOUSEHOLDS" physical "dat/households*.dat" ( "HOUSEHOLD" character(12), "ADDRESS" character(50), "CITY" character(28), "STATE" character(2), "ZIP" character(5), "COUNTRY" character(2), constraint HOUSEHOLD_HOUSEHOLD_PK primay ("HOUSEHOLD"), constraint HOUSEHOLD_STATE_fk FOREIGN ("STATE") references "states", constraint HOUSEHOLDS_COUNTRY_FK foreign ("COUNTRY") references "COUNTRIES" ) in "simple.xml";
Here is the same CREATE TABLE statement as above but with the Omnidex Index type specified for each column.
create table "HOUSEHOLDS" physical "dat/households*.dat" ( "HOUSEHOLD" character(12) omnidex, "ADDRESS" character(50) quicktext, "CITY" character(28) quicktext, "STATE" character(2) omnidex, "ZIP" character(5) omnidex, "COUNTRY" character(2) omnidex, constraint HOUSEHOLD_HOUSEHOLD_PK primay ("HOUSEHOLD"), constraint HOUSEHOLD_STATE_fk FOREIGN ("STATE") references "states", constraint HOUSEHOLDS_COUNTRY_FK foreign ("COUNTRY") references "COUNTRIES" ) in "simple.xml";
Here is the same CREATE TABLE statement as above but with the Omnidex Index type specified for each column.
Additionally, it creates an Omnidex Composite index and combines the STATE and CITY columns into a single index.
create table "HOUSEHOLDS" physical "dat/households*.dat" ( "HOUSEHOLD" character(12) omnidex, "ADDRESS" character(50) quicktext, "CITY" character(28) quicktext, "STATE" character(2) omnidex, "ZIP" character(5) omnidex, "COUNTRY" character(2) omnidex, constraint HOUSEHOLD_HOUSEHOLD_PK primay ("HOUSEHOLD"), constraint HOUSEHOLD_STATE_fk FOREIGN ("STATE") references "states", constraint HOUSEHOLDS_COUNTRY_FK foreign ("COUNTRY") references "COUNTRIES" omnidex index "HSHD_STATE_CITY" ("STATE","CITY") ) in "simple.xml";
There are three types of Omnidex indexes called Omnidex, QuickText, and FullText.
The following table shows the key types of retrieval properties of these Omnidex index types.
Omnidex | QuickText | FullText | Custom | |
---|---|---|---|---|
Criteria | Yes | Yes | Yes | |
Counts | Yes | Yes | Yes | |
Sum, Average, Min, Max | Yes | No | No | |
Table Joins | Yes | No | No | |
Group By | Yes | No | No | |
Order By | Yes | No | No | |
Geographic Searches | Yes | No | No | |
Textual Searches | No | Yes | Yes | |
Proximity Searches | No | No | Yes | |
Relevancy Scoring | No | No | Yes | |
Indexing Overhead | Low | Low | High |
In addition to the three basic Omnidex Index Types: Omnidex, QuickText, and FullText, there is a Custom Index Type that can be used to specify advanced indexing options.
Omnidex supports the following standard datatypes:
Datatype | Description |
---|---|
CHARACTER(n) | Space-filled character string of n characters |
CHAR(n) | Synonym for CHARACTER(n) |
STRING(n) | Null-terminated character string of n characters |
VARCHAR(n)* | String of max n characters, with length variable |
CLOB(n)* | Character large object of max n characters, with length variable |
[SIGNED] TINYINT | 1-byte, signed integer ( -128 to 127 ) |
UNSIGNED TINYINT | 1-byte, unsigned integer ( 0 to 255 ) |
[SIGNED] SMALLINT | 2-byte, signed integer ( -32768 to 32767 ) |
UNSIGNED SMALLINT | 2-byte, unsigned integer ( 0 to 65535 ) |
[SIGNED] INTEGER | 4-byte, signed integer ( 2147483648 to 2147483647 ) |
UNSIGNED INTEGER | 4-byte, unsigned integer ( 0 to 4294967295 ) |
[SIGNED] BIGINT | 8-byte, signed integer ( -2^63 to 2^63-1 ) |
UNSIGNED BIGINT | 8-byte, unsigned integer ( 0 to 2^64-1 ) |
FLOAT | IEEE four-byte, single-precision floating point |
DOUBLE | IEEE eight-byte, double-precision floating point |
DATE | 10-byte ANSI date |
TIME | 11-byte ANSI time |
DATETIME | 24-byte ANSI datetime |
ASCII DATE | 8-byte ASCII date ( YYYYMMDD ) |
ASCII DATE(6) | 6-byte ASCII date ( YYMMDD ) |
ODBC DATE | 6-byte ODBC proprietary date |
ODBC TIME | 6-byte ODBC proprietary time |
ODBC DATETIME | 6-byte ODBC proprietary datetime |
ORACLE DATE | 7-byte Oracle proprietary date |
ORACLE TIME | 7-byte Oracle proprietary time |
ORACLE DATETIME | 7-byte Oracle proprietary datetime |
OMNIDEX DATE(n) | Omnidex proprietary date supporting n digits of YYYYMMDD |
OMNIDEX TIME(n) | Omnidex proprietary time supporting n digits of HHMMSSNN |
OMNIDEX DATETIME(n) | Omnidex proprietary datetime supporting n digits of YYYYMMDDHHMMSSNN |
* Omnidex recommends use of the CHARACTER and STRING datatypes rather than VARCHAR and CLOB due to the requirement of a length variable. |
Omnidex also provides partial support for National Character Datatypes (sometimes called Unicode datatypes or wide characters). The Omnidex SQL Engine will process these datatypes, but the Omnidex Indexing Engine will only index the lower 8 bits of these datatypes.
Datatype | Description |
---|---|
NATIONAL CHARACTER(n) | Space-filled character string of n characters |
NATIONAL CHAR(n) | Synonym for CHARACTER(n) |
NATIONAL STRING(n) | Null-terminated character string of n characters |
NATIONAL VARCHAR(n)* | String of max n characters, with length variable |
NATIONAL CLOB(n)* | Character large object of max n characters, with length variable |
* Omnidex recommends use of the NATIONAL CHARACTER and NATIONAL STRING datatypes rather than NATIONAL VARCHAR and NATIONAL CLOB due to the requirement of a length variable. |