Care este tipul întregului 1000000 în sql. Tip de date reale SQL. Tipuri de date numerice

Î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 selectat corect î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 real date SQL.
  3. Tipuri de date SQL date și oră.
  4. Tipul de date șir SQL.
  5. Tipul de date șir Unicode SQL.

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 SGBD; mai jos sunt doar câteva tabele exemple tipice Tipul 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țiile SGBD pentru a afla ce tip de date poate fi folosit pentru valorile șir.

tip de date SQL Descriere
char Lungimea maximă este de 8000 de caractere (toate valorile dintr-o 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ă sunt dimensiune diferităîn funcție de numărul de caractere, dar nu mai mult decât dimensiunea care a fost specificată la declararea coloanei). 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.

Tipul de date șir Unicode SQL

Da, unele SGBD-uri alocă un tip de date șir în codarea Unicode, deoarece în șirurile codificate Unicode se cheltuiesc 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 de 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 următorul subiect Ne vom uita la tipurile de date acceptate de 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 este perfect tipuri diferite 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 aplicație practică Tipuri 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ă Sunt un numar mare de mijloace și tehnologii destinate stocării informațiilor. Una dintre cele mai comune metode este bazele de date, cu care se lucrează diverse sisteme 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 ei are unul sens 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 sarcini. Când se proiectează programe, este o practică comună să se dezvolte și să se utilizeze propriile tipuri date de la un anumit set 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 nevoia de mai multe prelucrare convenabilă. Momentan baza tipurile existente Există două tipuri de date: simbolice și numerice.

Pe baza lor, a fost dezvoltat clasificare modernă, care include tipuri de date pointer, boolean, întreg, float ș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 lingvistice 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.

Poate fi Simboluri speciale, cifre și litere, care împreună vor fi procesate ca șiruri în orice tip de date, listarea tabelului care este prezentată mai jos, formează primul grup.

Folosit pentru a stoca șiruri. Parametrul dintre paranteze vă permite să fixați lungimea șirului stocat. Dimensiunea maximaîn octeți care pot fi setați 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 în cauză este similar cu tipul TEXT și vă permite să îl salvați în baza de date informații text, al cărui 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 crescute până la 16.777.215 de litere sau simboluri.

Folosit pentru a salva în baza de date documente electronice, a cărui 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 vor adăuga valori care nu sunt prezente în lista dată, valorile goale vor fi scrise în tabel.

Specifică un set valori acceptabile. Spre deosebire de tipul anterior, este folosit pentru a deține 64 de parametri care pot fi inițializați de oricare sau mai multe dintre 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

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.

Prin selectare tipul corect date, puteți economisi în mod semnificativ memorie și reduce costul timpului de server atunci când sunt executate 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 studiezi Bazele SQL Tipurile de date de dată și oră prezintă un interes deosebit.

Folosind tipurile de mai jos oferă beneficii aditionale la dezvoltarea sistemelor a căror funcţionare depinde de parametrii de timp.

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. În acest scop este folosit index special valoare goală - NUL, care ca ajutor folosește limbajul SQL. 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 umplere obligatorie toate valorile.

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.

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 cu 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 lungime maxima 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 să fie incluse într-un singur ("") sau ghilimele duble("). Se recomandă includerea constantelor de caractere în ghilimele simple. Închiderea 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 Adocicados”

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ăr valabil 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ă” trebuie să fie stocată în ea, SQL Server stochează datele sub forma „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 4000. 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. Managerii Construcții SQL.. 6

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

Tipuri de date SQL definite de standard

Date– acestea sunt informații agregate stocate într-o bază de date sub forma uneia dintre mai multe tipuri variate. 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 utilizate seturi caractere ASCIIși EBCDIC. Pentru a defini datele tip caracter, utilizați următorul format:

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

( 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 această coloană(valoarea implicită este 1). Ș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 secvente cifre binare(biți), fiecare dintre care poate 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 într-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 un anumit grad zece (comanda), 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, va fi implicit coloane tip TIME admis egal cu zero(adică sunt stocate secunde întregi), în timp ce pentru câmpurile de tip TIMESTAMP se presupune că este 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 acelei coloane și comportamentul acesteia printr-un domeniu și apoi să le atribuiți fiecăruia. coloane identice numele domeniului. 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 operatorul:

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 în Mediul SQL Serverul sunt tipuri personalizate date.

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 complet echivalent cu conceptul de tip de date în limbile moderne programare. Serverul SQL acceptă număr mare diverse tipuri de date: text, numerice, binare (vezi tabel).

Să dăm scurtă recenzie Tipuri 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 de caractere cu volum mare (până la 2 GB) se realizează folosind tipuri de text Date 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 indică suma maxima cifre ale datelor de intrare de acest tip (înainte și după virgulă zecimală în total), iar parametrul scară este numărul maxim de cifre situat după virgulă zecimală. ÎN Mod 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 speciale date.

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ă spațiu de stocare pentru un set de rânduri destinate procesării ulterioare. Tipul de date TABLE poate fi folosit doar pentru a defini variabilele locale și a reveni funcții personalizate valorile.

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. Cursorul permite aplicații client nu lucrezi cu Set complet date, dar doar cu unul sau câteva rânduri.


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

Lista de mai jos arată asta Microsoft SQL Serverul acceptă majoritatea tipurilor de date SQL 2003. De asemenea, SQL Server acceptă tipuri suplimentare date utilizate pentru a identifica în mod unic rânduri de date dintr-un tabel și pe mai multe servere, cum ar fi UNIQUEIDENTIFIER, care este în concordanță cu filozofia hardware Microsoft „în primul rând pe lățimea” (adică, implementarea unei baze de date pe mai multe servere pe Platforme Intel), în loc să „crească în înălțime” (adică, implementarea pe un server UNIX uriaș sau puternic Date Windows Center Server).

O deosebire interesantă în ceea ce privește datele de pe SQL Server: SQL Server acceptă date din 1753. Nu puteți stoca date anterioare în niciun tip de date baze de date SQL Server. De ce? Motivul este că lumea vorbitoare de limba engleză a început să folosească calendarul gregorian în 1753 (până în septembrie 1753 a fost folosit calendarul iulian), iar conversia datelor din calendarul iulian în calendarul gregorian ar putea fi destul de dificilă.

BIGINT (tip de date SQL 2003: BIGINT)

Stochează numere întregi semnate și nesemnate în intervalul -9.223.372.036.854.775.808 până la 9.223.372.036.854.775.807. Ocupă 8 octeți. Consultați tipul INT pentru regulile de proprietate IDENTITY care se aplică și tipului BIGINT.

BINAR[(n)](tip de date SQL 2003: BLOB)

Stochează o valoare binară cu lungime fixă ​​de la 1 la 8000 de octeți. O valoare BINAR ocupă n + 4 octeți.

BIT (tip de date SQL 2003: BOOLEAN)

Stochează valorile 1, 0 sau NULL, care înseamnă „necunoscut”. Un octet poate stoca până la 8 valori din coloanele de tip tabel BIT. Încă un octet poate găzdui valori suplimentare de 8 BIT. Coloanele de tip BIT nu pot fi indexate.

CHAR[(n)], CHARACTER[(n)] (tip de date SQL 2003: CHARACTER(n))

Stochează date de caractere cu lungime fixă ​​de la 1 la 8000 de caractere. Orice spațiu nefolosit este umplut implicit cu spații. (Umplutura automată poate fi dezactivată.) Tipul este de n octeți.

CURSOR (tip de date SQL 2003: lipsește)

Un tip de date special folosit pentru a descrie un cursor sub forma unei variabile sau a unui parametru de procedură stocată OUTPUT. Tipul nu poate fi utilizat într-o instrucțiune CREATE TABLE. Tipul CURSOR poate fi NULL.

DATETIME (tip de date SQL 2003: TIMESTAMP)

Stochează o valoare de dată și oră în intervalul 01-01-1753 00:00:00 până la 31-12-9999 23:59:59. Stocarea necesită 8 octeți.

DECIMAL (p. s). DEC (p, s), NUMERIC (p, s) (tip de date SQL 2003: DECIMAL (p, s). NUMERIC (p. s))

Magazine zecimale lungime de până la 38 de cifre. Valorile p și s determină precizia și, respectiv, scara. Scala implicită este 0. Spațiul pe care îl ocupă valoarea este determinat de precizia utilizată. Pentru precizia 1-9, sunt utilizați 5 octeți. Pentru precizia 10-19, se folosesc 9 octeți. Cu o precizie de 20-28, sunt utilizați 13 octeți. Cu precizie 29-39, sunt utilizați 17 octeți.

Consultați tipul INT pentru regulile de proprietate IDENTITY care se aplică și tipului DECIMAL.

DOUBLE PRECISION (Tip de date SQL 2003: niciunul) Sinonim pentru FLOAT(53).

FLOAT[(n)] (tip de date SQL 2003: FLOAT, FLOAT(n))

Stochează valori în virgulă mobilă în intervalul -1,79E + 308 la 1,79E + 308. Precizia, determinată de parametrul n, poate varia de la 1 la 53. Pentru a stoca 7 cifre (și - de la 1 la 24) necesită 4 octeți. Valorile mai mari de 7 cifre ocupă 8 octeți.

IMAGINE (tip de date SQL 2003: BLOB)

Stochează o valoare binară cu lungime variabilă de până la 2.147.483.647 de octeți. Acest tip de date este adesea folosit pentru a stoca grafică, sunet și fișiere, cum ar fi documente Microsoft Cuvânt și foi de calcul Microsoft Excel. Valorile de tip IMAGE nu pot fi manipulate liber. Coloanele IMAGE și TO au multe restricții cu privire la modul în care pot fi utilizate. Consultați descrierea tipului TEXT pentru o listă de comenzi și funcții care se aplică și tipului IMAGINE.

INT (tip de date SQL 2003: INTEGER)

Stochează numere întregi semnate sau nesemnate în intervalul de la -2.147.483.648 la 2.147.483.647. Ocupă 4 octeți. Toate tipuri de numere întregi datele, precum și tipurile care stochează fracții zecimale, acceptă proprietatea IDENTITY, identitatea este un identificator de rând incrementat automat. Consultați secțiunea Declarație CREATE/ALTERTABLE.

BANI (tip de date SQL 2003: lipsesc)

Stochează valorile valutare în intervalul -922337203685477,5808 până la 922337203685477,5807. Valoarea durează 8 octeți.

NCHAR(n), NATIONAL CHAR(n), NATIONAL CHARACTER) (tip de date SQL 2003: NATIONAL CHARACTER(n))

Stochează date UNICODE cu lungime fixă ​​de până la 4000 de caractere. Stocarea necesită n*2 octeți.

NTEXT, TEXT NATIONAL (tip de date SQL 2003: NCLOB)

Stochează fragmente de text în format UNICODE cu o lungime de până la 1.073.741.823 de caractere. Consultați descrierea tipului TEXT pentru o listă de comenzi și funcții care se aplică și tipului NTEXT.

Sinonim pentru tipul DECIMAL. Consultați descrierea tipului INT pentru regulile legate de proprietatea IDENTITY.

NVARCHAR(n), NATIONAL CHAR VARYING(n), NATIONAL CHARACTER VARYING(n) (tip de date SQL 2003: NATIONAL CHARACTER VARYING(n))

Stochează date UNICODE cu lungime variabilă de până la 4000 de caractere. Spațiul ocupat este calculat ca de două ori lungimea tuturor caracterelor introduse în câmp (număr de caractere * 2). În SQL Server parametru de sistem SET ANSI_PADDING] pentru câmpurile NCHAR și NVARCHAR este întotdeauna setat (ON).

REAL, FLOAT(24)(datele mun. SQL 2003: REAL)

Stochează valori în virgulă mobilă în intervalul -3,40E+38 până la 3,40E+38. Ocupă 4 octeți. Tipul REAL este echivalent funcțional cu tipul FLOAT(24).

ROWVERSION (tip de date SQL 2003: lipsește)

Un număr unic stocat într-o bază de date care este actualizat ori de câte ori este actualizat un rând. Mai mult versiuni anterioare numit TIMESTAMP.

SMALLDATETIME (tip de date SQL 2003: lipsește)

Stochează data și ora în intervalul „01-01-1900 00:00” până la „06-06-2079 23:59” exact la minut. (Minutele sunt rotunjite în jos dacă secundele sunt 29,998 sau mai puțin, altfel sunt rotunjite în sus valoare mai mare.) Valoarea durează 4 octeți.

SMALLINT (tip de date SQL 2003: SMALLINT)

Stochează numere întregi semnate sau nesemnate în intervalul de la -32.768 la 32.767. Ocupă 2 octeți. Consultați descrierea tipului INT pentru regulile legate de proprietatea IDENTITY care se aplică și acestui tip.

SMALLMONEY (tip de date SQL 2003: lipsește)

Stochează valorile valutare în intervalul de la 214748,3648 la -214748,3647. Valorile iau 4 octeți.

VARIANTA SQL (tip de date SQL 2003: niciuna)

Stochează valori legate de alte SQL-uri acceptate Tipuri de servere date, cu excepția tipurilor TEXT, NTEXT, ROWVERSION și a altor valori de tip SQL_VARIANT. Poate stoca până la 8016 octeți de date, acceptat Valori NULLși DEFAULT. Tipul SQL_VARIANT este utilizat în coloane, parametri, variabile și valorile returnate ale funcțiilor și procedurilor stocate.

TABLE (tip de date SQL 2003: niciunul)

Un tip special care stochează setul de date rezultat din ultimul proces. Folosit exclusiv pentru procesarea procedurală și nu poate fi folosit în instrucțiunile CREATE TABLE. Acest tip de date reduce nevoia de a crea tabele temporare în multe aplicații. Poate reduce nevoia de recompilări de proceduri, accelerând astfel execuția procedurilor stocate și a funcțiilor definite de utilizator.

TEXT (tip de date SQL 2003: CLOB)

Stochează bucăți foarte mari de text cu o lungime de până la 2.147.483.647 de caractere. Valorile TECHNIC IMAGE sunt adesea mult mai dificil de manipulat decât, să zicem, valorile VARCHAR. De exemplu, nu puteți crea un index pe o coloană de tip TEXT sau IMAGINE. Valorile de tip TEXT pot fi manipulate folosind funcțiile DATALENGTH, PATINDEX, SUBSTRING. TEXTPTR și TECH-TVALID, precum și comenzile READTEXT, SET TEXTSIZE, UPDATETEXT și WR1TETEXT.

TIMESTAMP (tip de date SQL 2003: TIMESTAMP)

Magazine generate automat număr binar, care asigură unicitatea în baza de date curentă și, prin urmare, diferă de tipul de date TIMESTAMP standard ANSI. Tipul TIMESTAMP ocupă 8 octeți. În prezent, în loc de TIMESTAMP, este mai bine să folosiți valorile ROWVERSION pentru a identifica în mod unic rândurile.

Stochează numere întregi fără semn în intervalul de la 0 la 255 și ocupă 1 octet. Consultați descrierea tipului /L/G pentru regulile legate de proprietatea IDENTITY care se aplică și acestui tip.

UNIQUEIDENTIFIER (tip de date SQL 2003: lipsește)

Reprezintă o valoare unică pentru toate bazele de date și pentru toate serverele. Reprezentat sub forma xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx, în care fiecare „x” reprezintă număr hexazecimalîn intervalul 0-9 sau a - f. Singurele operațiuni care pot fi efectuate pe valori de acest tip sunt compararea și testarea pentru NULL. Coloanele de acest tip pot folosi constrângeri și proprietăți, cu excepția proprietății IDENTITY.

VARBINARY[(n)] (tip de date SQL 2003: BLOB)

Reprezintă o valoare binară cu lungime variabilă, de până la 8000 de octeți. Spațiul ocupat este dimensiunea datelor introduse plus 4 octeți.

VARCHARf[(n)], CHAR VARYING [(n)], CHARACTER VARYING f(n)J (tip de date SQL 2003: CHARACTER VARYING [(n)]

Stochează date de caractere cu lungime fixă, cu dimensiuni cuprinse între 1 și 8000 de caractere. Spațiul ocupat este egal cu dimensiunea reală a valorii introduse în octeți, nu cu valoarea n.