# CREATE TABLE statement

A CREATE TABLE statement creates a table. Tables contain columns and constraints, rules to which data must conform. Table-level constraints specify a column or columns. Columns have a data type and can specify column constraints (column-level constraints).

The table owner and the database owner automatically gain the following privileges on the table and are able to grant these privileges to other users:

- INSERT
- SELECT
- REFERENCES
- TRIGGER
- UPDATE

These privileges cannot be revoked from the table and database owners.

For information about constraints, see CONSTRAINT clause.

You can specify a default value for a column. A default value is the value to be inserted into a column if no other value is specified. If not explicitly specified, the default value of a column is NULL. See Column default.

You can specify storage properties such as page size for a table by calling the `SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY` system procedure.

If a qualified table name is specified, the schema name cannot begin with SYS.

#### Syntax

    CREATE TABLE table-Name
        ( {column-definition | Table-level constraint}
        [ , {column-definition | Table-level constraint} ] * )

#### Example

    CREATE TABLE HOTELAVAILABILITY
         (HOTEL_ID INT NOT NULL, BOOKING_DATE DATE NOT NULL,
    	ROOMS_TAKEN INT DEFAULT 0, PRIMARY KEY (HOTEL_ID, BOOKING_DATE));
    -- the table-level primary key definition allows you to
    -- include two columns in the primary key definition
    PRIMARY KEY (hotel_id, booking_date))
    -- assign an identity column attribute to an INTEGER
    -- column, and also define a primary key constraint
    -- on the column
    CREATE TABLE PEOPLE
    	(PERSON_ID INT NOT NULL GENERATED ALWAYS AS IDENTITY
    	CONSTRAINT PEOPLE_PK PRIMARY KEY, PERSON VARCHAR(26));
    -- assign an identity column attribute to a SMALLINT
    -- column with an initial value of 5 and an increment value
    -- of 5.
    CREATE TABLE GROUPS
    	(GROUP_ID SMALLINT NOT NULL GENERATED ALWAYS AS IDENTITY
    	(START WITH 5, INCREMENT BY 5), ADDRESS VARCHAR(100), PHONE VARCHAR(15));

Note: For more examples of CREATE TABLE statements using the various constraints, see CONSTRAINT clause.

- column-definition
- generated-column-spec

Parent topic: CREATE statements
Related reference
CREATE FUNCTION statement
CREATE INDEX statement
CREATE PROCEDURE statement
CREATE SCHEMA statement
CREATE SYNONYM statement
CREATE TRIGGER statement
CREATE VIEW statement