Creare o modificare tabelle o indici utilizzando una query di definizione dei dati

Importante :  Il presente articolo è stato tradotto automaticamente, vedere la dichiarazione di non responsabilità. Per visualizzare la versione inglese dell'articolo, fare clic qui.

È possibile creare e modificare tabelle, vincoli, indici e relazioni scrivendo query di definizione dati in visualizzazione SQL.

In questo articolo vengono illustrate le query di definizione dati e viene spiegato come utilizzarle per creare tabelle, vincoli, indici e relazioni. Il contenuto di questo articolo può inoltre risultare utile per stabilire quando utilizzare una query di definizione dati.

Nota : Non è possibile utilizzare queste procedure in un database Web.

Contenuto dell'articolo

Panoramica

Creare o modificare una tabella

Creare un indice

Creare un vincolo o una relazione

Panoramica

Diversamente dalle altre query, una query di definizione dati non recupera dati, bensì utilizza il linguaggio DDL (Data Definition Language) per creare, modificare o eliminare oggetti di database.

Nota : Il linguaggio DDL (Data Definition Language) fa parte di SQL (Structured Query Language).

Le query di definizione dati possono essere molto utili. È possibile eliminare e ricreare regolarmente parti dello schema del database tramite la semplice esecuzione di alcune query. Si consiglia di utilizzare una query di definizione dati se si ha familiarità con le istruzioni SQL e se si prevede di eliminare e ricreare regolarmente tabelle, vincoli, indici o relazioni.

Avviso : L'utilizzo di query di definizione dati per modificare oggetti di database può essere rischioso, in quanto le azioni non sono accompagnate da finestre di dialogo di conferma. In caso di errori, si potrebbero perdere dati o la struttura di una tabella potrebbe essere inavvertitamente modificata. È quindi opportuno prestare attenzione quando si utilizza una query di definizione dati per modificare oggetti contenuti nel database. Se non si è responsabili della gestione del database in uso, prima di utilizzare una query di definizione dati si consiglia di consultare l'amministratore del database.

Importante : Creare una copia di backup delle tabelle coinvolte prima di eseguire una query di definizione dati.

Parole chiave DDL

Parola chiave

Utilizzo

CREATE

Creare un indice o una tabella non già esistente.

ALTER

Modificare una tabella o una colonna esistente.

DROP

Eliminare una tabella, una colonna o un vincolo esistente.

ADD

Aggiungere una colonna o un vincolo a una tabella.

COLUMN

Utilizzare con ADD, ALTER o DROP

CONSTRAINT

Utilizzare con ADD, ALTER o DROP

INDEX

Utilizzare con CREATE

TABLE

Utilizzare con ALTER, CREATE o DROP

Torna all'inizio

Creare o modificare una tabella

Per creare una tabella, utilizzare il comando CREATE TABLE la cui sintassi è riportata di seguito:

CREATE TABLE table_name 
(field1 type [(size)] [NOT NULL] [index1]
[, field2 type [(size)] [NOT NULL] [index2]
[, ...][, CONSTRAINT constraint1 [, ...]])

I soli elementi obbligatori del comando CREATE TABLE sono il comando stesso e il nome della tabella, ma in genere si desidera definire alcuni campi e altri aspetti della tabella. Di seguito verrà esaminato un semplice esempio.

Si supponga di voler creare una tabella in cui archiviare il nome, l'anno e il prezzo relativi ad auto usate di cui si sta considerando l'acquisto. Si desidera consentire un massimo di 30 caratteri per il nome e 4 cifre per l'anno. Per utilizzare una query di definizione dei dati per creare la tabella, procedere come segue:

Nota : Per consentire l'esecuzione di una query di definizione dati potrebbe essere innanzitutto necessario attivare il contenuto del database:

  • Sulla barra dei messaggi fare clic su Abilita contenuto.

Creare una tabella

  1. Nel gruppo Macro e codice della scheda Crea fare clic su Struttura query.

  2. Chiudere la finestra di dialogo Mostra tabella.

  3. Nel gruppo Tipo di query della scheda Struttura fare clic su Definizione dati.

    La griglia di struttura viene nascosta e viene visualizzata la scheda a oggetti Visualizzazione SQL.

  4. Digitare la seguente istruzione SQL:

    CREA TABELLA auto (nome TEXT(30), anno TEXT(4), prezzo VALUTA)

  5. Nel gruppo Risultati della scheda Struttura fare clic su Esegui.

Modificare una tabella

Per modificare una tabella, utilizzare il comando ALTER TABLE. Questo comando consente di aggiungere, modificare o eliminare (rimuovere) colonne o vincoli. Di seguito è riportata la sintassi del comando ALTER TABLE:

ALTER TABLE table_name predicate

predicato nel punto in cui può essere una delle operazioni seguenti:

ADD COLUMN field type[(size)] [NOT NULL] [CONSTRAINT constraint]

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

Si supponga di voler aggiungere un campo di testo di 10 caratteri per l'archiviazione di informazioni relative alla condizione di ogni auto. È possibile procedere come segue:

  1. Nel gruppo Macro e codice della scheda Crea fare clic su Struttura query.

  2. Chiudere la finestra di dialogo Mostra tabella.

  3. Nel gruppo Tipo di query della scheda Struttura fare clic su Definizione dati.

    La griglia di struttura viene nascosta e viene visualizzata la scheda a oggetti Visualizzazione SQL.

  4. Digitare la seguente istruzione SQL:

    MODIFICA TABELLA Auto Aggiungi COLONNA condizione TEXT(10)

  5. Nel gruppo Risultati della scheda Struttura fare clic su Esegui.

Torna all'inizio

Creare un indice

Per creare un indice per una tabella esistente, utilizzare il comando CREATE INDEX la cui sintassi è riportata di seguito:

CREATE [UNIQUE] INDEX index_name
ON table (field1 [DESC][, field2 [DESC], ...])
[WITH {PRIMARY | DISALLOW NULL | IGNORE NULL}]

I soli elementi obbligatori sono il comando CREATE INDEX, il nome dell'indice, l'argomento ON, il nome della tabella contenente i campi che si desidera indicizzare e l'elenco dei campi da includere nell'indice.

  • L'argomento DESC consente di creare l'indice in ordine decrescente e ciò può risultare utile se si eseguono spesso query che effettuano la ricerca dei primi valori del campo indicizzato o che elencano il contenuto del campo indicizzato in ordine decrescente. Per impostazione predefinita, l'indice viene creato in ordine crescente.

  • L'argomento WITH PRIMARY consente di definire il campo o i campi indicizzati come chiave primaria della tabella.

  • L'argomento WITH DISALLOW NULL consente di impostare la richiesta di immissione di un valore per il campo indicizzato, vale a dire che non sono consentiti valori null.

Si supponga di utilizzare una tabella denominata Auto contenente campi in cui sono archiviati il nome, l'anno, il prezzo e la condizione relativi ad auto usate di cui si sta considerando l'acquisto. Si supponga inoltre che la tabella sia diventata di dimensioni estese e che nelle query si includa spesso il campo relativo all'anno. Per fare in modo che le query restituiscano più velocemente i risultati, è possibile creare un indice in base al campo Anno attenendosi alla seguente procedura:

  1. Nel gruppo Macro e codice della scheda Crea fare clic su Struttura query.

  2. Chiudere la finestra di dialogo Mostra tabella.

  3. Nel gruppo Tipo di query della scheda Struttura fare clic su Definizione dati.

    La griglia di struttura viene nascosta e viene visualizzata la scheda a oggetti Visualizzazione SQL.

  4. Digitare la seguente istruzione SQL:

    CREARE l'INDICE YearIndex via auto (anno)

  5. Nel gruppo Risultati della scheda Struttura fare clic su Esegui.

Torna all'inizio

Creare un vincolo o una relazione

Un vincolo stabilisce una condizione logica che un campo o una combinazione di campi deve soddisfare quando si inseriscono dei valori. Ad esempio, un vincolo UNIQUE impedisce al campo vincolato di accettare un valore che duplicherebbe un valore esistente per quel campo.

Una relazione è un tipo di vincolo che fa riferimento ai valori di un campo o una combinazione di campi in un'altra tabella per determinare se nel campo o nella combinazione di campi vincolati è possibile inserire un valore. Non utilizzare una parola chiave speciale per indicare che un vincolo è una relazione.

Per creare un vincolo si utilizza una clausola CONSTRAINT in un comando CREATE TABLE o ALTER TABLE. Sono disponibili due tipi di clausole CONSTRAINT: una per creare un vincolo per un solo campo e un'altra per creare un vincolo per più campi.

Vincoli a campo singolo

Una clausola CONSTRAINT a campo singolo segue immediatamente la definizione del campo che contiene e utilizza la seguente sintassi:

CONSTRAINT constraint_name {PRIMARY KEY | UNIQUE | NOT NULL |
REFERENCES foreign_table [(foreign_field)]
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

Si supponga di utilizzare una tabella denominata Auto contenente campi in cui sono archiviati il nome, l'anno, il prezzo e la condizione relativi ad auto usate di cui si sta considerando l'acquisto. Si supponga inoltre di dimenticare spesso di immettere un valore per la condizione dell'auto, mentre si desidera registrare sempre queste informazioni. Per creare un vincolo per il campo Condizione che impedisca di lasciare il campo vuoto, attenersi alla procedura riportata di seguito:

  1. Nel gruppo Macro e codice della scheda Crea fare clic su Struttura query.

  2. Chiudere la finestra di dialogo Mostra tabella.

  3. Nel gruppo Tipo di query della scheda Struttura fare clic su Definizione dati.

    La griglia di struttura viene nascosta e viene visualizzata la scheda a oggetti Visualizzazione SQL.

  4. Digitare la seguente istruzione SQL:

    MODIFICA TABELLA Auto ALTER COLONNA condizione TESTO VINCOLO ConditionRequired NON NULL

  5. Nel gruppo Risultati della scheda Struttura fare clic su Esegui.

Si supponga ora di notare, dopo un certo periodo di tempo, che nel campo Condizione sono presenti molti valori simili che dovrebbero essere uguali. Ad esempio, per alcune auto nel campo Condizione è presente il valore scadente e per altre il valore mediocre.

Nota : Se si desidera continuare con le procedure rimanenti, aggiungere alcuni dati fittizi alla tabella Auto creata nei passaggi precedenti.

Dopo aver provveduto alla pulizia dei valori in modo che siano più coerenti, si potrà creare una tabella con nome CondizioneAuto con un campo Condizione contenente tutti i valori che si desidera utilizzare per la condizione delle auto:

  1. Nel gruppo Macro e codice della scheda Crea fare clic su Struttura query.

  2. Chiudere la finestra di dialogo Mostra tabella.

  3. Nel gruppo Tipo di query della scheda Struttura fare clic su Definizione dati.

    La griglia di struttura viene nascosta e viene visualizzata la scheda a oggetti Visualizzazione SQL.

  4. Digitare la seguente istruzione SQL:

    CREA TABELLA CarCondition (condizione TEXT(10))

  5. Nel gruppo Risultati della scheda Struttura fare clic su Esegui.

  6. Creare una chiave primaria per la tabella utilizzando un'istruzione ALTER TABLE:

    MODIFICA TABELLA CarCondition ALTER COLONNA condizione TESTO VINCOLO CarConditionPK CHIAVE PRIMARIA

  7. Per inserire i valori dal campo Condizione della tabella Auto nella nuova tabella CondizioneAuto, digitare il seguente codice SQL nella scheda a oggetti Visualizzazione SQL:

    INSERIMENTO IN CarCondition SELECT DISTINCT condizione DA Auto;

    Nota : L'istruzione SQL in questo passaggio è una query di accodamento che, a differenza di una query di definizione dei dati, termina con un punto e virgola.

  8. Nel gruppo Risultati della scheda Struttura fare clic su Esegui.

Creare una relazione utilizzando un vincolo

Per fare in modo che qualsiasi nuovo valore inserito nel campo Condizione della tabella Auto corrisponda a un valore del campo Condizione nella tabella CondizioneAuto, è quindi possibile creare una relazione tra CondizioneAuto e Auto in corrispondenza del campo Condizione utilizzando la procedura riportata di seguito:

  1. Nel gruppo Macro e codice della scheda Crea fare clic su Struttura query.

  2. Chiudere la finestra di dialogo Mostra tabella.

  3. Nel gruppo Tipo di query della scheda Struttura fare clic su Definizione dati.

    La griglia di struttura viene nascosta e viene visualizzata la scheda a oggetti Visualizzazione SQL.

  4. Digitare la seguente istruzione SQL:

    MODIFICA TABELLA Auto ALTER COLONNA condizione TESTO VINCOLO FKeyCondition RIFERIMENTI CarCondition (condizione)

  5. Nel gruppo Risultati della scheda Struttura fare clic su Esegui.

Vincoli multicampo

Una clausola CONSTRAINT multicampo può essere utilizzata solo all'esterno di una clausola di definizione del campo e utilizza la sintassi seguente:

CONSTRAINT constraint_name 
{PRIMARY KEY (pk_field1[, pk_field2[, ...]]) |
UNIQUE (unique1[, unique2[, ...]]) |
NOT NULL (notnull1[, notnull2[, ...]]) |
FOREIGN KEY [NO INDEX] (ref_field1[, ref_field2[, ...]])
REFERENCES foreign_table
[(fk_field1[, fk_field2[, ...]])] |
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

Di seguito è riportato un altro esempio che utilizza la tabella Auto. Si supponga di voler avere la certezza che nella tabella Auto non siano presenti due record con lo stesso set di valori relativi a nome, anno, condizione e prezzo. In questo caso è possibile creare un vincolo UNIQUE per questi campi utilizzando la procedura seguente:

  1. Nel gruppo Macro e codice della scheda Crea fare clic su Struttura query.

  2. Chiudere la finestra di dialogo Mostra tabella.

  3. Nel gruppo Tipo di query della scheda Struttura fare clic su Definizione dati.

    La griglia di struttura viene nascosta e viene visualizzata la scheda a oggetti Visualizzazione SQL.

  4. Digitare la seguente istruzione SQL:

    MODIFICA TABELLA Auto aggiungere VINCOLO NoDupes UNIVOCI (nome, anno, condizioni, prezzo)

  5. Nel gruppo Risultati della scheda Struttura fare clic su Esegui.

Torna all'inizio

Nota : Dichiarazione di non responsabilità per la traduzione automatica: Il presente articolo è stato tradotto tramite un software di traduzione automatica e non da una persona. Microsoft offre le traduzioni automatiche per consentire a coloro che non conoscono la lingua inglese di leggere gli articoli sui prodotti, sui servizi e sulle tecnologie Microsoft. Dal momento che l'articolo è stato tradotto automaticamente, potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli.

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa al programma Office Insider

Queste informazioni sono risultate utili?

Grazie per i tuoi commenti e suggerimenti

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×