Guida per principianti alla scrittura di schemi di database mySQL

Guida per principianti alla scrittura di schemi di database mySQL

Nello sviluppo di un progetto software uno degli aspetti più importanti, fondamentali e intrinseci è uno schema di database adeguatamente strutturato. È l'equivalente di quando si costruisce una casa è necessario assicurarsi che le fondamenta siano posate correttamente, altrimenti le possibilità di costruire una casa di qualità si riducono drasticamente.





Sorprendentemente più facile di quanto si possa pensare, impariamo le varie sfaccettature utilizzate per scrivere uno schema di database ben strutturato.





perché i servizi di Google Play si sono fermati?

Sintassi CREATE TABLE

Per iniziare, apri il tuo editor di testo preferito. La creazione di uno schema di database non richiede altro che un file di testo normale. Un database è costituito da più tabelle, ciascuna costituita da colonne e la sintassi CREATE TABLE viene utilizzata per creare una singola tabella. Ecco un esempio di base:






CREATE TABLE users (
id INT NOT NULL,
is_active TINY INT NOT NULL,
full_name VAR CHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL
);

Come puoi vedere, questo creerà una tabella di database denominata utenti che si compone di quattro colonne. Questa dovrebbe essere un'istruzione SQL abbastanza semplice che inizia con CREA TABELLA , seguito dal nome delle tabelle del database, quindi tra parentesi le colonne della tabella separate da una virgola.

Usa i tipi di colonna corretti

Come mostrato sopra, le colonne di cui sarà composta la tabella sono separate da virgole. Ogni definizione di colonna è composta dalle tre stesse parti:



COL_NAME TYPE [OPTIONS]

Il nome della colonna, seguito dal tipo di colonna, quindi da eventuali parametri facoltativi. Entreremo nei parametri facoltativi in ​​seguito, ma concentrandoci sul tipo di colonna, di seguito vengono elencati i tipi di colonna più comunemente utilizzati disponibili:

A tutti gli effetti, i tipi di colonna di cui sopra sono tutto ciò di cui hai bisogno per scrivere schemi di database mySQL ben costruiti.





Definisci le opzioni della colonna

Quando si definiscono le colonne ci sono anche varie opzioni che è possibile specificare. Di seguito è riportato un altro esempio di CREA TABELLA dichiarazione:


CREATE TABLE users (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(100) NOT NULL UNIQUE,
status ENUM('active','inactive') NOT NULL DEFAULT 'active',
balance DECIMAL(8,2) NOT NULL DEFAULT 0,
date_of_birth DATETIME,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);

Quanto sopra può sembrare un po' scoraggiante, ma non preoccuparti, è abbastanza semplice. Ripartito, ecco cosa sta succedendo nella dichiarazione di cui sopra:





  • Dovresti sempre usare NOT NULL su tutte le colonne possibili per aiutare con la velocità e le prestazioni della tabella. Questo specifica semplicemente che la colonna non può essere lasciata vuota / nulla quando viene inserita una riga.
  • Cerca sempre di mantenere la dimensione della colonna quanto più piccola realisticamente possibile, poiché aiuta a migliorare la velocità e le prestazioni.
  • Il ID colonna è un numero intero, è anche la chiave primaria della tabella, il che significa che è univoca e aumenterà di uno ogni volta che viene inserito un record. Questo dovrebbe essere generalmente utilizzato su tutte le tabelle che crei in modo da poter facilmente fare riferimento a qualsiasi singola riga all'interno della tabella.
  • Il stato colonna è un ENUM e deve avere un valore 'attivo' o 'inattivo'. Se non viene specificato alcun valore, una nuova riga inizierà con lo stato di 'attivo'.
  • Il bilancia La colonna inizia da 0 per ogni nuova riga ed è un importo formattato con due due punti decimali.
  • Il data di nascita è semplicemente una DATA ma consente anche un valore nullo poiché la data di nascita potrebbe non essere nota al momento della creazione.
  • Ultimo, il create_at colonna è un TIMESTAMP e il valore predefinito è l'ora corrente in cui è stata inserita la riga.

Quanto sopra è un esempio di una tabella di database ben strutturata e dovrebbe essere usato come esempio in futuro.

Uno dei maggiori vantaggi dell'utilizzo di database relazionali come mySQL è il suo eccellente supporto per i vincoli di chiave esterna e la cascata. Questo è quando colleghi due tabelle insieme da una colonna, formando una relazione padre-figlio, quindi quando la riga padre viene eliminata, anche le righe figlio necessarie vengono eliminate automaticamente.

Ecco un esempio:


CREATE TABLE users (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(100) NOT NULL UNIQUE,
full_name VARCHAR(100) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) engine=InnoDB;
CREATE TABLE orders (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
userid INT NOT NULL,
amount DECIMAL(8,2) NOT NULL,
product_name VARCHAR(200) NOT NULL,
FOREIGN KEY (userid) REFERENCES users (id) ON DELETE CASCADE
) engine=InnoDB;

Noterai la clausola FOREIGN KEY come ultima riga. Questa riga afferma semplicemente che questa tabella contiene righe figlie collegate da ID utente colonna alla loro riga genitore, che è la ID colonna del utenti tavolo. Ciò significa che ogni volta che una riga viene eliminata dal utenti tabella, mySQL eliminerà automaticamente tutte le righe corrispondenti dalla ordini tabella che aiuta a garantire l'integrità strutturale all'interno del database.

Nota anche il motore=InnoDB alla fine della dichiarazione di cui sopra. Sebbene InnoDB sia ora il tipo di tabella mySQL predefinito, non lo è sempre stato, quindi questo dovrebbe essere aggiunto solo per stare sul sicuro, poiché la cascata funziona solo con le tabelle InnoDB.

il wifi non ha una connessione IP valida

Progetta con fiducia

Ora sei sulla buona strada per progettare schemi di database mySQL solidi e ben strutturati. Utilizzando la conoscenza di cui sopra, ora puoi scrivere schemi ben organizzati che forniscono sia prestazioni che integrità strutturale.

Con il tuo schema in atto, assicurati di sapere come usarlo con questi comandi SQL essenziali .

Condividere Condividere Tweet E-mail Come eseguire query su più tabelle di database contemporaneamente con join SQL

Scopri come utilizzare i join SQL per semplificare le query, risparmiare tempo e farti sentire un utente esperto di SQL.

Leggi Avanti
Argomenti correlati Circa l'autore Matt Dizaki(18 Articoli Pubblicati) Altro da Matt Dizak

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per consigli tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti