Database H2 - Crea
CREATE è un comando SQL generico utilizzato per creare tabelle, schemi, sequenze, visualizzazioni e utenti nel server del database H2.
Crea tabella
Crea tabella è un comando utilizzato per creare una tabella definita dall'utente nel database corrente.
Sintassi
Di seguito è riportata la sintassi generica per il comando Crea tabella.
CREATE [ CACHED | MEMORY ] [ TEMP | [ GLOBAL | LOCAL ] TEMPORARY ]
TABLE [ IF NOT EXISTS ] name
[ ( { columnDefinition | constraint } [,...] ) ]
[ ENGINE tableEngineName [ WITH tableEngineParamName [,...] ] ]
[ NOT PERSISTENT ] [ TRANSACTIONAL ]
[ AS select ]
Utilizzando la sintassi generica del comando Crea tabella, possiamo creare diversi tipi di tabelle come tabelle memorizzate nella cache, tabelle di memoria e tabelle temporanee. Di seguito è riportato l'elenco per descrivere clausole diverse dalla sintassi data.
CACHED- Le tabelle memorizzate nella cache sono il tipo predefinito per le tabelle normali. Ciò significa che il numero di righe non è limitato dalla memoria principale.
MEMORY- Le tabelle di memoria sono il tipo predefinito per le tabelle temporanee. Ciò significa che le tabelle di memoria non dovrebbero diventare troppo grandi e i dati dell'indice vengono conservati nella memoria principale.
TEMPORARY- Le tabelle temporanee vengono eliminate durante la chiusura o l'apertura di un database. Fondamentalmente, le tabelle temporanee sono di due tipi:
Tipo GLOBALE - Accessibile da tutte le connessioni.
Tipo LOCALE - Accessibile dalla connessione corrente.
Il tipo predefinito per le tabelle temporanee è il tipo globale. Gli indici delle tabelle temporanee vengono conservati nella memoria principale, a meno che la tabella temporanea non venga creata utilizzando CREATE CACHED TABLE.
ENGINE - L'opzione ENGINE è richiesta solo quando vengono utilizzate implementazioni di tabelle personalizzate.
NOT PERSISTENT - È un modificatore per mantenere in memoria i dati completi della tabella e tutte le righe vengono perse quando il database viene chiuso.
TRANSACTIONAL - È una parola chiave che esegue il commit di una transazione aperta e questo comando supporta solo tabelle temporanee.
Esempio
In questo esempio, creiamo una tabella denominata tutorials_tbl utilizzando i seguenti dati forniti.
Suor n | Nome colonna | Tipo di dati |
---|---|---|
1 | ID | Int |
2 | Titolo | Varchar (50) |
3 | Autore | Varchar (20) |
4 | Data di presentazione | Data |
La seguente query viene utilizzata per creare una tabella tutorials_tbl insieme ai dati della colonna specificati.
CREATE TABLE tutorials_tbl (
id INT NOT NULL,
title VARCHAR(50) NOT NULL,
author VARCHAR(20) NOT NULL,
submission_date DATE
);
La query precedente produce il seguente output.
(0) rows effected
Crea schema
Crea schema è un comando utilizzato per creare uno schema dipendente dall'utente con una particolare autorizzazione (con l'utente attualmente registrato).
Sintassi
Di seguito è riportata la sintassi generica del comando Crea schema.
CREATE SCHEMA [ IF NOT EXISTS ] name [ AUTHORIZATION ownerUserName ]
Nella sintassi generica sopra, AUTORIZZAZIONE è una parola chiave utilizzata per fornire il rispettivo nome utente. Questo comando è opzionale, il che significa che se non forniamo il nome utente, prenderà in considerazione l'utente corrente. L'utente che esegue il comando deve disporre dei diritti di amministratore, così come il proprietario.
Questo comando esegue una transazione aperta in questa connessione.
Esempio
In questo esempio, creiamo uno schema denominato test_schema sotto Utente SA, utilizzando il seguente comando.
CREATE SCHEMA test_schema AUTHORIZATION sa;
Il comando precedente produce il seguente output.
(0) rows effected
Crea sequenza
La sequenza è un concetto utilizzato per generare un numero seguendo una sequenza per id o qualsiasi valore di colonna casuale.
Sintassi
Di seguito è riportata la sintassi generica del comando di creazione della sequenza.
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 ]
Questa sintassi generica viene utilizzata per creare una sequenza. Il tipo di dati di una sequenza èBIGINT. In questa sequenza, i valori non vengono mai riutilizzati, anche quando viene eseguito il rollback della transazione.
Esempio
In questo esempio, creiamo una sequenza denominata SEQ_ID, utilizzando la seguente query.
CREATE SEQUENCE SEQ_ID;
La query precedente produce il seguente output.
(0) rows effected