Riepilogo: in questo tutorial, ti mostreremo come utilizzare l’istruzione MySQLCREATE TABLE
per creare una nuova tabella nel database.
MySQL CREATE TABLE syntax
L’istruzioneCREATE TABLE
consente di creare una nuova tabella in un database.
Quanto segue illustra la sintassi di base dell’istruzioneCREATE TABLE
:
Esaminiamo la sintassi in modo più dettagliato.,
Innanzitutto, si specifica il nome della tabella che si desidera creare dopo le parole chiave CREATE TABLE
. Il nome della tabella deve essere univoco all’interno di un database. Il IF NOT EXISTS
è facoltativo. Consente di verificare se la tabella creata esiste già nel database. Se questo è il caso, MySQL ignorerà l’intera istruzione e non creerà alcuna nuova tabella.
In secondo luogo, si specifica un elenco di colonne della tabella nella sezione column_list
, le colonne sono separate da virgole.,
In terzo luogo, è possibile specificare facoltativamente il motore di archiviazione per la tabella nella clausolaENGINE
. È possibile utilizzare qualsiasi motore di archiviazione come InnoDB e MyISAM. Se non si dichiara esplicitamente un motore di archiviazione, MySQL utilizzerà InnoDB per impostazione predefinita.
InnoDB è diventato il motore di archiviazione predefinito dalla versione 5.5 di MySQL. InnoDB storage engine offre molti vantaggi di un sistema di gestione di database relazionali come la transazione ACID, l’integrità referenziale e il ripristino degli arresti anomali. Nelle versioni precedenti, MySQL ha utilizzato MyISAM come motore di archiviazione predefinito.,
Quanto segue mostra la sintassi per la definizione di una colonna:
Ecco i dettagli:
- Il
column_name
specifica il nome della colonna. Ogni colonna ha un tipo di dati specifico e una dimensione opzionale, ad esempio,VARCHAR(255)
- Il vincolo
NOT NULL
assicura che la colonna non conterràNULL
. Oltre al vincoloNOT NULL
, una colonna può avere un vincolo aggiuntivo come CHECK e UNIQUE. -
DEFAULT
specifica un valore predefinito per la colonna., - Il
AUTO_INCREMENT
indica che il valore della colonna viene incrementato di uno automaticamente ogni volta che viene inserita una nuova riga nella tabella. Ogni tabella ha un massimo di una colonnaAUTO_INCREMENT
.
Dopo l’elenco delle colonne, è possibile definire vincoli di tabella come UNIQUE, CHECK, PRIMARY KEY e FOREIGN KEY.
Ad esempio, se si desidera impostare una colonna o un gruppo di colonne come chiave primaria, si utilizza la seguente sintassi:
Code language: SQL (Structured Query Language) (sql)
MySQL CREATE TABLE statement examples
Prendiamo alcuni esempi di creazione di nuove tabelle.,
1) MySQL CREA una TABELLA semplice esempio
L’istruzione seguente crea una nuova tabella denominata tasks
:
Code language: SQL (Structured Query Language) (sql)
La tabella di attività ha le seguenti colonne:
-
task_id
si tratta di un incremento automatico di colonna. Se si utilizza l’istruzioneINSERT
per inserire una nuova riga nella tabella senza specificare un valore per la colonnatask_id
, MySQL genererà automaticamente un numero intero sequenziale pertask_id
a partire da 1., - La colonna
title
è una colonna di stringa di caratteri variabile la cui lunghezza massima è 255. Significa che non è possibile inserire una stringa la cui lunghezza è maggiore di 255 in questa colonna. Il vincoloNOT NULL
indica che la colonna non accettaNULL
. In altre parole, è necessario fornire un valore non NULLO quando si inserisce o si aggiorna questa colonna. - Le
start_date
edue_date
sonoDATE
colonne., Poiché queste colonne non hanno il vincoloNOT NULL
, possono memorizzareNULL
. La colonna start_date ha un valore predefinito della data corrente. In altre parole, se non si fornisce un valore per la colonna start_date quando si inserisce una nuova riga, la colonna start_date prenderà la data corrente del server di database. - Le
status
epriority
sono leTINYINT
colonne che non consentonoNULL
., - La colonna
description
è una colonnaTEXT
che accettaNULL
. - La colonna
created_at
è una colonnaTIMESTAMP
che accetta l’ora corrente come valore predefinito.
task_id
è la colonna della chiave primaria della tabella tasks
. Significa che i valori nella colonnatask_id
identificheranno in modo univoco le righe nella tabella.,
una Volta che si esegue il CREATE TABLE
istruzione per creare il tasks
tabella, è possibile visualizzare la struttura utilizzando i tag DESCRIBE
dichiarazione:
Code language: SQL (Structured Query Language) (sql)
Questa immagine mostra il diagramma di database di tasks
tabella:
2) MySQL CREA una TABELLA con una chiave esterna, la chiave primaria di esempio
Supponiamo che ogni attività ha una lista di to-do list., Per memorizzare le liste di controllo delle attività, è possibile creare una nuova tabella denominatachecklists
come segue:
La tabellachecklists
ha una chiave primaria composta da due colonne., Pertanto, abbiamo utilizzato un vincolo di tabella per definire la chiave primaria:
Code language: SQL (Structured Query Language) (sql)
inoltre, task_id
è la colonna di chiave esterna che fa riferimento alla task_id
colonna della tabella tasks
, abbiamo utilizzato un vincolo di chiave esterna per stabilire questa relazione:
Potete imparare più circa il vincolo di chiave esterna nella successiva esercitazione.,
Questa immagine mostra il checklists
tabella e il suo rapporto con il tasks
tabella:
In questo tutorial, avete imparato a usare MySQL CREATE TABLE
istruzione per creare una nuova tabella nel database.
- Questo tutorial è stato utile?
- Sì