Introducere în tipurile de date SQL

Tipurile de date în SQL, la fel ca orice alt limbaj de programare, definesc ce tip de date poate stoca coloana sau variabila. Tipul de date poate fi orice, de la un personaj, printr-o serie de caractere, prin numere, până la data și ora. Un tip de date este un concept foarte crucial al programării strâns cuplate. Ajută la rezolvarea majorității erorilor de compatibilitate de tip în timpul compilării în sine a programului.

Am clasifica pe larg tipurile de date SQL și apoi am explora diferite tipuri și exemple în cadrul acestor categorii.

Notă - Nu toate sistemele de gestionare a bazelor de date acceptă toate tipurile de date. De exemplu, Oracle nu acceptă DateTime. Aceste specificații sunt prezentate împreună cu descrierea tipului de date din articol. Este recomandat să fiți atenți la acest lucru în timp ce proiectați baza de date. În mod similar, există multe alte tipuri de date care sunt specifice oricărui sistem de gestionare a bazelor de date. De exemplu, MS SQL are un tip de date banesti. Astfel de tipuri nu sunt generice și sunt în afara domeniului de aplicare al acestui articol.

Tipuri de date SQL

1. binare

Tipul de date binare conține o secvență de șiruri de octeți binari. Spre deosebire de șirurile de caractere obișnuite, șirurile binare sunt utilizate pentru a stoca date neconvenționale, cum ar fi imagini.

Binar (mărime): Stochează șiruri de octeți binari cu lungimea coloanei specificate de parametrul de mărime. Dimensiunea coloanei este fixată. Dacă dimensiunea este definită drept 10 octeți și datele stocate sunt de 5 octeți, restul de 5 octeți sunt încă ocupați în memorie de coloană. Cei mai mulți parseri SQL sunt nulați la netezi. Dimensiunea maximă posibilă este de 8000 de octeți.

Varbinary (size): Stochează șiruri de octeți binari cu lungimea coloanei specificate de parametrul de mărime. Mărimea coloanei nu este fixată. Dacă dimensiunea este definită ca 10 octeți și datele stocate sunt de 5 octeți, coloana ocupă doar 5 octeți în memorie. Dimensiunea maximă posibilă este de 8000 de octeți.

Varbinar (max): Specificarea cuvântului cheie max în parametrul de mărire crește dimensiunea maximă posibilă la 2 GB și alocă dimensiunea variabilă coloanelor pe baza datelor stocate. Acest tip de date nu este acceptat de MySQL.

Exemplu:

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);

Eroarea apare deoarece am definit dimensiunea coloanelor ca doar 5 octeți.

2. Caracter / șir

Aceste tipuri de date stochează fie un singur personaj, fie o serie de caractere care formează un șir. Acestea includ caractere, numere și caractere speciale. Natura caracterului (caracterelor) este totuși limitată doar la caractere non-Unicode.

Char (mărime): Stochează șiruri de caractere cu lungime fixă ​​de lungime specificată de parametrul de mărime. Dimensiunea coloanei funcționează într-o manieră similară cu tipul de date BINARY. Dimensiunea implicită este de 1 caracter. Maximul este de 255 în majoritatea sistemelor de gestionare a bazelor de date.

Varchar (mărime): Stochează șiruri de caractere cu lungime variabilă. Cu toate acestea, lungimea specificată de parametrul de dimensiune definește lungimea maximă a coloanei. Lungimea maximă posibilă este de 65535 de caractere.

Varchar (max): specificarea cuvântului cheie max în parametrul de dimensiune mărește dimensiunea maximă posibilă la 2 GB și alocă dimensiunea variabilă coloanelor pe baza datelor stocate. Acest tip de date nu este acceptat de MySQL.

Text: MySQL acceptă tipul de date text în loc de varchar (max). De asemenea, textul mărește dimensiunea maximă posibilă la 2 GB.

Exemplu:

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. Caracter Unicode / șir

Aceste tipuri de date stochează fie un singur, fie un șir de caractere Unicode.

Nchar (mărime): Acesta este similar cu tipul de date char și acceptă și caractere Unicode. Limita maximă este totuși redusă la 4000 de octeți.

Nvarchar (mărime): Aceasta este similară cu tipul de date nvarchar și acceptă și caractere Unicode. Limita maximă este totuși redusă la 4000 de octeți.

Nvarchar (max): specificarea cuvântului cheie max în parametrul de dimensiuni mărește dimensiunea maximă posibilă la 1 GB și alocă dimensiunea variabilă coloanelor pe baza datelor stocate. Acest tip de date nu este acceptat de MySQL.

Ntext: MySQL acceptă tipul de date ntext în loc de nvarchar (max). Ntext crește, de asemenea, dimensiunea maximă posibilă la 1 GB.

Exemplu:

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

4. Numeric

Tipurile de date numerice acceptă numere întregi și numere reale / fracționale / zecimale.

Bit / Bool / Boolean: Aceste tipuri de date stochează doar două valori - 0 și 1. 0 denotă fals în timp ce 1 denotă adevărat. Un pic este susținut de majoritatea bazelor de date. Unele baze de date avansate acceptă și booleană și booleană.

INT: Stochează numere întregi pozitive și negative cu dimensiunea de până la 4 octeți. Aceasta înseamnă că valoarea trebuie să fie în intervalul (-2147483648, 2147483647). Specificarea cuvântului cheie nesemnat restricționează coloana pentru a stoca doar valori pozitive în interval (0, 4294967295).

TINYINT: Stochează numere întregi pozitive și negative cu dimensiunea de până la 1 octet. Aceasta înseamnă că valoarea trebuie să fie în intervalul (-128, 127). Specificarea cuvântului cheie nesemnat restricționează coloana pentru a stoca doar valori pozitive în interval (0, 255).

Smallint: Stochează numere întregi pozitive și negative cu dimensiunea de până la 2 octeți. Aceasta înseamnă că valoarea trebuie să fie în intervalul (-32768, 32767). Specificarea cuvântului cheie nesemnat restricționează coloana pentru a stoca doar valori pozitive în interval (0, 65535).

Bigint: Stochează numere întregi pozitive și negative cu o dimensiune de până la 8 octeți. Aceasta înseamnă că valoarea trebuie să fie în intervalul (-2 63, 2 63 -1). Specificarea cuvântului cheie nesemnat restricționează coloana pentru a stoca doar valori pozitive în intervalul (0, 2 64 -1).

Zecimal (mărime, D): stochează un număr fix. Mărimea parametrului specifică numărul total de cifre, în timp ce d specifică numărul de cifre după punctul zecimal. Valorile implicite pentru dimensiune și d sunt respectiv 10 și 0.

Float (mărime, D) / Double (mărime, D): Stochează un număr în virgulă flotantă. Float este utilizat pentru un număr mai mic de până la 4 octeți în dimensiune. Dubla stochează numere mai mari. Cu toate acestea, dublu nu este acceptat de toate bazele de date.

Cunoștințe din afara programului - Diferența dintre numerele cu punct fix și cele în virgula plutitoare este că punctul zecimal este fixat într-unul și plutind în altul. Punct fix înseamnă că numărul de cifre este fixat după și înainte de punctul zecimal. Punctul flotant înseamnă că numărul de cifre înainte și după punctul zecimal poate varia în raport cu semnificația cifrelor din număr.

Exemplu:

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 și ora

  1. Data: Stochează datele în format YYYY-MM-DD, limitat de la 1000-01-01 la 9999-12-31.
  2. Ora: Stochează ora în formatul hh: mm: ss.
  3. DateTime: stochează atât data cât și ora.
  4. TimeStamp: timestamp este utilizat pentru a marca un timestamp ori de câte ori un rând este introdus sau actualizat în tabel. Acest lucru se realizează de obicei prin cuvintele cheie DEFAULT CURRENT_TIMESTAMP și PE ACTUALIZARE CURRENT_TIMESTAMP.

Exemplu:

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. Diverse tipuri de date SQL

  • CLOB: CLOB înseamnă obiecte mari de caractere. Acestea pot reține date de caractere de până la 2 GB. Cu toate acestea, nu este acceptat de MySQL. MySQL folosește Text pentru a realiza același lucru.
  • BLOB: BLOB înseamnă obiecte mari binare. Sunt utilizate pentru stocarea obiectelor binare cu dimensiuni de până la 2 GB. De obicei, imaginile sunt convertite în obiecte binare și stocate în coloane BLOB.
  • XML: utilizat pentru stocarea datelor XML.
  • JSON: Se folosește pentru stocarea datelor JSON. Nu este acceptat de MySQL.

Concluzie - Tipuri de date SQL

Tipurile de date SQL ajută foarte mult la optimizarea strategică a spațiului bazei de date. Într-o lume digitală, în care datele sunt în continuă creștere într-un ritm exponențial, un dezvoltator trebuie să aleagă cu atenție tipul pentru fiecare bit de date. Aceasta contribuie la reducerea costurilor datorate stocării masive de date.

Articole recomandate

Acesta este un ghid pentru tipurile de date SQL. Aici discutăm Introducere, Tipuri de date SQL, Caracter / String, Caracter Unicode / String și Numeric. Puteți parcurge și alte articole sugerate pentru a afla mai multe -

  1. Tipuri de date PostgreSQL
  2. Tipuri de OLAP
  3. Tipuri de malware
  4. SQL WHERE Clauza
  5. Cuvinte cheie PHP
  6. Cuvinte cheie C ++
  7. Top 3 tipuri de date PHP cu exemple
  8. Exemple de implementare a declarației INSERT