Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 6 di 58
  • livello intermedio
Indice lezioni

Creazione e gestione di database e tabelle

Creiamo il nostro primo database MySQL e la sua struttura a tabelle, grazie alle istruzioni SQL messe a disposizione dal DBMS .
Creiamo il nostro primo database MySQL e la sua struttura a tabelle, grazie alle istruzioni SQL messe a disposizione dal DBMS .
Link copiato negli appunti

Iniziamo con questa lezione MySQL a costruire un database. Il lavoro verrà essenzialmente svolto impartendo ordini al DBMS attraverso il linguaggio SQL.

Per eseguire gli esempi presentati qui e nelle lezioni successive, si può utilizzare il client testuale mysql. Se ne è già parlato in precedenza, pertanto ricordiamo solo che è sufficiente, da riga di comando, invocarlo fornendo nome utente e password:

mysql -u root -p

Per i nostri scopi useremo l'account root

I comandi SQL verranno impartiti direttamente nel prompt del client mysql dopo l'autenticazione o, in caso di comandi troppo lunghi come la creazione di tabelle, si potrà preparare un file ed inviarlo direttamente al client con l'operatore '<':

mysql -u root -p < test.sql;

MySQL: create database

Il primo passo da affrontare è la creazione di un database. Dal prompt di mysql possiamo innanzitutto vedere quanti database abbiamo già a disposizione, tramite il comando seguente:

show databases;

Se non ne abbiamo mai creati, probabilmente verranno mostrati solo alcuni database "di servizio", che occorrono allo stesso MySQL per svolgere il suo lavoro.

Ecco come creare un database con SQL
CREATE DATABASE nuovodb;

dove nuovodb

Conviene puntualizzare che anche questo comando deve terminare con un punto e virgola (; CREATE DATABASE CReaTe DaTAbaSE nuovodb

La prova che il database è stato creato si può quindi ottenere tramite SHOW DATABASES

Il nuovo database non diventa però automaticamente quello attivo (cioè quello su cui i comandi SQL saranno indirizzati). Per potervi iniziare a lavorare è dunque necessario selezionare il nostro database, tramite il comando USE

USE nuovodb;

In alternativa a mysql mysqladmin

Anche in questo caso dovremo fornire credenziali di accesso da riga di comando e successivamente utilizzare il comando CREATE

mysqladmin -u root -p CREATE nuovodatabase

Per verificare l'esito del comando impartito, si può di nuovo usare SHOW DATABASES mysqlshow -u -p

mysqlshow -u root -p

Creare tabelle MySQL

Il database fornisce il contesto alla creazione del nostro progetto ma i veri nodi che costituiranno la sua rete di informazioni sono le tabelle. Di seguito impareremo a crearle, tramite un'opzione che può sembrare un'operazione semplice in molti casi, soprattutto con l'aiuto di strumenti visuali, ma che invece è un lavoro delicato e molto importante.

L'esempio proposto può essere svolto all'interno del client mysql dopo aver creato un database ed aver dichiarato di volerlo usare (direttiva USE).

CREATE TABLE `Persone` (
`id` INT NOT NULL AUTO_INCREMENT,
`nome` VARCHAR(45) NULL,
`cognome` VARCHAR(45) NULL,
`dataDiNascita` DATE NULL,
`sesso` ENUM('M','F') NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB;

Il codice precedente crea una tabella denominata Persone mysql ;

La sintassi mostra che CREATE TABLE, seguito dal nome della nuova tabella, è il comando che esegue l'operazione.

Tra le parentesi tonde vengono specificati i campi che la compongono; per ognuno di essi si indica:

  • nome id nome cognome dataDiNascita sesso
  • tipo di dato INT VARCHAR DATE ENUM M F
  • parametri che seguono il tipo di dato e possono specificare vincoli NULL NOT NULL AUTO_INCREMENT

Infine si vede che è stato specificato il campo id come chiave primaria, mediante il comando PRIMARY KEY. Una chiave primaria, argomento approfondito nel seguito, indica un valore composto da uno o più campi che individua univocamente il record in cui è collocato.

Tabelle temporanee in MySQL

È possibile anche creare una tabella temporanea utilizzando il comando CREATE TEMPORARY TABLE specificando i campi come di consueto. Questo tipo di tabelle esiste per il tempo di una sessione, il che permette a più utenti collegati, appartenenti quindi a sessioni diverse, di poter utilizzare le stesse tabelle. La loro utilità si esplica per lo più nell'immagazzinamento di dati temporanei a supporto di elaborazioni lunghe.

Altro aspetto molto utile da considerare è che se chiediamo di creare una tabella che già esiste, viene restituito un errore. Si può quindi ordinare a MySQL di creare la tabella solo nel caso in cui non ne esista già una omonima:

CREATE TABLE IF NOT EXISTS Persone
(
...
...
)

Ti consigliamo anche