GNU/Linux >> Linux Esercitazione >  >> Cent OS

Tipi di dati MySQL

Introduzione

Tipi di dati MySQL sono importanti da capire prima di iniziare a creare e lavorare con un database MySQL. Se assegni correttamente ogni colonna, ti assicuri che il database sia ottimizzato e che i dati siano archiviati in modo sicuro.

In questo tutorial imparerai a conoscere i diversi tipi di dati MySQL.

Cosa sono i tipi di dati in MySQL?

Un nome e un tipo di dati definiscono ogni colonna in una tabella di database. Il tipo di dati specificato dice a MySQL che tipo di valori memorizzerà, quanto spazio richiede e che tipo di operazioni può eseguire con questo tipo di dati.

Tipi di dati MySQL

Esistono molti tipi di dati diversi che puoi memorizzare in una tabella MySQL.

Sono raggruppati in cinque categorie principali:

  1. Tipi di dati numerici
  2. Tipi di dati di data e ora
  3. Tipi di dati di stringa
  4. Tipi di dati spaziali
  5. Tipi di dati JSON

Continua a leggere per saperne di più su ciascun gruppo e vedere quali tipi di dati includono.

Tipi di dati numerici

Quando si memorizzano numeri in una colonna del database, utilizzare uno dei tipi di dati numerici. MySQL supporta sia i tipi di dati numerici esatti che quelli approssimativi.

La categoria numerica è ulteriormente suddivisa nei seguenti gruppi:

  • Tipi di dati interi
  • Tipi di dati a virgola mobile
  • Tipi di dati a virgola fissa
  • Tipi di dati con valori di bit

Tipi interi

Tipi di dati interi sono usati per i numeri interi (interi). Includono valori sia positivi che negativi. Tuttavia, non gestiscono numeri frazionari.

Pertanto, numeri come 30 e -5435 possono essere archiviati come tipi di dati interi, mentre 5,3 o 1/5 no.

I tipi interi sono con segno o senza segno. Sono ulteriormente suddivisi in base alla loro dimensione, differendo per la loro lunghezza e portata.

Byte Intervallo (senza segno) Intervallo (firmato)
TINYINT 1 da 0 a 255 da -128 a 127
PICCOLA 2 da 0 a 65535 da -32768 a 32767
MEDIUMINT 3 da 0 a 16777215 da -8388608 a 8388607
INT 4 da 0 a 4294967295 da -2147483648 a 2147483647
GRANDE 8 da 0 a 18446744073709551615 da -9223372036854775808 a 9223372036854775807

TINYINT è un numero intero molto piccolo che utilizza 1 byte di stoccaggio. È composto da un massimo di 4 cifre . Il suo intervallo senza segno è compreso tra 0 a 255 . Se è firmato, ha un intervallo da -128 a 127 .

SMALLINT è un numero intero piccolo che utilizza 2 byte di stoccaggio. È composto da un massimo di 5 cifre . Il suo intervallo senza segno è compreso tra 0 a 65535 . Una volta firmato, ha un intervallo da -32768 a 32767 .

MEDIUMINT è un numero intero di medie dimensioni che utilizza 3 byte di stoccaggio. Può contenere fino a 9 cifre . Se non firmato, ha un intervallo da 0 a 16777215 . Firmato, il suo valore minimo è -8388608 , mentre il suo valore massimo è 8388607 .

INT è un numero intero che utilizza 4 byte di stoccaggio. Utilizza fino a 11 cifre . Quando non è firmato, varia da 0 a 4294967295 . Se è firmato, ha l'intervallo da -2147483648 a 2147483647 .

BIGINT è un numero intero grande che utilizza 8 byte di stoccaggio. Può contenere fino a 20 cifre . Il suo valore minimo con segno è 0 , mentre il suo valore massimo con segno è 184467444073709551615 . Se firmato, ha l'intervallo da -9223372036854775808 a 9223372036854775807 .

Tipi in virgola mobile

I tipi di dati numerici a virgola mobile sono numeri razionali utilizzati per rappresentare valori approssimativi. Utilizza i tipi di dati a virgola mobile per calcoli ad alta precisione.

I tipi a virgola mobile includono:

  • FLOAT rappresenta valori a precisione singola che utilizzano 4 byte e includi fino a 6 o 7 cifre significative.
  • DOUBLE rappresentano valori a doppia precisione che utilizzano 8 byte e includi fino a 15 o 16 cifre significative.

La sintassi di base per definire FLOAT /DOUBLE il tipo di dati è FLOAT(M,D) /DOUBLE(M,D) .

M rappresenta il numero totale di cifre, mentre D è il numero di decimali. Ad esempio, il valore 5143.234 sarebbe definito come 7,3 in quanto ha 7 cifre in totale e 3 cifre dopo la virgola.

Puoi anche utilizzare il FLOAT(P) sintassi per specificare un tipo di dati a virgola mobile, dove P specifica la precisione. Se P ha un valore da 0 a 23 , è una colonna a precisione singola. Se la precisione è tra 24 e 53 , è una colonna a doppia precisione.

Byte Intervallo (senza segno) Intervallo (firmato)
GALLEGGIANTE 4 da 1.175494351E-38 a 3.402823466E+38 da -3.402823466E+38 a -1.175494351E-38
DOPPIA 8 da 0 e 2.22507385850720 14E-308 a 1.797693134862315 7E+ 308 da -1.7976931348623 157E+ 308 a -2.22507385850720 14E- 308

Tipi a virgola fissa

Per memorizzare valori numerici esatti, utilizzare il tipo di dati a virgola fissa – DECIMAL . Poiché rappresenta un numero esatto, questo tipo di dati viene utilizzato principalmente per dati che si basano su valori precisi (come i dati monetari).

La sintassi di base è DECIMAL(P,D) , dove P sta per precisione (il numero di cifre significative) e D sta per scala (il numero di cifre dopo la virgola).

Il numero massimo di cifre per la precisione è 65 , mentre il valore massimo per la scala è 30 .

Se non si definiscono la precisione e la scala, la colonna utilizza i valori predefiniti. Per impostazione predefinita, i valori per P,D sono 10,0 .

Tipi di valore bit

Il BIT il tipo di dati memorizza i valori binari. Quando crei una colonna che memorizzerà tali valori, definisci il numero di valori di bit che vanno da da 1 a 64 .

La sintassi per questo tipo di dati MySQL è BIT(N) . Se non specifichi N , il valore predefinito è 1 .

Tipi di dati di data e ora

Data e ora sono tipi di dati comunemente usati. Sia che tu stia memorizzando l'ora di un inserimento dati, una data di nascita o il timestamp corrente, utilizzi una delle seguenti colonne.

I tipi di dati di data e ora includono:

  • DATETIME , TIMESTAMP
  • DATE
  • TIME
  • YEAR

DATA ORA, TIMESTAMP

Per memorizzare i valori di data e ora, utilizza DATETIME o TIMESTAMP . Entrambi i tipi di dati memorizzano le informazioni nel AAAA-MM-GG HH:MM:SS formato. Include la y orecchio, m in poi, d sì, h nostro, m inutes e s econdi.

La principale differenza tra i due è la loro portata:

  • DATETIME i valori variano da 1000-01-01 00:00:00 a 9999-12-31 23:59:59 .
  • TIMESTAMP i valori variano da 01-01-1970 00:00:01 al 19-01-2038 03:14:07 .

Puoi includere frazioni di secondi per entrambe le opzioni. Per farlo, specifica la precisione seguendo la sintassi DATETIME(p) /TIMESTAMP(p) .

Ad esempio, per memorizzare il timestamp 22:53 del 1 marzo 2021 , con tre secondi frazionari, specifica il tipo di dati TIMESTAMP(3) . La voce viene archiviata come:2021-03-01 22:53:35.346 .

DATA

DATE viene utilizzato per memorizzare i valori di data nel formato AAAA-MM-GG (anno, mese, data).

Il tipo di dati supporta l'intervallo da 1000-01-01 a 9999-12-31 .

TEMPO

TIME viene utilizzato per memorizzare i valori temporali come HH-MM-SS (ore, minuti, secondi) o HHH-MM-SS . Le voci che mostrano il tempo trascorso o le differenze di orario vengono archiviate e recuperate in un formato più lungo (se necessitano di più cifre per le ore).

Il tipo di dati supporta l'intervallo da 1000-01-01 a 9999-12-31 .

ANNO

YEAR memorizza i valori dell'anno nel formato AAAA . Supporta valori compresi nell'intervallo 1901-2155 .

Mentre le versioni precedenti a MySQL 5.7.5 supportavano voci a 2 e 4 cifre per YEAR , non c'è stato alcun supporto a 2 cifre dalla versione 5.7.5.

Tipi di dati di stringa

Quando si archiviano stringhe di dati, utilizzare uno dei tipi di dati stringa. Possono contenere lettere, numeri, immagini o file.

Di conseguenza, esistono diversi tipi di dati stringa:

  • CHAR e VARCHAR
  • BINARY e VARBINARY
  • BLOB e TEXT
  • ENUM
  • SET

CHAR e VARCHAR

CHAR e VARCHAR sono tipi di dati utilizzati per memorizzare stringhe non binarie. La principale differenza tra i due è il modo in cui archiviano i dati.

CHAR memorizza stringhe di lunghezza fissa (fino a 255 caratteri). Durante la creazione di un CHAR colonna, specifichi la lunghezza utilizzando il CHAR(N) sintassi. N è il numero di caratteri che vuoi prendere. Se non definisci la lunghezza, utilizza il valore predefinito 1 .

Questi valori vengono memorizzati con il riempimento a destra della lunghezza specificata. Pertanto, se imposti un CHAR(5) colonna e memorizza una voce di tre caratteri al suo interno, occupa ancora cinque caratteri.

VARCHAR memorizza stringhe di lunghezza variabile. Sebbene la lunghezza debba essere definita durante la creazione di una colonna, i valori non vengono riempiti a destra. Hanno un limite massimo, ma la lunghezza non è fissa e varia a seconda dei dati.

Prima, l'intervallo per le voci era da 0 a 255 . Dopo il rilascio di MySQL 5.0.3, VARCHAR l'intervallo è fino a 65 535 caratteri .

BINARIA e VARBINARIA

BINARY e VARBINARY i tipi di dati sono simili al CHAR menzionato in precedenza e VARCHAR . La principale differenza tra questi due gruppi è che BINARY e VARBINARY sono usati per le stringhe binarie.

BINARY viene utilizzato per stringhe binarie di lunghezza fissa, fino a 255 byte . La sintassi principale per definire tale colonna è BINARY(N) , dove N è il numero di byte.

VARBINARY memorizza stringhe binarie di lunghezza variabile. MySQL versione 5.0.3 e successive memorizza fino a 65 535 byte .

BLOB e TESTO

Entrambi BLOB e TEXT vengono utilizzati per memorizzare grandi quantità di dati.

BLOB gestisce B inario L arge O bjects (ovvero, grandi insiemi di dati binari come immagini, file audio o PDF).

Esistono 4 tipi di dati BLOB da utilizzare, a seconda delle dimensioni richieste dai dati:

  • TINYBLOB (0 – 255; 255 byte)
  • BLOB (0 – 65.535; 16 KB)
  • MEDIUMBLOB (0 – 16.777.215; 16 MB)
  • LONGBLOB (0 – 4.294.967.295; 4 GB)

TEXT i tipi di dati servono per memorizzare stringhe di testo più lunghe. In base alla quantità di dati richiesti, c'è:

  • TINYTEXT (0 – 255; 255 byte)
  • TEXT (0 – 65.535; 16 KB)
  • MEDIUMTEXT (0 – 16.777.215; 16 MB)
  • LONGTEXT (0 – 4.294.967.295; 4 GB)

ENUM

Il ENUM il tipo di dati viene utilizzato per memorizzare uno dei possibili valori predefiniti in una colonna. La colonna può contenere fino a 65535 valori distinti.

Quando si crea un ENUM colonna della tabella in MySQL, specifichi un elenco di tutti i valori consentiti.

IMPOSTA

Come ENUM , il SET il tipo di dati ha un elenco predefinito di possibili valori memorizzati nella colonna.

La principale differenza tra i due è che SET consente a una voce di avere più di un valore.

Ad esempio, se la colonna è definita come SET('Red','Orange','Yellow','Green') e ha quattro possibili valori nell'elenco, una voce potrebbe avere il valore 'Rosso' , mentre un altro potrebbe avere il valore 'Rosso', 'Giallo' .

Il numero massimo di valori consentiti è 64 .

Tipi di dati spaziali

Quando si archiviano i dati spaziali, è possibile utilizzare uno dei tanti diversi tipi di dati spaziali supportati da MySQL. Sono utilizzati per rappresentare informazioni su forme geometriche e posizione fisica.

Possiamo dividerli in due gruppi:

  • Valori di geometria singola
  • Collezioni di valori

Valori di geometria singola

I tipi di dati a geometria singola includono GEOMETRY , POINT , LINESTRING e POLYGON .

  • GEOMETRY memorizza qualsiasi tipo di valore geometrico/spaziale.
  • POINT viene utilizzato per un valore in un punto.
  • LINESTRING memorizza una raccolta di più punti che formano una linea.
  • POLYGON è un tipo di dati utilizzato per memorizzare una raccolta di più punti che formano una superficie poligonale.

Raccolta di valori

I tipi di dati della raccolta di valori includono GEOMETRYCOLLECTION , MULTIPOINT , MULTILINE e MULTIPOLYGON .

  • GEOMETRYCOLLECTION memorizza una raccolta di valori geometrici/spaziali.
  • MULTIPOINT viene utilizzato per memorizzare una raccolta di più valori in punti.
  • MULTILINE memorizza una raccolta di più righe.
  • MULTIPOLYGON viene utilizzato per una raccolta di più poligoni.

Tipi di dati JSON

Dalla versione 5.7.8, MySQL includeva il supporto per il JSON nativo tipo di dati, consentendo agli utenti di archiviare e gestire documenti JSON tramite un database.

MySQL si assicura che i documenti JSON siano validi e li archivia nella colonna JSON.


Cent OS
  1. MySQL:conversione in dati per tabella per InnoDB

  2. Backup MySQL 1.1

  3. migliorare la velocità di importazione mysql

  4. Commit dati in un contenitore mysql

  5. Impossibile inviare i dati MySQL al file

Come rinominare una colonna in MySQL

Come eliminare una tabella in MySQL

Tipi di dati Python {Panoramica completa}

Che cos'è la replica dei dati? {Tipi di replica e schemi spiegati}

Installa MySQL su CentOS 7

PHP MySQL Seleziona dati