Mysql
 sql >> Database >  >> RDS >> Mysql

Come creare una tabella in MySQL

Molte volte potrebbe essere necessario creare una tabella in MySQL. Ecco come creare una tabella usando il comando MySQL CREATE TABLE.

Come creare tabelle in MySQL

Ecco i passaggi per creare una tabella in MySQL.

MySQL CREATE TABLE ti consente di creare una nuova tabella nel database. Ecco la sintassi.

CREATE TABLE [IF NOT EXISTS] table_name(
   column_1_definition,
   column_2_definition,
   ...,
   table_constraints
) ENGINE=storage_engine;

Nella query di creazione tabella sopra, nome_tabella è il nome della tua nuova tabella. SE NON ESISTE è un argomento facoltativo che controlla se la tabella esiste già e crea la tabella solo se non esiste.

colonna_1_definizione , colonna_2_definizione , … sono definizioni di colonna diverse, ciascuna composta dal nome della colonna e dal tipo di dati.

table_contraints sono diversi tipi di vincoli opzionali come il vincolo di chiave esterna, il vincolo di chiave primaria, ecc.

È possibile facoltativamente specificare il motore di archiviazione come variabile ENGINE. MySQL supporta i motori di archiviazione InnoDB e MyISAM. Se non specifichi questa variabile, MySQL utilizzerà InnoDB per impostazione predefinita.

Bonus Lettura:colonna MySQL Alter Table

Esempi MySQL CREATE TABLE

Ecco la query SQL per creare una tabella in MySQL. Creeremo un ordini tabella per memorizzare l'elenco degli ordini

CREATE TABLE IF NOT EXISTS orders (
    id INT AUTO_INCREMENT PRIMARY KEY,
    product_name VARCHAR(255) NOT NULL,
    order_date DATE,
    price INT NOT NULL,
    description TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)  ENGINE=INNODB;


mysql> describe orders;
+--------------+--------------+------+-----+-------------------+----------------+
| Field        | Type         | Null | Key | Default           | Extra          |
+--------------+--------------+------+-----+-------------------+----------------+
| id           | int(11)      | NO   | PRI | NULL              | auto_increment |
| product_name | varchar(255) | NO   |     | NULL              |                |
| order_date   | date         | YES  |     | NULL              |                |
| price        | int(11)      | NO   |     | NULL              |                |
| description  | text         | YES  |     | NULL              |                |
| created_at   | timestamp    | NO   |     | CURRENT_TIMESTAMP |                |
+--------------+--------------+------+-----+-------------------+----------------+

Nella query precedente,

id è la chiave primaria della nostra tabella con vincolo AUTO INCREMENT. Quindi, quando aggiungi una nuova riga a questa tabella, MySQL incrementerà automaticamente e compilerà automaticamente questa colonna per la nuova riga.

nome_prodotto è una colonna VARCHAR (stringa) in cui memorizzare il nome del prodotto

data_ordine è una colonna di data. Dal momento che non ha alcun vincolo, può anche avere valori NULL.

prezzo è una colonna intera con un vincolo NOT NULL. Quindi non può avere valori nulli.

creato_at è una colonna timestamp con CURRENT_TIMESTAMP come valore predefinito.

Abbiamo scelto di utilizzare il motore di archiviazione INNODB per questa tabella.

Bonus Leggi:MySQL AGGIUNGI COLONNA

MySQL CREATE TABLE con CHIAVE ESTERA

Creiamo una nuova tabella in MySQL con il vincolo FOREIGN KEY. Creeremo una nuova tabella order_status con una chiave esterna order_id che fa riferimento alla chiave primaria di ordini tabella.

mysql> CREATE TABLE IF NOT EXISTS order_status (
         status_id INT AUTO_INCREMENT,
         order_id INT,
         status VARCHAR(255) NOT NULL,
         is_completed BOOLEAN NOT NULL DEFAULT FALSE,
         PRIMARY KEY (status_id),
         FOREIGN KEY (order_id)
             REFERENCES orders (id)
             ON UPDATE RESTRICT ON DELETE CASCADE
     );

mysql> describe order_status;
+--------------+--------------+------+-----+---------+----------------+
| Field        | Type         | Null | Key | Default | Extra          |
+--------------+--------------+------+-----+---------+----------------+
| status_id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| order_id     | int(11)      | YES  | MUL | NULL    |                |
| status       | varchar(255) | NO   |     | NULL    |                |
| is_completed | tinyint(1)   | NO   |     | 0       |                |
+--------------+--------------+------+-----+---------+----------------+

Nella query precedente, aggiungiamo un vincolo di chiave esterna utilizzando MySQL ADD FOREIGN KEY

Si spera che ora sia possibile creare facilmente tabelle in MySQL.

Ubiq semplifica la visualizzazione dei dati in pochi minuti e il monitoraggio in dashboard in tempo reale. Provalo oggi!