Banco de dados H2 - Criar

CREATE é um comando SQL genérico usado para criar tabelas, esquemas, sequências, visualizações e usuários no servidor de banco de dados H2.

Criar a tabela

Criar Tabela é um comando usado para criar uma tabela definida pelo usuário no banco de dados atual.

Sintaxe

A seguir está a sintaxe genérica para o comando Criar Tabela.

CREATE [ CACHED | MEMORY ] [ TEMP | [ GLOBAL | LOCAL ] TEMPORARY ] 
TABLE [ IF NOT EXISTS ] name 
[ ( { columnDefinition | constraint } [,...] ) ] 
[ ENGINE tableEngineName [ WITH tableEngineParamName [,...] ] ] 
[ NOT PERSISTENT ] [ TRANSACTIONAL ] 
[ AS select ]

Usando a sintaxe genérica do comando Criar Tabela, podemos criar diferentes tipos de tabelas, como tabelas em cache, tabelas de memória e tabelas temporárias. A seguir está a lista para descrever as diferentes cláusulas da sintaxe fornecida.

  • CACHED- As tabelas em cache são o tipo padrão para tabelas regulares. Isso significa que o número de linhas não é limitado pela memória principal.

  • MEMORY- As tabelas de memória são o tipo padrão para tabelas temporárias. Isso significa que as tabelas de memória não devem ficar muito grandes e os dados do índice são mantidos na memória principal.

  • TEMPORARY- As tabelas temporárias são excluídas ao fechar ou abrir um banco de dados. Basicamente, as tabelas temporárias são de dois tipos -

    • Tipo GLOBAL - Acessível por todas as conexões.

    • Tipo LOCAL - Acessível pela conexão atual.

    O tipo padrão para tabelas temporárias é o tipo global. Índices de tabelas temporárias são mantidos na memória principal, a menos que a tabela temporária seja criada usando CREATE CACHED TABLE.

  • ENGINE - A opção ENGINE só é necessária quando implementações de tabelas personalizadas são usadas.

  • NOT PERSISTENT - É um modificador para manter os dados completos da tabela na memória e todas as linhas são perdidas quando o banco de dados é fechado.

  • TRANSACTIONAL - É uma palavra-chave que confirma uma transação aberta e este comando suporta apenas tabelas temporárias.

Exemplo

Neste exemplo, vamos criar uma tabela chamada tutorials_tbl usando os seguintes dados fornecidos.

Sr. Não Nome da coluna Tipo de dados
1 EU IRIA Int
2 Título Varchar (50)
3 Autor Varchar (20)
4 Data de submissão Encontro

A seguinte consulta é usada para criar uma tabela tutorials_tbl junto com os dados da coluna fornecidos.

CREATE TABLE tutorials_tbl ( 
   id INT NOT NULL, 
   title VARCHAR(50) NOT NULL, 
   author VARCHAR(20) NOT NULL, 
   submission_date DATE 
);

A consulta acima produz a seguinte saída.

(0) rows effected

Criar Esquema

Criar esquema é um comando usado para criar um esquema dependente do usuário sob uma autorização específica (sob o usuário atualmente registrado).

Sintaxe

A seguir está a sintaxe genérica do comando Criar Esquema.

CREATE SCHEMA [ IF NOT EXISTS ] name [ AUTHORIZATION ownerUserName ]

Na sintaxe genérica acima, AUTHORIZATION é uma palavra-chave usada para fornecer o respectivo nome de usuário. Este comando é opcional, o que significa que se não fornecermos o nome do usuário, ele considerará o usuário atual. O usuário que executa o comando deve ter direitos de administrador, assim como o proprietário.

Este comando confirma uma transação aberta nesta conexão.

Exemplo

Neste exemplo, vamos criar um esquema chamado test_schema sob o usuário SA, usando o seguinte comando.

CREATE SCHEMA test_schema AUTHORIZATION sa;

O comando acima produz a seguinte saída.

(0) rows effected

Criar sequência

Sequência é o conceito usado para gerar um número seguindo uma sequência para id ou quaisquer valores de coluna aleatórios.

Sintaxe

A seguir está a sintaxe genérica do comando de criação de sequência.

CREATE SEQUENCE [ IF NOT EXISTS ] newSequenceName [ START WITH long ] 
[ INCREMENT BY long ] 
[ MINVALUE long | NOMINVALUE | NO MINVALUE ] 
[ MAXVALUE long | NOMAXVALUE | NO MAXVALUE ] 
[ CYCLE long | NOCYCLE | NO CYCLE ] 
[ CACHE long | NOCACHE | NO CACHE ]

Essa sintaxe genérica é usada para criar uma sequência. O tipo de dados de uma sequência éBIGINT. Nesta sequência, os valores nunca são reutilizados, mesmo quando a transação é revertida.

Exemplo

Neste exemplo, vamos criar uma sequência chamada SEQ_ID, usando a seguinte consulta.

CREATE SEQUENCE SEQ_ID;

A consulta acima produz a seguinte saída.

(0) rows effected