Tipuri de tabele SQL. Tipuri de date SQL Server. Tipuri de date pentru dată și oră

Tipul de date determină ce valoare poate conține coloana: date întregi, date caractere, date valutare, date și oră, date șir binar etc.

Tipuri de date SQL

Fiecare coloană dintr-un tabel al bazei de date trebuie să aibă un nume și un tip de date.

Dezvoltatorul SQL trebuie să decidă ce tip de date vor fi stocate în fiecare coloană atunci când creează tabelul. Tipul de date este un ghid pentru SQL pentru a înțelege ce tip de date este așteptat în fiecare coloană și, de asemenea, determină modul în care SQL va interacționa cu datele stocate.

Lista tipurilor de date MySQL

Există trei tipuri principale de date în MySQL: text, număr și dată.

Tipuri de date text

Tip Descriere
CHAR(dimensiune) Conține un șir de lungime fixă ​​(poate conține litere, cifre și Simboluri speciale). Mărimea fixă ​​este indicată în paranteze. Poate stoca până la 255 de caractere
VARCHAR(dimensiune) Conține un șir de lungime variabilă (poate conține litere, cifre și caractere speciale). Mărimea maximă este indicată în paranteze. Poate stoca până la 255 de caractere. Dacă puneți o valoare mai mare de 255, aceasta va fi convertită în tipul TEXT
TINYTEXT Conține un șir de maximum 255 de caractere
TEXT Conține un șir cu o lungime maximă de 65535 caractere
BLOB Pentru BLOB-uri (Obiecte mari binare). Stochează până la 65535 octeți de date
TEXT MEDIU Conține un șir cu o lungime maximă de 16.777.215 caractere
MEDIUMBLOB Pentru BLOB-uri (Obiecte mari binare). Deține până la 16.777.215 octeți de date
TEXT LUNG Conține un șir cu o lungime maximă de 4.294.967.295 de caractere
LONGBLOB Pentru BLOB-uri (Obiecte mari binare). Stochează până la 4.294.967.295 de octeți de date
ENUM(a,b,c,etc.)

Să introducem o listă valori posibile. Puteți enumera până la 65535 de valori într-o listă ENUM. Dacă se introduce o valoare care nu este în listă, se va adăuga o valoare goală.
Notă. Valorile sunt sortate în ordinea în care le introduceți.

Introduceți valori posibile în acest format: ENUM ("a", "b", "c")

A STABILIT Similar cu ENUM, cu excepția faptului că SET poate conține până la 64 de elemente de listă și poate stoca mai multe opțiuni

Tipuri de date numerice

Tip Descriere
TINYINT(dimensiune) -128 la 127. 0 la 255 NESEMNAT *. Numărul maxim de cifre poate fi specificat între paranteze
SMALLINT(dimensiune) -32768 până la 32767 este normal. 0 până la 65535 NESEMNAT*. Numărul maxim de cifre poate fi specificat între paranteze
MEDIUMINT(dimensiune) -8388608 până la 8388607 normal. 0 până la 16777215 NESEMNAT*. Numărul maxim de cifre poate fi specificat între paranteze
INT(dimensiune) -2147483648 până la 2147483647 normal. 0 până la 4294967295 NESEMNAT*. Numărul maxim de cifre poate fi specificat între paranteze
BIGINT(dimensiune) -9223372036854775808 la 9223372036854775807 normal. 0 la 18446744073709551615 NESEMNAT *. Numărul maxim de cifre poate fi specificat între paranteze
FLOAT(dimensiune,d) Un număr mic în virgulă mobilă. Numărul maxim de cifre poate fi specificat în parametrul dimensiune. Numărul maxim de cifre din dreapta punctului zecimal este specificat în parametrul d
DUBLĂ (dimensiune, d) Număr mare în virgulă mobilă. Numărul maxim de cifre poate fi specificat în parametrul dimensiune. Numărul maxim de cifre din dreapta punctului zecimal este specificat în parametrul d
DECIMAL(dimensiune,d) DOUBLE este stocat ca șir care permite un punct zecimal fix. Numărul maxim de cifre poate fi specificat în parametrul dimensiune. Numărul maxim de cifre din dreapta punctului zecimal este specificat în parametrul d

NESEMNAT - parametru suplimentar tipul întreg. De obicei, un număr întreg trece de la negativ la pozitiv. Adăugarea atributului UNSIGNED va muta acest interval în sus, astfel încât să înceapă de la zero în loc de un număr negativ.

Astăzi în lume există o cantitate mare tehnologii şi mijloace destinate stocării informaţiilor. Bazele de date sunt unul dintre cele mai comune instrumente. Pentru a lucra cu ele sunt folosite diverse sisteme management. Această metodă de stocare presupune că toate informațiile sunt clar structurate și introduse în tabele speciale. Tabelele, la rândul lor, constau din coloane de atribute ale unui anumit tip de informații.

Ce este un tip de date?

Astăzi, există mai multe definiții care explică esența conceptului de „tip de date”. Fiecare dintre ele are un sens general. În mod convențional, un tip de date poate fi definit ca un grup de date caracterizat prin valorile sale - numerice, simbolice și așa mai departe - precum și operațiuni care pot fi aplicate valorilor în cauză. Domeniul de utilizare tipuri variate datele sunt foarte multiple. Datele pot fi folosite nu numai pentru stocarea informațiilor, ci și pentru programare pentru a rezolva problemele date. Atunci când dezvoltați programe, practica de a utiliza propriile tipuri de date cu un set specific de operațiuni a devenit larg răspândită. Informațiile despre utilizator se bazează întotdeauna pe tipuri de date de bază. Standardul SQL se bazează pe utilizarea celor mai comune tipuri de informații, dar cu o serie de completări specifice.

Tipuri de date: clasificare

Gruparea datelor după tip există de mult timp. A fost cauzată de necesitatea de a structura toate volumele de informații pentru a asigura ușurința procesării. Astăzi, toate tipurile de date existente se bazează pe două tipuri de bază: caracter și numeric. Pe baza acestor date, a fost dezvoltat clasificare modernă, care include tipurile de informații pointer, întreg, boolean, virgulă mobilă și șir. Toate cele de mai sus sunt acoperite în totalitate de clasificarea SQL. Cu toate acestea pentru sisteme moderne există suplimente speciale pentru gestionarea bazelor de date. Acestea includ MySQL și Oracle.

Tipuri de date de bază

Tipurile de date care sunt utilizate pentru a crea atribute de tabel care îndeplinesc standardele limbajului SQL pot fi împărțite în 4 clase: valori de șir, fracții, valori întregi, valori de timp și date.

Tip de date șir

Primul tip de date vă permite să stocați orice informație prezentată sub formă de caractere. În acest caz vorbim despre caractere și litere speciale, care împreună vor fi procesate în oricare interogare SQL ca liniile. Mai jos sunt tipurile de date care formează primul grup:

- CHAR (dimensiune) - acest tip folosit pentru a stoca șiruri. Parametrul specificat între paranteze vă permite să fixați lungimea șirului stocat. Pentru un șir, puteți seta dimensiunea maximă în octeți la 255.

— VAR CHAR (dimensiune) — similar cu tipul anterior, acest tip vă permite să stocați șiruri de caractere a căror lungime nu depășește 255 de caractere. Principala diferență dintre acest tip și CHAR este că aici cantitatea necesară de memorie este alocată pentru a stoca o valoare de acest tip. Astfel, pentru un șir care constă din 5 caractere, vor fi necesari 6 octeți de memorie. În primul caz, memoria pentru stocarea valorii va fi alocată în conformitate cu parametrul specificat.

— TEXT MINUS - acest tip este folosit pentru a stoca informații text, al căror volum nu depășește 65535 caractere.

— BLOB – acest tip este similar cu tipul TEXT. Vă permite să salvați informații text în baza de date, al căror volum poate fi de până la 65.535 de caractere. Cu toate acestea, în practică, acest tip poate fi folosit pentru a stoca imagini, informații audio, documente electroniceși alte lucruri.

— TEXT MEDIU – acest tip a fost dezvoltat pe baza tipului TEXT. Datorită dimensiunii crescute la 16777215 caractere, acest tip vă permite să stocați mai multe date.

— MEDIU MBLOB – utilizat pentru stocarea documentelor electronice în baza de date, a căror dimensiune nu depășește 16777215 caractere.

- TEXT LUNG - de funcţionalitate similar cu tipurile de date anterioare, dar are o capacitate de memorie crescută la 4 GB.

— LONG BLOB – face posibilă plasarea datelor mari în baza de date - 4294967295 caractere.

- ENUM este un tip de date special care este folosit pentru a specifica o listă de valori diferite. Acest tip vă permite să specificați 65535 de valori. Șirurile de caractere de acest tip pot lua doar una dintre toate valorile specificate în set. Dacă sunt adăugate valori care nu sunt în lista dată, valorile goale vor fi scrise în tabel.

— SET – acest tip de date specifică un set valori acceptabile. Spre deosebire de tipul anterior, este folosit pentru a conține 64 de parametri care pot fi inițializați de mai multe elemente ale argumentelor date.

Tabel cu tipuri de date fracționale

Tip fracționar date SQL folosit pentru a stoca numere în virgulă mobilă. De regulă, în practică, datele de acest tip caracterizează diverși indicatori financiari. În funcție de precizia necesară, puteți utiliza unul dintre mai multe tipuri de mai jos.

FLOAT (dimensiune) – folosit pentru a stoca numere fracționale de precizie specificată – d;

— DOUBLE (dimensiune) – folosit pentru stocarea fracțiilor cu precizie binară;

— DECIMAL (dimensiune, d) – folosit pentru a stoca valori fracționale sub formă de șiruri. Este folosit în calculele bancare, unde precizia părții fracționale poate ajunge la 8 sau 10 cifre.

Primele două tipuri nu pot fi utilizate în acest domeniu. Stocarea indicatorilor financiari sub formă de șiruri poate facilita foarte mult rezolvarea multor probleme practice. În timpul operațiunilor și deciziilor probleme financiare Conversia tipului de date SQL este importantă. Dezvoltatorii ar trebui să ia în considerare cu siguranță tipul de stocare și metode de procesare a informațiilor, astfel încât datele să rămână neschimbate în orice moment.

Date întregi

Un grup separat de numere, care formează una dintre clasele principale, sunt numere întregi. Tipurile de date întregi se bazează pe tipul de bază INTEGER cu o anumită extensie de proprietate.

  • INT (dimensiune) – este responsabil pentru stocarea datelor întregi în intervalul [-231;231-1].
  • TINYINT (dimensiune) – folosit pentru a stoca numere în intervalul de la -128 la 127.
  • SMALLINT (dimensiune) – caracterizat printr-un interval ușor crescut de date stocate de la -32768 la 32767.
  • MEDIUMINT (dimensiune) – folosit pentru a stoca numere cu dimensiuni de la -223 la 223-1.
  • BIGINT (dimensiune) – acoperă intervalul de valori întregi de la -263 la 263-1.

Dacă alegeți tipul de date potrivit, puteți economisi în mod semnificativ memorie și, în același timp, puteți reduce costul timpului de server atunci când executați interogările SQL necesare. Tipurile de date și intervalul lor determină cantitatea de stocare necesară. Dezvoltatorii ar trebui să fie conștienți de faptul că utilizarea unor intervale mari de atribute poate genera costuri crescute de memorie. Ar trebui să analizați clar problemele rezolvate și să identificați situațiile în care se cunoaște intervalul aproximativ de date ș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ă un tip nesemnat, pentru care este destinat atributul UNSIGNED.

Tipuri de date de oră și dată

Tipurile de date de oră și dată sunt de mare interes atunci când studiezi Bazele SQL. Utilizarea următoarelor tipuri poate oferi beneficii suplimentare atunci când se dezvoltă sisteme care depind direct de sincronizare.

  • DATA – scopul principal al acestui tip este de a stoca data în formatul „an-lună-zi”. Valorile sunt de obicei separate prin „-”. Cu toate acestea, uneori orice simbol, cu excepția numerelor, poate fi folosit ca delimitator.
  • TIME – vă permite să introduceți valori de timp într-o celulă de tabel. Valorile sunt specificate în formatul „hh:mm:ss”.
  • DATĂ ORA – acest tip combină funcțiile celor două anterioare. Formatul de stocare a datelor în acest caz arată astfel: „aaaa-mm-zz: hh:mm:ss”.
  • TIME STAMP – acest tip stochează data și ora, calculate după numărul de secunde care au trecut de la miezul nopții 01/01/1970 până la valoarea specificată.
  • AN (M) – folosit pentru a stoca valori anuale în format de două sau patru cifre.

Ce altceva ar trebui să știi? Toate tipurile de date prezentate mai sus au fost sistematizate de Microsoft. Ea a dezvoltat, de asemenea, tipuri de date SQL mai detaliat. Deci, de exemplu, formularul descrie câtă memorie este alocată atunci când se utilizează fiecare tip de date. După ce au studiat toate informațiile disponibile, dezvoltatorilor ar trebui să devină mai ușor să proiecteze structura bazei de date și a tabelelor pe baza capacităților hardware ale serverului.

NULL - indicator special

În unele cazuri, 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 a face acest lucru, trebuie să utilizați un indicator special de destinație gol sau NULL. Folosește limbajul SQL ca instrument auxiliar. Tipurile de date pe coloană care sunt opționale sunt specificate cu o clauză de activare la crearea tabelelor. De asemenea, operatorul NULL, atunci când se utilizează prefixul suplimentar NOT, poate fi folosit pentru a indica faptul că toate valorile trebuie completate. Un pointer NULL nu are tip. Pur și simplu indică o valoare goală în tabelele bazei de date. Din acest motiv, poate fi combinat cu unul dintre tipurile de date prezentate mai sus.

În lumea modernă există un numar mare de mijloace și tehnologii destinate stocării informațiilor. Una dintre cele mai comune metode sunt bazele de date, pentru lucrul cu care se folosesc diverse sisteme de management. Aceasta metoda stocarea 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 dezvoltată 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:

  • valori ale șirurilor 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, cifre ș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 de 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ă iau în considerare tipul de metode de stocare și procesare pentru a se asigura că datele rămân întotdeauna neschimbate.

Tip de date întreg

Numere întregi - grup separat numere, formând 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 de server pentru rularea interogărilor 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ă folosiți 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.

Ultima actualizare: 07.12.2017

Când creați un tabel, trebuie să specificați un anumit tip de date pentru toate coloanele acestuia. Tipul de date determină ce valori pot fi stocate în coloană și cât spațiu vor ocupa în memorie.

Limbajul T-SQL oferă multe tipuri diferite. În funcție de natura semnificațiilor, toate pot fi împărțite în grupuri.

Tipuri de date numerice

    BIT: stochează valoarea 0 sau 1. De fapt, este un analog de tip boolean în limbaje de programare. Ocupă 1 octet.

    TINYINT: stochează numere de la 0 la 255. Ocupă 1 octet. Bun pentru stocarea numerelor mici.

    SMALLINT: stochează numere de la –32.768 la 32.767. Ocupă 2 octeți

    INT: stochează numere de la –2.147.483.648 la 2.147.483.647. Ocupă 4 octeți. Cel mai folosit tip pentru stocarea numerelor.

    BIGINT: stochează numere foarte mari de la -9.223.372.036.854.775.808 la 9.223.372.036.854.775.807, care ocupă 8 octeți în memorie.

    DECIMAL: stochează numere fixe de precizie. Este nevoie de 5 până la 17 octeți, în funcție de numărul de zecimale.

    Acest tip poate lua doi parametri precizie și scară: DECIMAL(precizie, scară) .

    Parametrul de precizie reprezintă numărul maxim de cifre pe care numărul le poate stoca. Această valoare trebuie să fie între 1 și 38. Valoarea implicită este 18.

    Parametrul scară reprezintă numărul maxim de cifre pe care le poate conține un număr după virgulă zecimală. Această valoare trebuie să fie în intervalul de la 0 la valoarea parametrului de precizie. Implicit este 0.

    NUMERIC: Acest tip este similar cu tipul DECIMAL.

    SMALLMONEY: Stochează valori fracționale de la -214748.3648 la 214748.3647. Proiectat pentru stocarea valorilor monetare. Ocupă 4 octeți. Echivalent cu tipul DECIMAL(10,4) .

    BANI: stochează valori fracționale de la -922,337,203,685,477,5808 la 922,337,203,685,477,5807. Reprezintă valori monetare și ocupă 8 octeți. Echivalent cu tipul DECIMAL(19,4) .

    FLOAT: Stochează numere de la –1.79E+308 la 1.79E+308. Este nevoie de 4 până la 8 octeți, în funcție de partea fracțională.

    Poate fi definit ca FLOAT(n), unde n reprezintă numărul de biți care sunt utilizați pentru a stoca partea zecimală a numărului (mantisa). Implicit n = 53.

    REAL: Stochează numere de la –340E+38 la 3.40E+38. Ocupă 4 octeți. Echivalent cu tipul FLOAT(24).

Exemple de coloane numerice: Salary MONEY, TotalWeight DECIMAL(9,2), Age INT, Surplus FLOAT

Tipuri de date care reprezintă data și ora

    DATA: Magazinele datează de la 0001-01-01 (1 ianuarie 0001) până la 9999-12-31 (31 decembrie 9999). Ocupă 3 octeți.

    TIME: Stochează timpul în intervalul 00:00:00.0000000 până la 23:59:59.9999999. Durează de la 3 la 5 octeți.

    Poate avea forma TIME(n) , unde n reprezintă numărul de cifre de la 0 la 7 în secunde fracționale.

    DATETIME: Stochează datele și orele de la 01/01/1753 la 31/12/9999. Ocupă 8 octeți.

    DATETIME2 : Stochează datele și orele în intervalul 01/01/0001 00:00:00.0000000 până la 12/31/9999 23:59:59.9999999. Ocupă de la 6 până la 8 octeți, în funcție de precizia timpului.

    Poate avea forma DATETIME2(n) , unde n reprezintă numărul de cifre de la 0 la 7 în secunde fracționale.

    SMALLDATETIME: stochează datele și orele în intervalul 01/01/1900 până la 06/06/2079, adică cele mai apropiate date. Ocupă de la 4 octeți.

    DATETIMEOFFSET: Stochează datele și orele în intervalul 0001-01-01 până la 9999-12-31. Stochează informații detaliate despre timp cu o precizie de 100 nanosecunde. Ocupă 10 octeți.

Formate comune de date:

    aaaa-ll-zz - 12-07-2017

    zz/ll/aaaa - 07.12.2017

    l-zz-aa - 07-12-17

    În acest format, numerele din două cifre de la 00 la 49 sunt tratate ca date în intervalul 2000-2049. Și numerele de la 50 la 90 sunt ca intervalul de numere 1950 - 1999.

    Luna zz, aaaa - 12 iulie 2017

Formate de timp comune:

  • hh:mi am/pm - 1:21 pm

    hh:mi:ss - 1:21:34

    hh:mi:ss:mmm - 1:21:34:12

    hh:mi:ss:nnnnnnnn - 1:21:34:1234567

Tipuri de date șir

    CHAR: Stochează un șir cu lungimea cuprinsă între 1 și 8.000 de caractere. Aloca 1 octet pentru fiecare caracter. Nu este potrivit pentru multe limbi, deoarece stochează caractere non-Unicode.

    Numărul de caractere pe care coloana le poate stoca este trecut între paranteze. De exemplu, o coloană cu tipul CHAR(10) va aloca 10 octeți. Și dacă stocăm un șir de mai puțin de 10 caractere într-o coloană, acesta va fi umplut cu spații.

    VARCHAR: stochează un șir. 1 octet este alocat pentru fiecare caracter. Puteți specifica o anumită lungime pentru o coloană - de la 1 la 8000 de caractere, de exemplu, VARCHAR(10) . Dacă șirul trebuie să aibă mai mult de 8000 de caractere, atunci dimensiunea este setată la MAX și pot fi alocați până la 2 GB pentru a stoca șirul: VARCHAR(MAX) .

    Nu este potrivit pentru multe limbi, deoarece stochează caractere non-Unicode.

    Spre deosebire de tipul CHAR, dacă într-o coloană cu tipul VARCHAR(10) este stocat un șir de 5 caractere, atunci exact cinci caractere vor fi stocate în coloană.

    NCHAR: Stochează un șir Unicode cu o lungime de la 1 la 4.000 de caractere. Pentru fiecare caracter sunt alocați 2 octeți. De exemplu, NCHAR(15)

    NVARCHAR: Stochează un șir codificat Unicode. Pentru fiecare caracter sunt alocați 2 octeți. Puteți seta o dimensiune specifică de la 1 la 4.000 de caractere: . Dacă linia trebuie să aibă mai mult de 4000 de caractere, atunci dimensiunea este setată la MAX și pot fi alocați până la 2 GB pentru stocarea liniei.

Încă două tipuri, TEXT și NTEXT, sunt învechite și, prin urmare, nu sunt recomandate. În schimb, sunt folosite VARCHAR și, respectiv, NVARCHAR.

Exemple de definire a coloanelor șir:

E-mail VARCHAR(30), Comentează NVARCHAR(MAX)

Tipuri de date binare

    BINAR: Stochează date binare într-o secvență de la 1 la 8.000 de octeți.

    VARBINARY : Stochează date binare ca o secvență de la 1 la 8.000 de octeți sau până la 2^31–1 octeți când se utilizează valoarea MAX (VARBINARY(MAX)).

Un alt tip binar, tipul IMAGE, este învechit și se recomandă utilizarea tipului VARBINARY.

Alte tipuri de date

    UNIQUEIDENTIFIER: Un GUID unic (în esență un șir cu o valoare unică) care ocupă 16 octeți.

    TIMESTAMP: un număr care stochează numărul versiunii unui rând din tabel. Ocupă 8 octeți.

    CURSOR: Reprezintă un set de șiruri.

    HIERARHYID: Reprezintă o poziție într-o ierarhie.

    SQL_VARIANT: Poate stoca date de orice alt tip de date T-SQL.

    XML: Stochează documente XML sau fragmente de documente XML. Ocupă până la 2 GB de memorie.

    TABLE: Reprezintă o definiție de tabel.

    GEOGRAFIE: Stochează date geografice, cum ar fi latitudinea și longitudinea.

    GEOMETRIE: Stochează coordonatele unei locații pe un avion.

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. Al lor scurta descriere prezentate î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 frecvent 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. memorie externa.

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]

Cifre 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 la zero pentru coloanele TIME (adică sunt stocate secunde întregi), în timp ce pentru câmpurile TIMESTAMP este implicit 6. Disponibilitate cuvânt cheie WITH TIME ZONE specifică utilizarea câmpurilor TIMEZONE HOUR și TIMEZONE MINUTE, specificând astfel ora și minutele decalajului orar al fusului în raport cu Ora 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 și descrisă ca conținând date de tipul care a fost specificat în definiția domeniului care este șters.

O alternativă la domeniile din mediu SQL Server sunt tipuri de date personalizate.

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

Să dăm scurtă recenzie Tipuri de date SQL Server.

Folosit pentru a stoca informații simbolice 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).

Datele cu caractere de volum mare (până la 2 GB) sunt stocate 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 cel mult 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ă, adică o mantisă și un exponent sunt folosite pentru a reprezenta numere, asigurând aceeași precizie de calcul, 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. Cursore SQL Serverul reprezintă un mecanism de schimb 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.