Tipul de date logice Ms sql. Limbajul SQL Tipuri de date SQL Tipuri de date

Pentru fiecare coloană, pe lângă numele unic al coloanei din tabel, este necesar să se determine și tipul de date. Atribuirea unui tip de date fiecărei coloane este unul dintre primii pași luați la proiectarea unui tabel. Tipurile de date definesc valorile valide ale datelor pentru fiecare coloană.

2.3.1 Tipurile char și varchar.

Sunt tipuri de date de caractere de lungime fixă ​​sau variabilă.

char[(n)] este date de caractere non-Unicode cu lungime fixă, cu o lungime de n octeți. Valoarea lui n trebuie să fie între 1 și 8000. Dimensiunea de stocare a acestui tip de date este de n octeți. Sinonimul ISO pentru char este caracter.

varchar [ (n | max) ] - date de caractere cu lungime variabilă, nu în Unicode; n poate avea o valoare de la 1 la 8.000; max înseamnă că dimensiunea maximă de stocare este de 2^31-1 octeți. Dimensiunea de stocare este egală cu lungimea reală a datelor plus doi octeți. Datele introduse pot avea 0 caractere. Sinonimele ISO pentru tipul varchar variază caracterul sau caracterul variază.

Datele char sau varchar pot fi un singur caracter sau un șir cu o lungime maximă de 8000 de caractere pentru datele char și până la 2^31 de caractere pentru datele varchar.

Tipurile de date varchar pot lua două forme. datele varchar pot avea o lungime maximă specificată în caractere, de exemplu varchar(6) indică faptul că tipul de date poate stoca maximum șase caractere sau poate fi varchar(max), ceea ce mărește numărul maxim de caractere care poate fi stocate în datele de tip, până la 2^31.

Constantele de caractere trebuie incluse între ghilimele simple (") sau ghilimele duble ("). Se recomandă includerea constantelor de caractere între ghilimele simple. Includerea constantelor de caractere între ghilimele duble nu este uneori permisă când IDENTIFICATORUL CITATE este setat la ON.

Acest exemplu de cod Transact-SQL atribuie o valoare unei variabile caracter:

DECLARE @MyCharVar CHAR(25)

SET @MyCharVar = "Ricardo Adoicados"

Dacă utilizați ghilimele simple pentru a delimita o constantă de caractere care conține ghilimele simple imbricate, utilizați două ghilimele simple pentru a reprezenta ghilimelele simple imbricate.

De exemplu:

SET @MyCharVar = "O""Leary"

Dacă datele de stocat sunt mai lungi decât numărul permis de caractere, acestea sunt trunchiate. De exemplu, dacă o coloană este definită ca char(10) și stochează valoarea „Acesta este un șir de caractere foarte, foarte lung”, atunci SQL Server trunchiază șirul de caractere la „Acesta este un șir valid”.

Tipul de date char devine un tip de date cu lungime fixă ​​dacă este specificată clauza NOT NULL. Dacă o valoare mai scurtă decât lungimea coloanei este inserată într-o coloană char cu o clauză NOT NULL, acea valoare este completată în dreapta cu spații la dimensiunea coloanei. De exemplu, dacă o coloană este definită ca char(10) și valoarea „muzică” urmează să fie stocată în ea, SQL Server stochează datele ca „muzică____”, unde „_” reprezintă un spațiu.

2.3.2 Tipuri de date nchar și nvarchar.

Acestea sunt tipuri de date de caractere cu lungime constantă (nchar) sau cu lungime variabilă (nvarchar) care conțin date Unicode și utilizează setul de caractere UCS-2.

nchar [(n)] - Date de caractere Unicode de n caractere. n trebuie să fie o valoare între 1 și 4000. Dimensiunea de stocare este de două ori n octeți. Sinonimele ISO pentru tipul nchar sunt caracter național și caracter național.

nvarchar [ (n | max) ] - Date de caractere Unicode cu lungime variabilă. n poate fi o valoare de la 1 la 4.000 max specifică faptul că dimensiunea maximă de stocare este de 2^31-1 (2.147.483.647) octeți. Dimensiunea de stocare în octeți este de două ori numărul de caractere introduse + 2 octeți. Datele introduse pot avea 0 caractere. Sinonimele ISO pentru tipul nvarchar variază caracterul național și caracterul național variază.

DEFINIREA STRUCTURII DATELOR

Întrebări:

1. Tipuri de date SQL definite de standard... 1

2. Tipuri de date utilizate în serverul SQL. 3

3. Expresii și variabile. 5

4. Construcții de control SQL... 6

5. Obiecte de bază ale structurii bazei de date SQL server. 7

Tipuri de date SQL definite de standard

Date este informații agregate stocate într-o bază de date ca unul dintre mai multe tipuri diferite. Tipurile de date definesc regulile de bază pentru datele conținute într-o anumită coloană a tabelului, inclusiv cantitatea de memorie alocată pentru aceasta.

SQL are șase tipuri de date scalare definite de standard. Scurta lor descriere este prezentată în tabel.

Date de caractere

Datele de caractere constau dintr-o secvență de caractere incluse într-un set de caractere definit de creatorii SGBD. Deoarece seturile de caractere sunt specifice diferitelor dialecte ale limbajului SQL, lista de caractere care pot fi incluse în valorile datelor de caractere este, de asemenea, specifică implementării. Cele mai utilizate seturi de caractere sunt ASCII și EBCDIC. Următorul format este utilizat pentru a defini datele de caractere:

<символьный_тип>::=

( CARACTER [ VARIABIL][lungime] | [lungime])

La definirea unei coloane cu un tip de date caracter, parametrul lungime este utilizat pentru a specifica numărul maxim de caractere care pot fi plasate în coloană (prestabilit este 1). Un șir de caractere poate fi definit ca având o lungime fixă ​​sau VARIABILĂ. Dacă un șir este definit cu o lungime fixă ​​de valori, atunci când sunt introduse mai puține caractere în el, valoarea este completată la lungimea specificată cu spații adăugate în dreapta. Dacă un șir este definit cu o valoare de lungime variabilă, atunci dacă introduceți mai puține caractere în el, doar caracterele introduse vor fi stocate în baza de date, ceea ce vă va permite să realizați unele economii în memoria externă.

Biți de date

Tip de bit datele sunt folosite pentru a defini șiruri de biți, de exemplu secvențe de cifre binare (biți), fiecare dintre acestea putând avea valoarea fie 0, fie 1. Datele tip biți sunt definite folosind următorul format:

<битовый_тип>::=

BIT [lungime]

Numerele exacte

Tip de date numerice exacte folosit pentru determinarea numerelor care au o reprezentare exactă, de ex. numerele constau din cifre, un punct zecimal opțional și un caracter semn opțional. Datele exacte de tip numeric sunt determinate de precizia și lungimea părții fracționale. Precizia specifică numărul total de cifre zecimale semnificative ale unui număr, care include lungimea atât a părților întregi, cât și a părților fracționale, dar excluzând punctul zecimal în sine. Scara specifică numărul de zecimale fracționale ale unui număr.

<фиксированный_тип>::=

(NUMERIC[precizie[,scale]]|(DECIMAL|DEC)

[precizie[, scară]]

| (INTEGER |INT)| SMALLINT)

Tipuri NUMERICȘi ZECIMAL sunt concepute pentru a stoca numere în format zecimal. În mod implicit, lungimea părții fracționale este zero, iar precizia implicită depinde de implementare. Tipul INTEGER (INT) este folosit pentru a stoca numere întregi mari pozitive sau negative. Tip SMALLINT – pentru stocarea numerelor întregi mici pozitive sau negative; în acest caz, consumul de memorie externă este redus semnificativ.

Numere rotunjite

Tip de numere rotunjite folosit pentru a descrie date care nu pot fi reprezentate cu acuratețe de un computer, în special numere reale. Numerele rotunjite sau cu virgulă mobilă sunt reprezentate în notație științifică, în care numărul este scris folosind mantisa înmulțită cu o anumită putere a zece (exponent), de exemplu: 10E3, +5.2E6, -0.2E-4. Pentru a defini date de tip real, se utilizează următorul format:

<вещественный_тип>::=

( FLOAT [precizie] | REAL |

PRECIZIE DUBLA)

Parametru precizie specifică numărul de cifre semnificative ale mantisei. Precizia tipurilor REAL și DOUBLE PRECISION depinde de implementare.

data si ora

Tip de date Data/Ora folosit pentru a determina momente în timp cu o anumită precizie specificată. Standardul SQL acceptă următorul format:

<тип_даты/времени>::=

(DATA | ORA[precizie]|

TIMESTAMP[precizie])

Tipul de date DATE este utilizat pentru a stoca date calendaristice care includ câmpuri YEAR, MONTH și DAY. Tipul de date TIME este pentru stocarea marcajelor de timp, inclusiv câmpurile HOUR (ore), MINUTE (minute) și SECOND (secunde). Tip de date TIMESTAMP – pentru stocarea împreună a datei și a orei. Parametrul de precizie specifică numărul de zecimale fracționale care determină precizia stocării valorii în câmpul SECOND. Dacă acest parametru este omis, este implicit zero pentru coloanele TIME (adică sunt stocate secunde întregi), în timp ce pentru câmpurile TIMESTAMP este implicit 6. Prezența cuvântului cheie WITH TIME ZONE determină utilizarea câmpurilor TIMEZONE HOUR și TIMEZONE MINUT, setând astfel ora și minutele decalării orare zonale în raport cu Timpul Coordonat Universal (Ora Greenwich).

Datele INTERVAL sunt folosite pentru a reprezenta perioade de timp.

Conceptul de domeniu

Domeniu este un set de valori valide pentru unul sau mai multe atribute. Dacă un tabel de bază de date sau mai multe tabele au coloane care au aceleași caracteristici, puteți descrie tipul și comportamentul coloanei în termeni de domeniu și apoi atribuiți fiecărei coloane un nume de domeniu. Domeniul definește toate valorile potențiale care pot fi atribuite unui atribut.

Standardul SQL vă permite să definiți un domeniu folosind următoarea instrucțiune:

<определение_домена>::=

CREATE DOMAIN nume_domeniu

tip_date

[Valoare implicită]

[VERIFICAȚI (valid_values)]

Fiecărui domeniu care este creat i se atribuie un nume, un tip de date, o valoare implicită și un set de valori permise. Trebuie remarcat faptul că formatul de declarație dat este incomplet. Acum, când creați un tabel, puteți specifica un nume de domeniu în loc de un tip de date.

Eliminarea domeniilor din baza de date se face folosind instrucțiunea:

DROP DOMAIN nume_domeniu [ RESTRICT |

Dacă specificați cuvântul cheie CASCADE, orice coloană de tabel creată folosind domeniul care este șters va fi modificată automat pentru a conține date de tipul care a fost specificat în definiția domeniului care este șters.

O alternativă la domeniile într-un mediu SQL Server sunt tipurile de date ale utilizatorului.

Tipuri de date utilizate în serverul SQL

Tipuri de date de sistem

Unul dintre punctele principale ale procesului de creare a tabelului este determinarea tipurilor de date pentru câmpurile sale. Tipul de date al unui câmp de tabel determină tipul de informații care vor fi plasate în acel câmp. Conceptul de tip de date în SQL Server este pe deplin adecvat conceptului de tip de date în limbajele de programare moderne. Serverul SQL acceptă un număr mare de tipuri de date diferite: text, numerice, binare (vezi tabelul).

Iată o prezentare rapidă a tipurilor de date SQL Server.

Pentru a stoca informații simbolice sunt folosite tipuri de date de caractere, care includ CHAR (lungime), VARCHAR (lungime), NCHAR (lungime), NVARCHAR (lungime). Ultimele două sunt pentru stocarea caracterelor Unicode. Lungimea maximă este limitată la 8000 de caractere (4000 pentru caractere Unicode).

Stocarea datelor cu caractere mari (până la 2 GB) se realizează utilizând tipurile de date text TEXT și NTEXT.

LA tipuri de date întregi includ INT (INTEGER), SMALLINT, TINYINT, BIGINT. Pentru a stoca date întregi, sunt 4 octeți (interval de la -231 la 231-1), 2 octeți (interval de la -215 la 215-1), 1 octet (interval de la 0 la 255) sau 8 octeți (interval de la -263) folosit, respectiv la 263-1). Obiectele și expresiile de tip întreg pot fi folosite în orice operație matematică.

Numerele care conțin un punct zecimal se numesc numere non-întregi. Date non-întregi sunt împărțite în două tipuri - zecimalȘi aproximativ.

LA zecimal Tipurile de date includ DECIMAL [(precizie[,scale])] sau DEC și NUMERIC [(precizie[,scale])]. Tipurile de date DECIMAL și NUMERIC vă permit să definiți în mod independent formatul de precizie al unui număr în virgulă mobilă. Parametrul de precizie specifică numărul maxim de cifre ale datelor de intrare de acest tip (înainte și după virgulă zecimală în total), iar parametrul de scară specifică numărul maxim de cifre situate după virgulă zecimală. În modul normal, serverul vă permite să introduceți maximum 28 de cifre, utilizate în tipurile DECIMAL și NUMERIC (de la 2 la 17 octeți).

LA aproximativ Tipurile de date includ FLOAT (precizie de până la 15 cifre, 8 octeți) și REAL (precizie de până la 7 cifre, 4 octeți). Aceste tipuri reprezintă date în format virgulă mobilă, de exemplu. o mantisă și un exponent sunt folosite pentru a reprezenta numere, asigurând aceeași precizie în calcule indiferent cât de mică sau mare este valoarea.

Pentru a stoca informații despre data si ora Sunt destinate tipuri de date precum DATETIME și SMALLDATETIME, care utilizează 8 și 4 octeți pentru a reprezenta data și, respectiv, ora.

Tipuri de date MONEY și SMALLMONEY face posibilă stocarea informațiilor de tip monetar; ele oferă precizie valorii cu 4 zecimale și folosesc 8 și, respectiv, 4 octeți.

tip de date BIT vă permite să stocați un bit care poate lua valorile 0 sau 1.

Mediul SQL Server implementează o serie de tipuri de date speciale.

Tip de date TIMESTAMP-UL utilizat ca indicator al unei modificări a versiunii de rând într-o bază de date.

Tip de date IDENTIFICATOR UNIC folosit pentru a stoca numere de identificare unice la nivel global.

Tip de date SYSNAME destinate identificatorilor de obiecte.

Tip de date SQL_VARIANT vă permite să stocați valori pentru oricare dintre tipurile de date acceptate de SQL Server, cu excepția TEXT, NTEXT, IMAGE și TIMESTAMP.

Tip de date MASA, ca și tabelele temporare, oferă stocarea unui set de rânduri destinate procesării ulterioare. Tipul de date TABLE poate fi utilizat numai pentru a defini variabilele locale și valorile returnate ale funcției utilizator.

Tip de date CURSOR necesare pentru lucrul cu obiecte cum ar fi cursoarele și pot fi utilizate numai pentru variabile și parametri ai procedurilor stocate. Cursoarele SQL Server sunt un mecanism pentru schimbul de date între un server și un client. Un cursor permite aplicațiilor client să lucreze nu cu un set complet de date, ci doar cu unul sau câteva rânduri.


©2015-2019 site
Toate drepturile aparțin autorilor lor. Acest site nu pretinde autor, dar oferă o utilizare gratuită.
Data creării paginii: 2016-08-08

În această publicație ne vom uita la tipuri de date în SQL. Aș dori să vă atrag atenția asupra faptului că diferite SGBD-uri suportă seturi diferite de tipuri de date, așa că această publicație include cele mai comune tipuri de date în implementările SQL ale diferitelor SGBD.

Este important de știut că pentru a proiecta bazele de date corect și competent, tipul de date corect selectat în SQL poate facilita foarte mult munca altor dezvoltatori. Prin urmare, nu vă sfătuiesc să săriți peste secțiunea despre tipurile de date și întotdeauna, atunci când vă familiarizați cu unul nou, să acordați atenție tipurilor de date pe care programul le acceptă și modului în care procesează aceste tipuri de date.

Să ne uităm la tipurile de date care există în limbajul SQL. Fiecare coloană de tabel (atribut) trebuie să aibă un tip de date pentru valorile care sunt stocate în coloană. Tipul de date pentru o coloană este determinat atunci când tabelul este creat sau, mai bine, atunci când este determinat în timpul .

Limbajul SQL împarte datele în cinci tipuri:

  1. Tipul de date SQL întreg.
  2. Tip de date reale SQL.
  3. Tipuri de date SQL date și oră.
  4. Tip de date șir SQL.
  5. Tip de date șir de caractere SQL Unicode.

Să vedem ce include fiecare Tipuri de date SQLși ce valori ne permit să păstrăm.

Tip de date întregSQL

Tipul de date întreg în SQL destul de larg și depinde de implementarea DBMS, mai jos în tabele sunt doar câteva exemple tipice ale tipului de date SQL întreg.

tip de date SQL din inainte de
bigint -9,223,372,036,854,775,808 9,223,372,036,854,775,807
int -2,147,483,648 2,147,483,647
smallint -32,768 32,767
tinyint 0 255
pic 0 1
zecimal -10^38 +1 10^38 -1
numeric -10^38 +1 10^38 -1
bani -922,337,203,685,477.5808 +922,337,203,685,477.5807
bani mici -214,748.3648 +214,748.3647

Încă o dată repet că mulţimea numerelor întregi tipuri de date în SQL depinde în întregime de SGBD.

Tip de date realeSQL

Tip de date reale SQL, ca și tipul de date întreg, depinde în întregime de implementarea DBMS.

Tip de date șirSQL

Pot exista mai multe tipuri de date șir în SQL, consultați specificația DBMS pentru a afla ce tip de date poate fi utilizat pentru valorile șir.

tip de date SQL Descriere
char Lungimea maximă este de 8000 de caractere (toate valorile din coloană au o dimensiune fixă ​​specificată atunci când coloana este declarată). Vă rugăm să rețineți: unitate de măsură Tipul de date SQL char- simbol.
varchar Lungimea maximă este de 8000 de caractere (toate valorile din coloană au o dimensiune diferită în funcție de numărul de caractere, dar nu mai mult decât dimensiunea specificată atunci când coloana a fost declarată). Vă rugăm să rețineți: unitate de măsură Tipul de date SQL varchar- simbol.
varchar(max) Tip de date SQL varchar(max)- simbol.
text Lungime maximă 2.147.483.647 caractere. Vă rugăm să rețineți: unitate de măsură Tipul de date SQL text- simbol.

Tip de date șir de caractere SQL Unicode

Da, unele SGBD-uri alocă un tip de date șir în codificare Unicode, deoarece în șirurile codificate Unicode sunt cheltuiți cel puțin 8 octeți pentru scrierea unui caracter, motiv pentru care alocam tip de date șir în SQL cu codificare Unicode.

tip de date SQL Descriere
nchar Lungimea maximă este de 4000 de caractere (toate valorile din coloană au o dimensiune fixă ​​specificată atunci când coloana este declarată). Vă rugăm să rețineți: unitate de măsură Tipul de date SQL nchar- simbol.
nvarchar Lungimea maximă este de 4000 de caractere (toate valorile din coloană au o dimensiune diferită în funcție de numărul de caractere, dar nu mai mult decât dimensiunea specificată atunci când coloana a fost declarată). Vă rugăm să rețineți: unitate de măsură Tipul de date SQL nvarchar- simbol.
nvarchar(max) Lungime maximă 231 de caractere. Vă rugăm să rețineți: unitate de măsură Tip de date SQL nvarchar(max)- simbol.
ntext Lungime maximă 1.073.741.823 caractere. Lungime variabila. Vă rugăm să rețineți: unitate de măsură Tipul de date SQL ntext- simbol.

Tip de date binare înSQL

Tip de date binare în SQL folosit pentru a stoca informații în formă binară (ca o secvență de octeți).

tip de date SQL Descriere
binar Lungimea maximă este de 8.000 de octeți (toate valorile din coloană au o dimensiune fixă ​​specificată atunci când coloana este declarată). Vă rugăm să rețineți: unitățile tipului de date binare sunt octeți.
varbinar Lungimea maximă este de 8.000 de octeți (toate valorile din coloană au o dimensiune diferită în funcție de numărul de caractere, dar nu mai mult decât dimensiunea specificată atunci când coloana a fost declarată). Vă rugăm să rețineți că unitățile tipului de date varbinary sunt octeți.
varbinary(max) Lungime maximă 231 de octeți. Rețineți că unitățile tipului de date varbinary (max) sunt octeți.
imagine Lungimea maximă este de 2.147.483.647 de octeți (toate valorile din coloană au o dimensiune diferită în funcție de numărul de caractere, dar nu mai mult decât dimensiunea specificată atunci când coloana a fost declarată). Vă rugăm să rețineți: unitățile tipului de date imagine sunt octeți.

Aș dori să vă atrag atenția asupra faptului că fiecare SGBD acceptă propriul set de tipuri și dimensiuni de date, ne-am uitat la tipurile de date de bază ale limbajului SQL, în subiectul următor ne vom uita la tipurile de date pe care le suportă SQLite3.

Tipuri de date semnate și nesemnate în SQL

Aș dori să vă atrag atenția asupra faptului că, în unele SGBD, tipurile de date numerice pot fi împărțite în tipuri de date semnate și nesemnate. Și acestea sunt tipuri complet diferite de date.

De exemplu, dacă stocați id INTEGER UNSIGNED într-un tabel și id_table1 INTEGER SIGNED în altul, atunci nu veți putea implementa aceste două coloane, deoarece au tipuri de date diferite. Fiți atenți și citiți întotdeauna descrierile tipurilor de date când începeți să utilizați un nou SGBD.

Să dăm un exemplu de aplicare practică a tipurilor de date SIGNED și UNSIGNED. De exemplu, MySQL are tipul de date TINYINT, care ocupă un octet și este excelent pentru stocarea vechimii, astfel încât o coloană TINYINT poate stoca numere întregi de la 0 la 256 (de la două până la a opta putere, un octet are 8 biți și un bit poate ia două valori: zero sau unu), dacă coloana este fără semn, dacă coloana este semnată, atunci pot fi scrise în ea numere de la -128 la 127 (un bit va merge pe semn).

În lumea modernă, există un număr mare de instrumente și tehnologii concepute pentru stocarea informațiilor. Una dintre cele mai comune metode sunt bazele de date, pentru lucru cu care se folosesc diverse sisteme de management. Această metodă de stocare presupune că toate datele sunt clar structurate și introduse în tabele speciale. Ele, la rândul lor, constau din coloane de atribute ale unui anumit tip de date.

Tipul de date - ce este?

Astăzi, există mai multe definiții care explică conceptul termenului „tip de date”. Cu toate acestea, fiecare dintre ele are o semnificație generală. Prin urmare, poate fi definit convențional ca un grup de date caracterizat prin valorile sale (simbolice, numerice etc.), precum și prin operațiunile aplicate valorilor în cauză.

Domeniul de aplicare al tipurilor de date are mai multe fațete. Ele sunt folosite nu numai pentru stocarea informațiilor, ci și în programare pentru a rezolva diverse probleme. Când proiectați programe, este o practică obișnuită să dezvoltați și să utilizați propriile tipuri de date cu un set specific de operațiuni. Cu toate acestea, cele personalizate se bazează întotdeauna pe tipuri de date de bază. Standardul SQL se bazează și pe utilizarea celor mai comune tipuri de bază, dar cu o serie de completări specifice.

Clasificarea tipurilor de date

Gruparea datelor după tip a apărut cu mult timp în urmă și a fost cauzată de necesitatea unei procesări mai convenabile. În prezent, baza tipurilor de date existente este formată din două: caracter și numeric.

Pe baza acestora, a fost elaborată o clasificare modernă, incluzând pointeri, tipuri de date logice, întregi, virgulă mobilă și șir. SQL - clasificarea acoperă în totalitate toate cele de mai sus. Cu toate acestea, pentru unele SGBD-uri moderne există suplimente suplimentare. Acestea includ Oracle și MySQL.

Tipuri de date de bază

Cele utilizate pentru a crea atribute de tabel care îndeplinesc standardele de limbă sunt împărțite în 4 clase:

  • valorile șirului de caractere;
  • fracții;
  • valori întregi;
  • valorile datei și orei.

Tip de date șir

Primul grup de valori vă permite să stocați orice date reprezentate ca caractere.

Acestea pot fi caractere speciale, numere și litere, care împreună vor fi procesate ca șiruri de caractere în orice tip de date, lista de tabel care este prezentată mai jos, formând primul grup.

Folosit pentru a stoca șiruri. Parametrul dintre paranteze vă permite să fixați lungimea șirului stocat. Dimensiunea maximă în octeți care poate fi specificată pentru un șir este 255.

Similar cu tipul anterior, vă permite să stocați șiruri de până la 255 de caractere. Totuși, diferența față de CHAR este că cantitatea necesară de memorie este alocată pentru a stoca o valoare de acest tip. Adică, un șir format din 5 caractere va necesita 6 octeți de memorie. În primul caz, memoria pentru valoare va fi alocată conform parametrului specificat.

Folosit pentru a stoca date șiruri de până la 255 de caractere.

Folosit pentru a stoca informații text a căror dimensiune nu depășește 65.535 de litere.

Tipul de date luat în considerare este similar cu tipul TEXT și vă permite să stocați informații text în baza de date, al căror volum poate ajunge la 65.535 de caractere. Dar, în practică, este folosit pentru a stoca date de sunet, desene, documentație electronică etc.

A fost dezvoltat pe baza tipului TEXT, dar vă permite să stocați mai multe date datorită dimensiunii sale crescute până la 16.777.215 de litere sau simboluri.

Folosit pentru salvarea documentelor electronice în baza de date, a căror dimensiune nu depășește 16.777.215 caractere.

Funcțional similar cu tipurile anterioare, dar cu o capacitate de memorie crescută de până la 4 gigaocteți.

Vă permite să plasați cantități mari de date în baza de date (4.294.967.295 caractere).

ENUM (a, b, c etc.)

Un tip de date special utilizat pentru a specifica o listă de valori posibile. Vă permite să specificați 65535 de valori. Șirurile de caractere de tipul în cauză pot lua o singură valoare din cele specificate în set. În cazul în care se adaugă valori care nu sunt prezente în lista dată, valorile goale vor fi scrise în tabel.

Specifică un set de valori valide. Spre deosebire de tipul anterior, este folosit pentru a conține 64 de parametri care pot fi inițializați de oricare sau mai multe elemente din argumentele date.

Tabel cu tipuri de date fracționate

Tipurile de date SQL fracționate sunt folosite pentru a stoca numere în virgulă mobilă. În practică, de regulă, sunt stabiliți diverși indicatori financiari. În funcție de acuratețea necesară, se utilizează una dintre cele trei prezentate:

De exemplu, în calculele bancare, precizia părții fracționale ajunge la 8 sau 10 cifre. Primele două tipuri nu pot fi utilizate în acest domeniu.

Stocarea indicatorilor financiari sub formă de șiruri simplifică foarte mult rezolvarea multor probleme. Cu toate acestea, atunci când se confruntă cu probleme financiare sau se efectuează diverse operațiuni SQL, conversia tipului de date este de mare importanță. Dezvoltatorii trebuie să fie siguri că au în vedere tipul de stocare și metodele de procesare pentru a se asigura că datele rămân întotdeauna neschimbate.

Tip de date întreg

Numerele întregi sunt un grup separat de numere care formează una dintre clasele principale. Tipurile de date SQL întregi se bazează pe utilizarea unuia de bază cu o anumită extensie a proprietăților sale.

Alegând tipul potrivit de date, puteți economisi memorie semnificativă și puteți reduce timpul petrecut pe server rulând interogările SQL necesare. Tipurile de date, sau mai degrabă gama lor, determină cantitatea de spațiu de stocare necesară.

Prin urmare, este important ca dezvoltatorii să rețină că utilizarea unor intervale mari de atribute implică costuri crescute de memorie. Este necesar să se analizeze clar problemele care se rezolvă și să se identifice cazurile în care se cunoaște intervalul aproximativ și este definită condiția de utilizare a numerelor cu semne. Dacă gama de argumente utilizate este mică și toate numerele sunt pozitive, atunci ar fi mai corect să se folosească tipul nesemnat format din atributul UNSIGNED.

Tipuri de date pentru dată și oră

Când învățați elementele de bază ale SQL, tipurile de date de dată și oră sunt de interes deosebit.

Utilizarea următoarelor tipuri oferă beneficii suplimentare atunci când se dezvoltă sisteme care depind de sincronizare.

Scopul principal este stocarea datei în formatul AN-LUNA-ZI (“AAAA-LL-ZZ” sau “uuuu-mm-zz”). De obicei, valorile sunt separate prin „-”, dar orice caracter, cu excepția numerelor, poate fi folosit ca separator.

Vă permite să introduceți valori temporare într-o celulă de tabel. Toate valorile sunt specificate în formatul „hh:mm:ss”

Combină funcțiile celor două tipuri anterioare. Formatul de stocare este prezentat astfel: „uuuu-mm-dd hh:mm:ss”.

Stochează data și ora, calculate după numărul de secunde care au trecut de la miezul nopții de 1 ianuarie 1970, până la valoarea specificată.

Folosit pentru a stoca valori anuale în format de două sau patru cifre.

Ce altceva trebuie să știi?

Toate aceste tipuri de date sunt sistematizate în detaliu de către Microsoft. Ea a dezvoltat tipuri de date SQL mai detaliat.

De exemplu, compania descrie în detaliu câtă memorie în octeți este alocată la utilizarea fiecărui tip. După ce au studiat informațiile disponibile, dezvoltatorilor le este mai ușor să proiecteze structura tabelelor și întreaga bază de date pe baza capacităților hardware ale serverului.

Indicator special - NULL

Uneori, la popularea unei baze de date, apare o situație când, la adăugarea unei înregistrări la un tabel, nu este nevoie să introduceți informații în toate coloanele. Pentru aceasta, se folosește un indicator de valoare gol special - NUL, care folosește limbajul SQL ca ajutor. Când sunt create tabelele, tipurile de date ale coloanelor care nu trebuie completate sunt specificate cu o instrucțiune care permite includerea valorilor nule. În alt caz, operatorul NUL cu atașament suplimentar NU poate fi folosit pentru a indica faptul că toate valorile trebuie completate.

Indicator NUL nu are niciun tip, ci pur și simplu indică o valoare goală în tabelele bazei de date. Prin urmare, poate fi combinat cu oricare dintre tipurile de mai sus.

Mai întâi, să ne uităm la ce sunt „tipurile de date”.
Tipurile de date determină ce valori pot fi stocate într-o coloană și cât spațiu vor ocupa în memorie. Când creați un tabel, trebuie să specificați un anumit tip de date pentru toate coloanele acestuia.
Principalele tipuri utilizate în SQL pot fi împărțite în mai multe categorii:

  • Tipuri întregi;
  • Tipuri fracționale;
  • Tipuri de caractere;
  • tipuri de bani;
  • Tipuri temporale (data/ora);

Tipuri de date întregi

Tipuri de date fracționate

Tip de date caracter

Tip de dateDescriere
CHAR(dimensiune)Folosit pentru a stoca șiruri. Parametrul dintre paranteze vă permite să fixați lungimea șirului stocat. Dimensiunea maximă în octeți care poate fi specificată pentru un șir este 255.
VARCHAR (dimensiune)Similar cu tipul anterior, vă permite să stocați șiruri de până la 255 de caractere. Totuși, diferența față de CHAR este că cantitatea necesară de memorie este alocată pentru a stoca o valoare de acest tip. Adică, un șir format din 5 caractere va necesita 6 octeți de memorie. În primul caz, memoria pentru valoare va fi alocată conform parametrului specificat.
NCHAR(dimensiune)Date șiruri de lungime constantă Unicode. n specifică lungimea șirului și trebuie să fie o valoare între 1 și 4000. Mărimea stocării este de două ori mai mare decât valoarea mărimii în octeți. Se recomandă utilizarea nchar dacă se așteaptă ca dimensiunile elementelor de date din coloane să fie similare.
NVARCHAR
(dimensiune | max)
Date de șir de lungime variabilă în Unicode. Dimensiune specifică lungimea șirului și poate avea o valoare de la 1 la 4000. Valoarea maximă indică faptul că dimensiunea maximă de stocare este de 2^31-1 caractere (2 GB). Se recomandă utilizarea nvarchar dacă se așteaptă ca dimensiunile elementelor de date din coloane să fie diferite.
TEXTDate non-Unicode cu lungime variabilă în pagina de coduri a serverului și cu o lungime maximă de linie de 2^31-1 (2.147.483.647).
NTEXTDate codificate Unicode cu lungime variabilă, cu o lungime maximă a liniei de 2^30 - 1 (1.073.741.823) octeți.

Tipul de date valutar

Tipuri de timp (data/ora)

Tip de dateDescriere
DATAScopul principal este stocarea datei în formatul AN-LUNA-ZI (“AAAA-LL-ZZ” sau “uuuu-mm-zz”).
TIMPVă permite să introduceți valori temporare într-o celulă de tabel. Toate valorile sunt specificate în formatul „hh:mm:ss”.
DATETIMECombină funcțiile celor două tipuri anterioare. Formatul de stocare este prezentat astfel: „uuuu-mm-dd hh:mm:ss”.
TIMESTAMP-ULStochează data și ora, calculate după numărul de secunde care au trecut de la miezul nopții de 1 ianuarie 1970, până la valoarea specificată.

Exemple de utilizare a tipurilor de date

Să ne uităm la un exemplu de utilizare a tipurilor de date în SQL.

Un exemplu de utilizare a tipurilor de date

MySQL

CREATE TABLE Verificări(id INT NOT NULL, Name VARCHAR (50) NOT NULL, DataToDay DATE NOT NULL, Cost FLOAT NOT NULL);

id este un contor (stochează numărul individual de cec), prin urmare aparține tipului de date întreg, așa că îl facem INT sau ÎNTREG. NU NUL indică faptul că variabila nu poate fi goală.
ÎN Nume Vom stoca numele produsului. Deoarece coloana va stoca caracterele pe care le folosim VARCHAR. După ce am specificat tipul, alocam memorie pentru nume (în cazul nostru este (50) ).
Următoarele coloane din tabel sunt create într-un mod similar.