Le tabelle di un database relazionale Mysql può accettare 4 tipologie di dati: numeri, stringhe ovvero caratteri alfanumerici inclusi i simboli e date compreso l’orario nonché valori geometrici.
I campi Mysql
Ogni tabella Mysql deve avere un nome personalizzato e contenere almeno un campo con un nome personalizzato e una tipologia definita.
I nomi personalizzati NON possono usare lo spazio ma solo lettere, numeri e simboli.
Create table nometabella (nomecampo tipocampo);
Fare attenzione! Diversamente dai comandi, i nomi personalizzati sono case sensitive distinguono tra caratteri maiuscoli e minuscoli.
I nomi dei campi come d’altronde delle tabelle possono essere sostituiti nella query da un alias introdotto, ma si può anche omettere, dalla keyword as.
Nel caso in cui il testo contenga spazio dev’essere racchiuso tra virgolette ” ” o apici ‘ ‘.
Risulta molto utile l’uso degli alias perché migliora la leggibilità delle query, snellendo il codice. Si usa, quasi sempre, per eseguire operazioni aritmetiche e statistiche con funzioni quali sum, count, avg, max, min. L’uso frequente in presenza di una o più join cioè relazioni tra tabelle.
SELECT count(*) as "Contenuto personalizzato" from nometabella;
Numeri
I numeri in un campo possono essere sostanzialmente di due tipi: interi (valori positivi e negativi) e decimali.
- Int indica un numero intero quindi positivo o negativo entro un determinato range.
Include ben 4 variazioni legate alla dimensione: Tinyint, Smallint, Mediumint e Bigint. - Decimal indica un valore decimale formato da numero intero, separatore (punto) e cifre decimali.
Anche in questo caso ci sono delle varianti legate alla dimensione: Float, Double e Real. - BIT, BOOLEAN e SERIAL sono valori booleani che accettano solo condizioni vere o false.
Si ricorda che i numeri vanno scritti liberamente senza l’uso di virgolette “ “ o apici ‘ ‘.
In alcuni casi potrebbe essere utile usare un campo stringa piuttosto che numerico poiché, di default, alcuni dati numerici vengono manipolati diversamente da mysql.
Ecco alcuni tipici esempi:
– nel caso delle partite IVA, o di qualsiasi altro campo come un prefisso telefonico urbano, che inizia con una o più cifre 0, su Mysql vengono omesse.
– alcune cifre potrebbero superare il numero consentito di una determinata terminologia e l’uso di un multiplo porterebbe a un uso esoso delle risorse come nel caso di una partita IVA.
– un campo di tipo numerico accetta solo numeri interi o decimali, in base alla dichiarazione, pertanto non è possibile inserire separatori come il trattino “-” nel caso di prefissi telefonici.
Se un campo è di tipo numerico può essere associato a un contatore auto incrementabile tramite l’extra auto_increment, di default inizializzato a zero.
Inoltre, se il campo è numerico è possibile effettuare operazioni aritmetiche come la somma sum(nomecampo) e statistiche quali: media avg(nomecampo), valore minimo min(nomecampo), valore massimo max(nomecampo) e conteggio record count(*).
Ma anche eseguire dei confronti con gli operatori <, >, =, <=, >=, <>.
Stringhe
Una stringa è tipo di campo che accetta: lettere, numeri e simboli.
- Varchar() specificare tra parentesi il numero di caratteri. Fino a 65.535 caratteri.
Esiste una variante che accetta fino a 255 caratteri e prende il nome di CHAR.
Un’altra importante differenza e dato dal fatto che Char usa tutti i caratteri massimi impostati differentemente da Varchar. Quindi richiede più risorse. - Text consente di inserire fino a 65.535 caratteri.
Come nel caso delle tipologie numeriche INT e DECIMAL anche qui ci sono dei sottomultipli e multipli basati sulla dimensione consentita, essi sono: TINYTEXT, MEDIUMTEXT E LONGTEXT.
Si preferisce usare TEXT quando non è nota la dimensione massima consentita. - Enum(“valore1″,”Valore2”) permette di creare un elenco fino a 65.535 caratteri dato da 2^16-1.
Anche in questo caso esiste una variante per dimensione data dalla tipologia SET(“valore1″,”valore2”) che accetta fino a 64 voci. - BLOB è una tipologia speciale che consente l’archiviazione di file dalle grandi dimensioni come immagini o file PDF.
Include dei multipli e sottomultipli: TINYBLOB, MEDIUMBLOB E LONGBLOB. - BINARY e VARBINARY sono l’equivalente rispettivo di CHAR e VARCHAR ma visualizzano byte e non caratteri.
Le stringhe vanno dichiarate sempre tra virgolette ” ” o apici ‘ ‘.
Nell’articolo dedicato alle constraint abbiamo applicato un check per creare un elenco:
Create table anagrafica3 (id_utente int primary key auto_increment, nome varchar(255) not null, cognome varchar(255) not null, sesso varchar(1) check(sesso IN("M","F")), telefono varchar(10) unique, email varchar(100) unique)
È decisamente importante usare invece enum in quanto già vengono suggeriti i valori accettati differentemente da un check.
Create table anagrafica3 (id_utente int primary key auto_increment, nome varchar(255) not null, cognome varchar(255) not null, sesso enum("M","F") not null, telefono varchar(10) unique, email varchar(100) unique);
Date e Tempo
Quelle più comuni sono:
- Date data nel formato aaaa-mm-gg
- Time orario nel formato hh:mm:ss
- Datetime data e ora in unico campo
- Year anno nel formato quattro cifre
- Timestamp visualizzata data e ora in vigore nel sistema
Eccetto il campo definito come year tutti gli altri tipi vanno definiti tra virgolette ” ” o apici ” ” in quanto non contengono valori numeri puri. Nel caso della data vi è il separatore trattino – mentre per l’orario il separatore è dato dai due punti :.
L’uso di un campo data come timestamp permette di impostare automaticamente il valore aggiungendo la constraint default current_timestamp particolarmente utilizzata in fase di log.
Create table Calendario(id int primary key auto_increment, DataInizio date, DataFine datetime, OraInizio time, AnnoTermine year, DataInserimento timestamp default current_timestamp);
Eseguendo la query vista sopra e provando a inserire dei valori si può notare che dichiarando un campo come datetime o timestamp e poi impostando default current_timestamp otteniamo, in entrambe le circostanze, il valore della data e ora correnti inserite.
Ma c’è un’importante differenza datetime preleva data e ora dal database con il fuso orario impostato mentre timestamp ottiene il dato dal computer in uso dall’utente.
Geometria
Infine, è possibile inserire anche dati geometrici:
- GEOMETRY valore geometrico generico
- POINT un punto
- LINESTRING una linea
- POLYGON un poligono
- MULTIPOINT più punti
- MULTILINESTRING più linee
- MULTIPOLYGON più poligoni
- GEOMETRYCOLLECTION insieme di dati geometrici
Fonti
Esperienza personale e manuale di W3CSchool.
Il nuovo buono Premium è sottoscrivibile dal 14 novembre, la nuova liquidità che concorre, invece, inizia dall'8 novembre. Ulteriori dettagli…
Sono venuto a conoscenza il 13/11/2024 del 3% tramite posta elettronica ma la scadenza indicata è del 14/11/2024 . Quale…
Ho lo stesso problema con una sim poste mobile: tracker non abilitato. Sarò costretto a fare il reso.
L'ho ricaricato completamente, ma non sono mai riuscita ad accenderlo.
grazi delle vostre informazioni mi son state utili, visto che nel mio caso sono vent'anni che non adopero il computer…