Istruzione CREATE TABLE

Utilizzare l'istruzione CREATE TABLE per creare una tabella in un file di database. Il formato dell'istruzione CREATE TABLE è:

Copia
CREATE TABLE nome_tabella ( lista_elementi_tabella [, lista_elementi_tabella...] )

All'interno dell'istruzione, si specifica il nome e il tipo di dati di ogni colonna.

  • nome_tabella è il nome della tabella. nome_tabella ha un limite di 100 caratteri. Non è possibile definire una tabella con lo stesso nome. Il nome tabella deve iniziare con un carattere alfabetico. Se il nome tabella non inizia con un carattere alfabetico o contiene un punto (.), racchiuderlo nelle virgolette doppie (identificativo quotato).

  • Il formato per lista_elementi_tabella è:

    Copia
    nome_campo tipo_campo [[ripetizioni]] [DEFAULT expr] [UNIQUE | NOT NULL | CHIAVE PRIMARIA | GLOBALE]
    [FOREIGN KEY REFERENCES nome_tabella(nome_colonna)] 
    [EXTERNAL stringa_percorso_relativo [SECURE | OPEN stringa_percorso_calc] [FEWER_FOLDERS]]
  • nome_campo è il nome del campo. I nomi dei campi devono essere univoci. I nomi campo iniziano con un carattere alfabetico. Se il nome del campo non inizia con un carattere alfabetico o contiene un punto (.), racchiuderlo nelle virgolette doppie (identificativo quotato).

    Esempio

    L'istruzione CREATE TABLE per il campo _COGNOME è:

    Copia
    CREATE TABLE"_DIPENDENTE" (ID INTERO CHIAVE PRIMARIA,"_NOME" VARCHAR(20),"_COGNOME" VARCHAR(20))
  • Per le ripetizioni dell'istruzione CREATE TABLE, specificare una ripetizione di campo inserendo un numero da 1 a 32000 tra parentesi dopo il tipo di campo.

    Esempio

    Copia
    ID_DIPENDENTE INT[4]
    COGNOME VARCHAR(20)[4]
  • tipo_campo può essere uno dei seguenti: NUMERIC, DECIMAL, INT, DATE, TIME, TIMESTAMP, VARCHAR, CHARACTER VARYING, BLOB, VARBINARY, LONGVARBINARY o BINARY VARYING. Per NUMERIC e DECIMAL, è possibile specificare la precisione e la scala. Ad esempio: DECIMAL(10,0). Per TIME e TIMESTAMP, è possibile specificare la precisione. Ad esempio: TIMESTAMP(6). Per VARCHAR e CHARACTER VARYING, è possibile specificare la lunghezza della stringa.

    Esempio

    Copia
    VARCHAR(255)
  • La parola chiave DEFAULT permette di impostare un valore predefinito per una colonna. Per expr, è possibile utilizzare un valore costante o un'espressione. Le espressioni consentite sono USER, USERNAME, CURRENT_USER, CURRENT_DATE, CURDATE, CURRENT_TIME, CURTIME, CURRENT_TIMESTAMP, CURTIMESTAMP, e NULL.

  • Se una colonna viene definita UNIQUE, si seleziona automaticamente l'opzione di verifica Unique per il campo corrispondente nel file di database FileMaker Pro.

  • Se una colonna viene definita NOT NULL, si seleziona automaticamente l'opzione di verifica Not Empty per il campo corrispondente nel file di database FileMaker Pro. Il campo viene contrassegnato come Required Value nella scheda Campi della finestra di dialogo Gestisci database in FileMaker Pro.

  • Per definire una colonna come un campo Contenitore, inserire BLOB, VARBINARY o BINARY VARYING per tipo_campo.

  • Per definire una colonna come un campo Contenitore che memorizza i dati esternamente, utilizzare la parola chiave EXTERNAL. stringa_percorso_relativo definisce la cartella in cui i dati sono memorizzati esternamente rispetto alla posizione del database FileMaker Pro. Questo percorso deve essere indicato come directory di base nella finestra di dialogo Gestisci contenitori di FileMaker Pro. Specificare SECURE per un'archiviazione protetta o OPEN per un'archiviazione di tipo open storage. Se si usa la memoria aperta, stringa_percorso_calc è la cartella all'interno della cartella stringa_percorso_relativo dove gli oggetti del contenitore devono essere memorizzati. Il percorso deve utilizzare le barre (/) nella cartella nome. Specificare FEWER_FOLDERS è come abilitare Con meno cartelle per l'origine dati.

  • Per definire una relazione con chiave esterna, utilizzare la clausola FOREIGN KEY REFERENCES dopo il tipo di campo. La colonna chiave esterna deve essere di tipo INT, NUMERIC, DECIMAL o VARCHAR e deve corrispondere al tipo di dati della colonna a cui si fa riferimento. La tabella a cui si fa riferimento deve già esistere e la colonna a cui si fa riferimento deve esistere in quella tabella.

    Con la clausola FOREIGN KEY REFERENCES, l'istruzione CREATE TABLE o ALTER TABLE crea la relazione nel grafico delle relazioni FileMaker. Queste istruzioni falliscono e restituiscono l'errore 8201 se la relazione creerebbe un riferimento circolare (ciclo) nel grafico delle relazioni.

    Esempio

    Copia
    CREATE TABLE Ordini (
        IDOrdine INT PRIMARY KEY,
        IDCliente INT FOREIGN KEY REFERENCES Clienti(IDCliente),
        DataOrdine DATE
    )

 

Esempi

Usando

Esempio SQL

colonna di testo

Copia
CREATE TABLE T1 ( C1 VARCHAR, C2 VARCHAR (50), C3 VARCHAR (1001), C4 VARCHAR (500276))

colonna di testo, NOT NULL

Copia
CREATE TABLE T1NN (C1 VARCHAR NOT NULL, C2 VARCHAR (50) NOT NULL, C3 VARCHAR (1001) NOT NULL, C4 VARCHAR (500276) NOT NULL)

colonna numerica

Copia
CREATE TABLE T2 (C1 DECIMAL, C2 DECIMAL (10,0), C3 DECIMAL (7539,2), C4 DECIMAL (497925,301))

colonna data

Copia
CREATE TABLE T3 (C1 DATE, C2 DATE, C3 DATE, C4 DATE)

colonna ora

Copia
CREATE TABLE T4 (C1 TIME, C2 TIME, C3 TIME, C4 TIME)

colonna Indicatore data e ora

Copia
CREATE TABLE T5 (C1 TIMESTAMP, C2 TIMESTAMP, C3 TIMESTAMP, C4 TIMESTAMP)

colonna per campo Contenitore

Copia
CREATE TABLE T6 (C1 BLOB, C2 BLOB, C3 BLOB, C4 BLOB)

colonna per campo Contenitore memoria esterna

Copia
CREATE TABLE T7 (C1 BLOB EXTERNAL 'File/MioDatabase/' SECURE) 
CREATE TABLE T8 (C1 BLOB EXTERNAL 'File/MioDatabase/' OPEN 'Oggetti')

tabella con relazioni con chiave esterna

Copia
-- Creare prima le tabelle parent CREATE TABLE Autori (IDAutore INT PRIMARY KEY, NomeAutore VARCHAR(100) NOT NULL)
CREATE TABLE Generi (IDGenere INT PRIMARY KEY, NomeGenere VARCHAR(50) NOT NULL)

-- Creare una tabella child con chiavi esterne
CREATE TABLE Libri (
    IDLibro INT PRIMARY KEY,
    Titolo VARCHAR(255) NOT NULL,
    IDAutore INT FOREIGN KEY REFERENCES Autori(IDAutore),
    IDGenere INT FOREIGN KEY REFERENCES Generi(IDGenere)
)

-- Creare una tabella grandchild con chiave esterna
CREATE TABLE CapitoloLibri (
    IDCapitolo INT PRIMARY KEY,
    Capitolo VARCHAR(255) NOT NULL,
    ID_Libro INT FOREIGN KEY REFERENCES Libri(IDLibro)
)