Author Avatar

Fabrizio S.

0

Share post:

Guida Tutorial al Database MySql i tipi di dato

Ne abbiamo già parlato in parte del  database ed in particolare di quello Mysql diciamo che adesso approfondiremo l’argomento in maniera piu’ esaustiva. Cominciamo ovviamente da una definizione di cosa significhi in informatica database In informatica ossia  banca dati o base di dati, indica un archivio dati, o un insieme di archivi, dove sono contenute informazioni secondo un ordine relazionale e/o  gerarchico e/o reticolare a oggetti  per consentirgli la gestione la gestione/organizzazione efficiente dei dati stessi grazie a particolari applicazioni software dedicate (DBMS), basate su un’architettura di tipo client-server, e ai cosiddetti query language per l’interfacciamento con le richieste dell’utente (query di ricerca o interrogazione, inserimento, cancellazione ed aggiornamento).   Ad oggi esistono molte varianti di database fra i quali citiamo Oracle, DB2, MS Sql, Ibase, FBird, PGSQL, Mysql, Sybase ASA, SQLite, MS Access, Informix e altri ancora. Una svariata galassia con caratteristiche simili e in continua evoluzione. Noi ci occuperemo adesso del Database MYSQL che è forse il piu’ indicato per PHP. Spesso si usa anche dire  che PHP  da solo è poco , con MYSQL è il migliore linguaggio che si possa utilizzare.  Forse è un ‘esagerazione, ma che comunque rende abbastanza bene il concetto di quello che andiamo ora a spiegarvi.

 

MYSQL

Quindi senza fare ulteriori preamboli si tratta di un codice gratuito , un software per la precsisione, sviluppato dalla casa svedese da cui prende il nome. E’ quindi di proprietà esclusiva della  MySQL AB, i quali profitti vengono reinvestiti. Non ci addentriamo ulteriormente ma credo che attualmente la società sia entrata a fare parte del mondo SUN Microsystem, che probabilmente avrete già conosciuto quale sviluppatore di Java, un altro loro prodotto. Ritornando a noi MYSQL è composto da un client con interfaccia a riga di comando e un server, entrambi disponibili sia per sistemi Unix o Unix-like come GNU/Linux che per Windows, anche se prevale un suo utilizzo in ambito Unix. Dispone di molti tool applicativi fra i quali il piu’ comune è il phpMyAdmin che in genere viene distribuito ad oggi nei pacchetti LAMP.

 

 

Cominciamo quindi a parlarvi del campo piu’ importante del MYSQL ossia il campo chiave

 

Significa stabilire le regole secondo la quale il contenuto di quel campo non puo’ essere presente nel campo corrispondente  di un altro record della stessa tabella.

 

  • Le altre istruzioni del database che abbiamo già rivisto e quindi non ci soffermiamo piu’ di tanto sopra sono
  • show databases , mostra il database
  • drop database cancella il database
  • AUTO_INCREMENT ossia attivando questo opsione si  farà intendere al software che ogni volta che viene aggiunto un nuovo regord della tabella Mysql incrementerà automaticamente  di 1 il valore dell’ultimo codice presente nella tabella senza che l’’utente debba preoccuparsene
  • PRIMARY KEY che non ci possono essere vari nulli, ossia not null assegnato a tutti i campi
  • Alter table per modificare il valore della tabella
  • Drop table per cancellare una tabella

 

Tipi di Dato

 

Tipo di dato Mysql Occupazione in byte Valore minimo Valore massimo  
Bit [(M)] =TINYINY(1) 1 -128 127
MOOL[(M)] O Boolen[(M)] 1 0 equivale a falso ¨       0 equivale a vero  
TINYINT[(M)] 1 -128 128  
SMALLINT[(M)] 2 -32768 32767  
MEDIUM INT[(M)] 3 -8388608 8388607  
INT[M] o INTEGER [(M)] 4 -2147483648 2147483647  
BIGINT[(M)] 8 …. …..  

 

 

Se per esempio attribuiamo all’attributo UNSIGED ad un campo TINYINY i 256 valori rappresentabili andrebbero

0—<256

Nei campi numerici se si effettua una sottrazione fra due campi interi di cui una è UNSIGNED e l’altro no, il risultato sarà UNSIGNED7

 

 

NUMERI DECIMALI

 

La loro caratteristica è di essere meno precisi di quelli interi a causa degli arrotondamenti facciamone una breve rassegna

Tipo di dato Mysql Occupazione in byte Valore Minimo Valore Minimo Valore Massimo
FLOAT [M,D] 4 BYTE Minimo scluso zero +-1,17549351 e -38 +- 3,40282366E38
DOUBLE M,D O DOUBLE PRECISION M, D 8 BYTE MINIMO ESCLUSO ZERO +- 2,225 10 -38 +- 1,79,769 E 308
DECIMAL M,D M+2byte Dipendono dai valori di M e D  

 

Si lascia all’utente la possibilità di definire la lunghezza

I valori minimo e massimo rappresentabili in un campo di tipo decimal vengono calcolati in questo modo

M+2 è il totale complessivo delle cifre che fanno parte del numero, compreso segno, punto decismale e i decimali

D è il totale delle sole cifre decimali che devono gestire nel campo AD ESMPIO

DECIMAL (8,3)

Numero minimo = -9999999.99 che sono 8 + 2 cifre  compreso uno di segno ossia 10

Numero massimo =999999.999 che sono 10 cifre in quanto il segno non è stato messo.

 

OPZIONI

Le opzioni applicabili ai tipi di dato numerico sono

  • UNSIGNED evita che il cmpo assuma valori negativi
  • ZEROFIL nel caso di dati interi fornisce l’allineamento con gli interi ossia 10, 100, 1000 e vale anche per i decimali
  • AUTO_INCREMENT utilizzato per incrementare automaticamente di una unità il valore numerico del campo di cui è attributo, ogni volta che viene creato un nuovo record.

Spesso la chiave primaria o PRIMARY KEY viene impostata appunto come campo di tipo numerico auto:increment. Il suo effetto garantische che non possono esserci due campi con lo stesso valore, proprio perché per ogni nuovo record il contenuto del campo viene aumentato di 1.

 

 

 

TIPO DI TESTO E MULTIMEDIALI

 

Stringa gruppo di caratteri di tipo stringa ossia sono un insieme  di caratteri  char vediamo un attimo nel particolare

Un carattere è tipicamente una lettera dell’alfabeto oppure si tratta di una delle dieci cifre da 0-9 m anche un segno di interpunzione o uno dei caratteri definiti speciali come  la tabulazione e/0 invio

  • Fino a 255 caratteri MYSQL usa Char e Varchar dove var  char arriva fino a 65535 mentre il char la metà
  • Per le grandi dimensioni invece si utilizza Text o Blog

 

Dove la differenza fra Blog o Text consiste nel come vengono gestiti in modalità binaria i primi a differenze dei secondi

 

Vediamo adesso dei gruppi di stringhe predefinite

Questi campi possono contenere solo stringhe scelte tra un insieme di valori predefiniti. Prendono i nomi di Enum e Set vediamo piu’ in dettaglio

  • Nome-vampo ENUM (“valore1” “valore2…..”Valore N] [NULL], se viene assegnato l’attributo di tipo null significa che il campo non contiene stati
  • Nome campo SET (“valore1”, “valore2” , “Valore N”] [NULL]

La differenza consiste nel fatto che ENUM puo’ essere presente solamente uno dei valori presenti solamente in uno dei valori apparteenti all’insimee definito dall’utente, mentre nel caso di SET ci potrebbero essere anche piu’ valori, ma sempre naturalmente in quelli rappresentativi dell’insieme considerato.

DATA ora, TIMESTAMP

Per la definizione di campi per la gestione del tempo MYSQL mette a disposzione degli utenti piu’ di un formato che vengono classificati secondo la tipologia Che sono  le potete vedere in tabella che vi abbiamo mostrato

 

 

 

Tipo di Campo Occupazione byte Visualizzazione  
TIMESTAMP 4 AAA MMGGHHMMSS
DATETIME 8 AAA A-MM-GG-HH:MM:SS
     

 

 

TIMESTAMP inventato ai tempi di LUNUX fa riferimento a partire dal 1970 -01-01 dove a tale giorno si fa corrispondere l’ora 00:00:00. Facciamo qualche precisazione per rendere piu’ chiaro il tutto
DATETIME

In un campo DATE TIME possono essere memorizzati valori che appartengono a un ambito temporale che va

Dal minimo di 1000-01-01 00:00:00

Al massimo di 9999-12-31 23:59:58

 

Vediamo adesso qualche differenza nel valore

Valore della data immesso nel campo

1999-01-01. Date time la veredrebbe come 1999-01-01-01 00:00:00 mentre TIMESTAMP la vede come 1999010100000

Ed è per questo che Datetime viene utilizzato per la visualizzazione mentre Timestamp per lavorarci a livello numerico

 

 

Formattazione testo PHP ereg_replace, preg_match(), str_replace, preg_match_all
UART unniversal asynchronous receiver transmitter o ricetrasmettitore asincrono universale