# Instrução CREATE TABLE

A instrução CREATE TABLE cria uma tabela. As tabelas contêm colunas e restrições, que são regras que os dados devem estar em conformidade. A restrição no nível-de-tabela especifica uma coluna ou várias colunas. As colunas possuem um tipo de dado e podem especificar restrições de coluna (restrições no nível-de-coluna).

Para obter informações sobre as restrições deve ser consultada a Cláusula CONSTRAINT.

Pode ser especificado um valor padrão para a coluna. O valor padrão é o valor a ser inserido na coluna quando não é especificado nenhum outro valor. Quando não é especificado explicitamente, o valor padrão para a coluna é NULL. Consulte Valor padrão da coluna.

Podem ser especificadas propriedades de armazenamento, como o tamanho da página para a tabela, chamando o procedimento do sistema `SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY`.

Se for especificado um nome de tabela qualificado, o nome do esquema não poderá começar por SYS.

#### Sintaxe

    CREATE TABLE nome-da-tabela
        ( {definição-da-coluna | restrição no nível-de-tabela}
        [ , {definição-da-coluna | restrição no nível-de-tabela} ] * )

#### Exemplos

    CREATE TABLE DISPONIBILIDADE_HOTEL (
        ID_HOTEL           INT NOT NULL,
        DATA_RESERVA       DATE NOT NULL,
        QUARTOS_RESERVADOS INT DEFAULT 0,
        PRIMARY KEY (ID_HOTEL, DATA_RESERVA));

    -- A definição de chave primária no nível-de-tabela permite
    -- incluir duas colunas na definição da chave primária

    PRIMARY KEY (ID_HOTEL, DATA_RESERVA))

    -- Atribuir um atributo de coluna de identidade a uma coluna INTEGER,
    -- e também definir uma restrição de chave primária na coluna

    CREATE TABLE PESSOAS (
        ID_PESSOA INT NOT NULL GENERATED ALWAYS AS IDENTITY
        CONSTRAINT PK_PESSOAS PRIMARY KEY,
        PESSOA VARCHAR(26));

    -- Atribuir um atributo de coluna de identidade a uma coluna SMALLINT
    -- com valor inicial igual a 5 e valor do incremento igual a 5.

    CREATE TABLE GRUPOS (
        ID_GRUPO SMALLINT NOT NULL
            GENERATED ALWAYS AS IDENTITY (START WITH 5, INCREMENT BY 5),
        ENDEREÇO VARCHAR(100),
        TEL      VARCHAR(15));

Nota: Para obter mais exemplos de instruções CREATE TABLE utilizando várias restrições deve ser consultada a Cláusula CONSTRAINT.

- definição-da-coluna
- especificação-de-coluna-gerada

Tópico pai: Instruções CREATE
Referências relacionadas
Instrução CREATE FUNCTION
Instrução CREATE INDEX
Instrução CREATE PROCEDURE
Instrução CREATE SCHEMA
Instrução CREATE SYNONYM
Instrução CREATE TRIGGER
Instrução CREATE VIEW