Introduzione ai tipi di dati SQL

I tipi di dati in SQL, proprio come qualsiasi altro linguaggio di programmazione, definiscono quale tipo di dati può contenere la colonna o la variabile. Il tipo di dati può essere qualsiasi cosa, da un personaggio, attraverso una serie di caratteri, attraverso numeri, fino a data e ora. Un tipo di dati è un concetto molto cruciale di programmazione strettamente accoppiata. Aiuta a risolvere la maggior parte degli errori di compatibilità dei tipi durante la compilazione del programma stesso.

Vorremmo categorizzare ampiamente i tipi di dati SQL e quindi esplorare vari tipi ed esempi in quelle categorie.

Nota : non tutti i sistemi di gestione del database supportano tutti i tipi di dati. Ad esempio, Oracle non supporta DateTime. Queste specifiche sono fornite insieme alla descrizione del tipo di dati nell'articolo. Si consiglia di tenere presente questo aspetto durante la progettazione del database. Allo stesso modo, ci sono molti altri tipi di dati specifici per ogni particolare sistema di gestione del database. Ad esempio, MS SQL ha un tipo di dati di denaro. Tali tipi non sono generici e vanno oltre lo scopo di questo articolo.

Tipi di dati SQL

1. Binario

Il tipo di dati binari contiene una sequenza di stringhe di byte binari. A differenza delle normali stringhe di caratteri, le stringhe binarie vengono utilizzate per archiviare dati non convenzionali come le immagini.

Binario (dimensione): memorizza stringhe di byte binari della lunghezza della colonna specificata dal parametro size. La dimensione della colonna è fissa. Se la dimensione è definita come 10 byte e i dati memorizzati sono 5 byte, i restanti 5 byte sono ancora occupati nella memoria dalla colonna. Questi byte rimanenti sono riempiti null a destra dalla maggior parte dei parser SQL. La dimensione massima possibile è di 8000 byte.

Varbinary (size): memorizza stringhe di byte binari della lunghezza della colonna specificata dal parametro size. La dimensione della colonna non è fissa. Se la dimensione è definita come 10 byte e i dati memorizzati sono 5 byte, la colonna occupa solo 5 byte nella memoria. La dimensione massima possibile è di 8000 byte.

Varbinary (max): la specifica della parola chiave max nel parametro size aumenta la dimensione massima possibile a 2 GB e alloca la dimensione variabile alle colonne in base ai dati memorizzati. Questo tipo di dati non è supportato da MySQL.

Esempio:

create table BinaryDataTypes (col_binary BINARY(5), col_varbinary VARBINARY(5));
insert into BinaryDataTypes values (101, 121);
select * from BinaryDataTypes;

insert into BinaryDataTypes values (12345, 123456);
insert into BinaryDataTypes values (123456, 123456);

L'errore si verifica perché avevamo definito la dimensione delle colonne solo 5 byte.

2. Carattere / stringa

Questi tipi di dati memorizzano un singolo carattere o una serie di caratteri che formano una stringa. Questi includono personaggi, numeri e caratteri speciali. La natura dei personaggi è tuttavia limitata ai soli caratteri non Unicode.

Char (size): memorizza stringhe di caratteri a lunghezza fissa della lunghezza specificata dal parametro size. Il dimensionamento della colonna funziona in modo simile al tipo di dati BINARY. La dimensione predefinita è di 1 carattere. Il massimo è 255 nella maggior parte dei sistemi di gestione del database.

Varchar (dimensione): memorizza stringhe di caratteri di lunghezza variabile. Tuttavia, la lunghezza specificata dal parametro size definisce la lunghezza massima della colonna. La lunghezza massima possibile è di 65535 caratteri.

Varchar (max): la specifica della parola chiave max nel parametro size aumenta la dimensione massima possibile a 2 GB e alloca la dimensione variabile alle colonne in base ai dati memorizzati. Questo tipo di dati non è supportato da MySQL.

Testo: MySQL supporta il tipo di dati di testo anziché varchar (max). Il testo aumenta anche la dimensione massima possibile a 2 GB.

Esempio:

create table CharacterDataTypes (col_char CHAR(300));

create table CharacterDataTypes (col_char CHAR(20), col_varchar VARCHAR(20), col_text TEXT);
insert into CharacterDataTypes values ('Hello World', 'How you doing?', 'This is an incredibly longer text to demonstrate the data type text in MySQL. The data type text makes it possible to store 2GB of data in a column. That\'s equal to 2*1024*1024*1024 = over 2.14 billion characters. Whoa!');

3. Carattere / stringa Unicode

Questi tipi di dati memorizzano una singola o una stringa di caratteri Unicode.

Nchar (dimensione): è simile al tipo di dati char e supporta anche i caratteri Unicode. Il limite massimo è tuttavia ridotto a 4000 byte.

Nvarchar (dimensione): è simile al tipo di dati nvarchar e supporta anche i caratteri Unicode. Il limite massimo è tuttavia ridotto a 4000 byte.

Nvarchar (max): la specifica della parola chiave max nel parametro size aumenta la dimensione massima possibile a 1 GB e alloca la dimensione variabile alle colonne in base ai dati memorizzati. Questo tipo di dati non è supportato da MySQL.

Ntext: MySQL supporta il tipo di dati ntext anziché nvarchar (max). Ntext aumenta anche la dimensione massima possibile a 1 GB.

Esempio:

create table UnicodeCharacterDataTypes (col_unicode_char NCHAR(200));
insert into UnicodeCharacterDataTypes values ('局层局层');
select * from UnicodeCharacterDataTypes;

4. Numerico

I tipi di dati numerici supportano numeri interi e numeri reali / frazionari / decimali.

Bit / Bool / Boolean: questi tipi di dati memorizzano solo due valori: 0 e 1. 0 indica falso mentre 1 indica vero. Un po 'è supportato dalla maggior parte dei database. Alcuni database avanzati supportano anche booleano e booleano.

INT: memorizza numeri interi positivi e negativi di dimensioni fino a 4 byte. Ciò significa che il valore deve essere compreso nell'intervallo (-2147483648, 2147483647). La specifica della parola chiave senza segno limita la colonna per memorizzare solo valori positivi nell'intervallo (0, 4294967295).

TINYINT: memorizza numeri interi positivi e negativi di dimensioni fino a 1 byte. Ciò significa che il valore deve essere compreso nell'intervallo (-128, 127). Specificando la parola chiave senza segno si limita la colonna per memorizzare solo valori positivi nell'intervallo (0, 255).

Piccolo: memorizza numeri interi positivi e negativi di dimensioni fino a 2 byte. Ciò significa che il valore deve essere compreso nell'intervallo (-32768, 32767). Specificando la parola chiave senza segno si limita la colonna per memorizzare solo valori positivi nell'intervallo (0, 65535).

Bigint: memorizza numeri interi positivi e negativi di dimensioni fino a 8 byte. Ciò significa che il valore deve essere compreso nell'intervallo (-2 63, 2 63 -1). Specificando la parola chiave senza segno si limita la colonna per memorizzare solo valori positivi nell'intervallo (0, 2 64 -1).

Decimale (dimensione, D): memorizza un numero a virgola fissa. La dimensione del parametro specifica il numero totale di cifre, mentre d specifica il numero di cifre che seguono il punto decimale. I valori predefiniti per size e d sono rispettivamente 10 e 0.

Float (dimensione, D) / Doppio (dimensione, D): memorizza un numero in virgola mobile. Float viene utilizzato per numeri più piccoli di dimensioni fino a 4 byte. Il doppio memorizza numeri più grandi. Tuttavia, double non è supportato da tutti i database.

Conoscenza fuori dal programma - La differenza tra numeri in virgola fissa e in virgola mobile è che il punto decimale è fisso in uno e mobile in un altro. Punto fisso significa che il numero di cifre è fisso dopo e prima del punto decimale. Virgola mobile significa che il numero di cifre prima e dopo il punto decimale può variare in relazione al significato delle cifre nel numero.

Esempio:

create table NumericDataTypes (col_tinyint_u TINYINT UNSIGNED, col_smallint SMALLINT, col_int INT, col_bigint BIGINT UNSIGNED, col_decimal DECIMAL(5, 2), col_float FLOAT);
insert into NumericDataTypes values (255, -32768, 1234567890, (POWER(2, 63)-1), 987.65, 987.65);

5. Data e ora

  1. Data: archivia i dati nel formato AAAA-MM-GG, limitato dal 1000-01-01 al 9999-12-31.
  2. Ora: memorizza l'ora nel formato hh: mm: ss.
  3. DateTime: memorizza sia la data che l'ora.
  4. Timestamp : il timestamp viene utilizzato per contrassegnare un timestamp ogni volta che una riga viene inserita o aggiornata nella tabella. Questo di solito viene fatto tramite le parole chiave DEFAULT CURRENT_TIMESTAMP e ON UPDATE CURRENT_TIMESTAMP.

Esempio:

create table DateTimeDataTypes (col_date DATE, col_time TIME, col_datetime DATETIME, col_ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
insert into DateTimeDataTypes(col_date, col_time, col_datetime) values (CURDATE(), '08:50:41', NOW());

6. Tipi di dati SQL vari

  • CLOB: CLOB è l'acronimo di Character Large Objects. Possono contenere i dati dei personaggi fino a 2 GB. Tuttavia, non supportato da MySQL. MySQL utilizza Text per ottenere lo stesso risultato.
  • BLOB: BLOB è l'acronimo di Binary Large Objects. Sono utilizzati per la memorizzazione di oggetti binari di dimensioni fino a 2 GB. Di solito, le immagini vengono convertite in oggetti binari e archiviate in colonne BLOB.
  • XML: utilizzato per la memorizzazione di dati XML.
  • JSON: utilizzato per l'archiviazione dei dati JSON. Non supportato da MySQL.

Conclusione - Tipi di dati SQL

I tipi di dati SQL aiutano molto nell'ottimizzazione strategica dello spazio del database. In un mondo digitale, in cui i dati sono in continua crescita a un ritmo esponenziale, uno sviluppatore deve scegliere saggiamente il tipo per ogni bit di dati. Questo aiuta a ridurre i costi derivanti dalla massiccia memorizzazione dei dati.

Articoli consigliati

Questa è una guida ai tipi di dati SQL. Qui discutiamo di Introduzione, Tipi di dati SQL, Carattere / stringa, Carattere / stringa Unicode e Numerico. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più–

  1. Tipi di dati PostgreSQL
  2. Tipi di OLAP
  3. Tipi di malware
  4. Clausola SQL WHERE
  5. Parole chiave PHP
  6. Parole chiave C ++
  7. Primi 3 tipi di dati di PHP con esempi
  8. Esempi di implementazione dell'istruzione INSERT