Vrsta podatkov za oznako sql. Tipi podatkov, ki se uporabljajo v strežniku SQL

V sodobnem svetu obstaja veliko orodij in tehnologij za shranjevanje informacij. Ena najpogostejših metod so baze podatkov, za delo s katerimi se uporabljajo različni sistemi upravljanja. Ta način shranjevanja predvideva, da so vsi podatki jasno strukturirani in vneseni v posebne tabele. Ti pa so sestavljeni iz stolpcev atributov določene vrste podatkov.

Tip podatkov - kaj je to?

Danes obstaja več definicij, ki pojasnjujejo koncept izraza "podatkovni tip". Vendar ima vsak od njih en splošen pomen. Zato ga je mogoče konvencionalno opredeliti kot skupino podatkov, za katere so značilne njegove vrednosti (simbolične, številske itd.), Pa tudi operacije, ki se uporabljajo za zadevne vrednosti.

Področje uporabe podatkovnih tipov je večplastno. Uporabljajo se ne samo za shranjevanje informacij, temveč tudi pri programiranju za reševanje različnih problemov. Pri načrtovanju programov je običajna praksa razvijanje in uporaba lastnih tipov podatkov z določenim nizom operacij. Vendar tisti po meri vedno temeljijo na osnovnih tipih podatkov. Tudi standard SQL temelji na uporabi najpogostejših osnovnih tipov, vendar s številnimi posebnimi dodatki.

Klasifikacija tipov podatkov

Združevanje podatkov po vrstah se je pojavilo že dolgo nazaj in je nastalo zaradi potrebe po bolj priročni obdelavi. Trenutno osnovo obstoječih tipov podatkov tvorita dva: znakovni in številski.

Na njihovi podlagi je bila razvita sodobna klasifikacija, ki vključuje kazalce, logične, cele, s plavajočo vejico in nizovne podatkovne tipe. SQL - klasifikacija v celoti zajema vse zgoraj navedeno. Vendar pa za nekatere sodobne DBMS obstajajo dodatni dodatki. Sem spadata Oracle in MySQL.

Osnovni podatkovni tipi

Tisti, ki se uporabljajo za ustvarjanje atributov tabele, ki ustrezajo jezikovnim standardom, so razdeljeni v 4 razrede:

  • vrednosti nizov;
  • ulomki;
  • celoštevilske vrednosti;
  • vrednosti datuma in časa.

Podatkovni tip niz

Prva skupina vrednosti vam omogoča shranjevanje vseh podatkov, predstavljenih kot znaki.

To so lahko posebni znaki, številke in črke, ki bodo skupaj obdelani kot nizi v katerem koli tipu podatkov, seznam tabel, ki je predstavljen spodaj, tvori prvo skupino.

Uporablja se za shranjevanje nizov. Parameter v oklepajih vam omogoča, da določite dolžino shranjenega niza. Največja velikost v bajtih, ki jo je mogoče določiti za niz, je 255.

Podobno kot prejšnji tip vam omogoča shranjevanje nizov do 255 znakov. Vendar je razlika od CHAR v tem, da je potrebna količina pomnilnika dodeljena za shranjevanje vrednosti te vrste. To pomeni, da bo niz, sestavljen iz 5 znakov, zahteval 6 bajtov pomnilnika. V prvem primeru bo pomnilnik za vrednost dodeljen v skladu z navedenim parametrom.

Uporablja se za shranjevanje podatkov niza do 255 znakov.

Uporablja se za shranjevanje besedilnih informacij, katerih velikost ne presega 65.535 črk.

Obravnavani tip podatkov je podoben tipu TEXT in vam omogoča shranjevanje besedilnih informacij v zbirki podatkov, katerih obseg lahko doseže 65.535 znakov. Toda v praksi se uporablja za shranjevanje zvočnih podatkov, risb, elektronske dokumentacije itd.

Razvit je bil na osnovi tipa TEXT, vendar omogoča shranjevanje več podatkov zaradi povečane velikosti do 16.777.215 črk ali simbolov.

Uporablja se za shranjevanje elektronskih dokumentov v bazi podatkov, katerih velikost ne presega 16.777.215 znakov.

Funkcionalno podoben prejšnjim tipom, vendar s povečano kapaciteto pomnilnika do 4 gigabajtov.

Omogoča vnos velikih količin podatkov v podatkovno bazo (4.294.967.295 znakov).

ENUM (a, b, c itd.)

Poseben podatkovni tip, ki se uporablja za podajanje seznama možnih vrednosti. Omogoča podajanje 65535 vrednosti. Nizi zadevne vrste lahko sprejmejo eno samo vrednost od tistih, ki so določene v nizu. V primeru, da so dodane vrednosti, ki niso prisotne na danem seznamu, bodo prazne vrednosti zapisane v tabelo.

Podaja niz veljavnih vrednosti. Za razliko od prejšnjega tipa se uporablja za vsebovanje 64 parametrov, ki jih je mogoče inicializirati s katerim koli ali več elementi iz danih argumentov.

Tabela frakcijskih podatkovnih vrst

Podatkovni tipi Fractional SQL se uporabljajo za shranjevanje števil s plavajočo vejico. V praksi se praviloma postavljajo različni finančni kazalniki. Glede na zahtevano natančnost se uporabi eden od treh predstavljenih:

Na primer, pri bančnih izračunih natančnost delnega dela doseže 8 ali 10 števk. Prvih dveh vrst ni mogoče uporabiti na tem področju.

Shranjevanje finančnih kazalnikov v obliki nizov močno poenostavi reševanje številnih problemov. Pri finančnih težavah ali izvajanju različnih operacij SQL pa je pretvorba podatkovnega tipa zelo pomembna. Razvijalci morajo upoštevati vrsto shranjevanja in metode obdelave, da zagotovijo, da podatki vedno ostanejo nespremenjeni.

Celoštevilski podatkovni tip

Cela števila so ločena skupina števil, ki tvorijo enega od glavnih razredov. Celoštevilski podatkovni tipi SQL temeljijo na uporabi osnovnega z nekaterimi razširitvami njegovih lastnosti.

Z izbiro pravega tipa podatkov lahko prihranite veliko pomnilnika in skrajšate čas strežnika, porabljen za izvajanje potrebnih poizvedb SQL. Vrste podatkov oziroma njihov obseg določajo količino potrebnega prostora za shranjevanje.

Zato je pomembno, da se razvijalci zavedajo, da uporaba velikih razponov za atribute povzroči povečane stroške pomnilnika. Treba je jasno analizirati probleme, ki se rešujejo, in identificirati primere, kjer je približen obseg znan in je določen pogoj za uporabo predpisanih števil. Če je obseg uporabljenih argumentov majhen in so vsa števila pozitivna, bi bilo pravilneje uporabiti nepredznačeni tip, ki ga tvori atribut UNSIGNED.

Vrste podatkov o datumu in času

Pri učenju osnov SQL so podatkovni tipi datuma in časa še posebej zanimivi.

Uporaba naslednjih vrst zagotavlja dodatne prednosti pri razvoju sistemov, ki so odvisni od časovnega razporeda.

Glavni namen je shranjevanje datuma v obliki LETO-MESEC-DAN (»LLLL-MM-DD« ali »uuuu-mm-dd«). Običajno so vrednosti ločene z "-", vendar se lahko kot ločilo uporabi kateri koli znak razen številk.

Omogoča vnos začasnih vrednosti v celico tabele. Vse vrednosti so navedene v obliki "hh:mm:ss"

Združuje funkcije prejšnjih dveh vrst. Format shranjevanja je predstavljen na naslednji način: "uuuu-mm-dd hh:mm:ss".

Shrani datum in čas, izračunan s številom sekund, ki so pretekle od polnoči 1. januarja 1970 do podane vrednosti.

Uporablja se za shranjevanje letnih vrednosti v dvo- ali štirimestnem formatu.

Kaj še morate vedeti?

Vse te vrste podatkov Microsoft podrobno sistematizira. Podrobneje je razvila podatkovne tipe SQL.

Na primer, podjetje podrobno opisuje, koliko pomnilnika v bajtih je dodeljeno pri uporabi posamezne vrste. Po preučevanju razpoložljivih informacij je razvijalcem lažje oblikovati strukturo tabel in celotno bazo podatkov glede na zmogljivosti strojne opreme strežnika.

Poseben kazalec - NULL

Včasih se pri polnjenju baze podatkov pojavi situacija, ko pri dodajanju zapisa v tabelo ni treba vnesti informacij v vse stolpce. Za to se uporablja poseben kazalec prazne vrednosti - NIČ, ki kot pomoč uporablja jezik SQL. Ko so tabele ustvarjene, so podatkovni tipi stolpcev, ki jih ni treba izpolniti, podani s stavkom, ki dovoljuje vključitev ničelnih vrednosti. V drugem primeru operater NIČ z dodatnim nastavkom NE lahko uporabite za označevanje, da je treba izpolniti vse vrednosti.

Kazalec NIČ nima vrste, ampak preprosto kaže na prazno vrednost v tabelah zbirke podatkov. Zato ga je mogoče kombinirati s katero koli od zgornjih vrst.

Najprej si poglejmo, kaj so »podatkovni tipi«.
Vrste podatkov določajo, katere vrednosti je mogoče shraniti v stolpec in koliko pomnilnika bodo zavzele. Ko ustvarite tabelo, morate določiti določen tip podatkov za vse njene stolpce.
Glavne vrste, ki se uporabljajo v SQL, lahko razdelimo v več kategorij:

  • Celoštevilski tipi;
  • Frakcijski tipi;
  • Vrste znakov;
  • vrste denarja;
  • Časovni tipi (datum/čas);

Celoštevilski podatkovni tipi

Frakcijski tipi podatkov

Znakovni podatkovni tip

Vrsta podatkovOpis
CHAR(velikost)Uporablja se za shranjevanje nizov. Parameter v oklepajih vam omogoča, da določite dolžino shranjenega niza. Največja velikost v bajtih, ki jo je mogoče določiti za niz, je 255.
VARCHAR (velikost)Podobno kot prejšnji tip vam omogoča shranjevanje nizov do 255 znakov. Vendar je razlika od CHAR v tem, da je potrebna količina pomnilnika dodeljena za shranjevanje vrednosti te vrste. To pomeni, da bo niz, sestavljen iz 5 znakov, zahteval 6 bajtov pomnilnika. V prvem primeru bo pomnilnik za vrednost dodeljen v skladu z navedenim parametrom.
NCHAR(velikost)Podatki o nizu konstantne dolžine v Unicode. n določa dolžino niza in mora biti vrednost med 1 in 4000. Velikost pomnilnika je dvakratna vrednost velikosti v bajtih. Priporočljivo je, da uporabite nchar, če se pričakuje, da bodo velikosti podatkovnih elementov v stolpcih podobne.
NVARCHAR
(velikost|maks.)
Podatki o nizu spremenljive dolžine v Unicode. Velikost določa dolžino niza in ima lahko vrednost od 1 do 4000. Največja vrednost označuje, da je največja velikost pomnilnika 2^31-1 znakov (2 GB). Priporočljivo je, da uporabite nvarchar, če se pričakuje, da bodo velikosti podatkovnih elementov v stolpcih drugačne.
BESEDILOPodatki spremenljive dolžine, ki niso Unicode, na kodni strani strežnika in z največjo dolžino vrstice 2^31-1 (2.147.483.647).
NTEXTUnicode kodirani podatki spremenljive dolžine z največjo dolžino vrstice 2^30 - 1 (1.073.741.823) bajtov.

Tip podatkov o valuti

Vrste časa (datum/čas)

Vrsta podatkovOpis
DATUMGlavni namen je shranjevanje datuma v obliki LETO-MESEC-DAN (»LLLL-MM-DD« ali »uuuu-mm-dd«).
ČASOmogoča vnos začasnih vrednosti v celico tabele. Vse vrednosti so navedene v obliki "hh:mm:ss".
DATUM ČASZdružuje funkcije prejšnjih dveh vrst. Format shranjevanja je predstavljen na naslednji način: "uuuu-mm-dd hh:mm:ss".
ČASOVNI ŽIGShrani datum in čas, izračunan s številom sekund, ki so pretekle od polnoči 1. januarja 1970 do podane vrednosti.

Primeri uporabe podatkovnih tipov

Oglejmo si primer uporabe podatkovnih vrst v SQL.

Primer uporabe podatkovnih tipov

MySQL

CREATE TABLE Preverjanja (id INT NOT NULL, ime VARCHAR (50) NOT NULL, DataToDay DATE NOT NULL, Cost FLOAT NOT NULL);

id je števec (shranjuje posamezno kontrolno številko), zato spada v celoštevilski podatkovni tip, zato ga naredimo INT oz CELO ŠTEVILO. NI NULL označuje, da spremenljivka ne more biti prazna.
IN Ime Shranili bomo ime izdelka. Ker bodo v stolpcu shranjeni znaki, ki jih uporabljamo VARCHAR. Ko določimo vrsto, dodelimo pomnilnik za ime (v našem primeru je (50) ).
Naslednji stolpci tabele so ustvarjeni na podoben način.

Vsak stolpec zbirke podatkov ima svoj tip, ki je določen, ko je stolpec ustvarjen.

Standard SQL definira naslednje vrste:

1. simbolično:

ZNAK ( len); CHAR( len);

RAZLIČNI ZNAKI ( len); CHAR VARYING ( len); VARCHAR( len);

NACIONALNI ZNAČAJ ( len); NACIONALNI ZNAK ( len); NCHAR( len);

NACIONALNI ZNAČAJ RAZLIČEN ( len);

NACIONALNI ZNAK RAZLIČNO ( len); NCHAR SPREMENLJIV ( len);

2. dvojiško:

BIT ( len); BITNO RAZLIČNO ( len);

3. številčno:

NUMERIC; DECIMAL; DEC; INTEGER; INT; SMALLINT;

FLOAT; REALNO; DVOJNA NAtančnost;

4. datumi/ure:

DATUM; ČAS; ČAS S ČASOVNIM PASOM;

ČASOVNI ŽIG; ČASOVNI ŽIG S ČASOVNIM PASOM;

5. interval: INTERVAL.

Za tipe znakov je mogoče podati frazo CHARACTER SET (set_name | using_form), ki nastavi nabor znakov, ki se uporablja.

Tukaj je opis najpogosteje uporabljenih tipov podatkov:

CHAR( št) – besedilni niz fiksne dolžine (prostor je v pomnilniku dodeljen celotnemu nizu);

VARCHAR( št) – besedilni niz spremenljive dolžine, ki ne vsebuje več kot num znakov (prostor na disku se dodeli glede na dolžino niza);

INTEGER ali INT – celo število;

NUMERIC – število s plavajočo vejico, možno določiti število decimalnih mest;

DECIMAL ali DEC – število s plavajočo vejico, možna je nastavitev minimalne vrednosti natančnosti;

FLOAT – število s plavajočo vejico, ki omogoča nastavitev natančnosti (število decimalnih mest);

REAL je število s plavajočo vejico, katerega natančnost je določena z implementacijo;

DATUM – vrsta datuma;

ČAS S ČASOVNIM PASOM – tip časa, ki vsebuje polja, ki opisujejo časovni zamik pasu.

Tipi podatkov, ki opisujejo datum in čas, so sestavljeni iz več polj, ki shranjujejo dele datuma in časa.

Tako tip DATUM vsebuje polja LETO, MESEC in DAN.

Tip ČAS vsebuje polja URA, MINUTA in SEKUNDA.

Vrsta TIMESTAMP vsebuje tako datumsko kot časovno polje.

Vrednost tipa TIMESTAMP je zapisana takole: "10.1.2003 08:30:00". Vrstni red polj pri pisanju datuma običajno določajo nastavitve OS računalnika.

Za delo s podatki tipa datum/čas jezik SQL ponuja naslednje funkcije:

CURRENT_TIME – določa trenutni čas;

CURRENT_DATE – določa trenutni datum;

CURRENT_TIMESTAMP – določa trenutni datum in uro.

Ujemanje med tipi podatkov Oracle in tipi podatkov ANSI/ISO je predstavljeno v tabeli

DATUM – datum v razponu od 1-1-4712 pr. do 31-12-4712 AD Format podatkov določajo nastavitve strežnika.



V 10. različici so bili predstavljeni podatkovni tipi, ki ustrezajo standardu IEEE754 - BINARY_FLOAT in BINARY_DOUBLE.

Opomba. Postopki PL/SQL lahko uporabljajo tipe podatkov, združljive z ANSI: DEC(p,s), DECIMAL(p,s), INT, INTEGER, REAL, FLOAT(p), DOUBLE PRECISION.

Poleg zgoraj omenjenih skalarnih tipov je mogoče določiti sestavljen (agregatni) tip, na primer struktura, zapis ali zbirka. Poleg tega obstaja takšna vrsta povezave.

Zadnja posodobitev: 12.7.2017

Ko ustvarite tabelo, morate določiti določen tip podatkov za vse njene stolpce. Tip podatkov določa, katere vrednosti je mogoče shraniti v stolpec in koliko prostora bodo zavzele v pomnilniku.

Jezik T-SQL ponuja veliko različnih vrst. Glede na naravo pomenov jih lahko vse razdelimo v skupine.

Številski podatkovni tipi

    BIT: shrani vrednost 0 ali 1. Pravzaprav je analog tipa Boolean v programskih jezikih. Zaseda 1 bajt.

    TINYINT: shrani števila od 0 do 255. Zavzema 1 bajt. Dobro za shranjevanje majhnih številk.

    SMALLINT: shrani številke od –32.768 do 32.767. Zavzema 2 bajta

    INT: shrani številke od –2.147.483.648 do 2.147.483.647. Zavzema 4 bajte. Najpogosteje uporabljena vrsta za shranjevanje številk.

    BIGINT: shrani zelo velika števila od -9,223,372,036,854,775,808 do 9,223,372,036,854,775,807, ki zavzamejo 8 bajtov v pomnilniku.

    DECIMAL: shrani številke s fiksno natančnostjo. Zajema od 5 do 17 bajtov, odvisno od števila decimalnih mest.

    Ta tip lahko sprejme dva parametra natančnost in merilo: DECIMAL(natančnost, merilo) .

    Parameter natančnosti predstavlja največje število števk, ki jih lahko shrani številka. Ta vrednost mora biti med 1 in 38. Privzeta vrednost je 18.

    Parameter lestvice predstavlja največje število števk, ki jih lahko vsebuje število za decimalno vejico. Ta vrednost mora biti v območju od 0 do vrednosti parametra natančnosti. Privzeto je 0.

    NUMERIC: Ta tip je podoben tipu DECIMAL.

    SMALLMONEY: Shranjuje delne vrednosti od -214748,3648 do 214748,3647. Zasnovan za shranjevanje denarnih vrednosti. Zaseda 4 bajte. Enakovredno tipu DECIMAL(10,4) .

    DENAR: shrani delne vrednosti od -922,337,203,685,477.5808 do 922,337,203,685,477.5807. Predstavlja denarne vrednosti in zavzema 8 bajtov. Enakovredno tipu DECIMAL(19,4).

    FLOAT: Shranjuje številke od –1,79E+308 do 1,79E+308. Traja od 4 do 8 bajtov, odvisno od delnega dela.

    Lahko se definira kot FLOAT(n), kjer n predstavlja število bitov, ki se uporabljajo za shranjevanje decimalnega dela števila (mantise). Privzeto n = 53.

    REAL : Shranjuje številke od –340E+38 do 3,40E+38. Zaseda 4 bajte. Enakovredno tipu FLOAT(24).

Primeri številskih stolpcev: plača DENAR, skupna teža DECIMAL(9,2), starost INT, presežek FLOAT

Vrste podatkov, ki predstavljajo datum in čas

    DATUM: Datumi trgovin od 0001-01-01 (1. januar 0001) do 9999-12-31 (31. december 9999). Zaseda 3 bajte.

    ČAS: Shrani čas v obsegu od 00:00:00.0000000 do 23:59:59.9999999. Zajema od 3 do 5 bajtov.

    Lahko ima obliko TIME(n), kjer n predstavlja število števk od 0 do 7 v delčkih sekund.

    DATETIME: Shranjuje datume in ure od 01.01.1753 do 31.12.9999. Zaseda 8 bajtov.

    DATETIME2 : Shranjuje datume in ure v obsegu od 01/01/0001 00:00:00.0000000 do 31.12.9999 23:59:59.9999999. Zavzema od 6 do 8 bajtov, odvisno od časovne natančnosti.

    Lahko ima obliko DATETIME2(n), kjer n predstavlja število števk od 0 do 7 v delčkih sekund.

    SMALLDATETIME: shrani datume in ure v razponu od 01/01/1900 do 06/06/2079, to je najbližje datume. Zasede od 4 bajtov.

    DATETIMEOFFSET: Shranjuje datume in ure v obsegu od 0001-01-01 do 9999-12-31. Shranjuje podrobne informacije o času z natančnostjo 100 nanosekund. Zaseda 10 bajtov.

Pogosti formati datumov:

    llll-mm-dd - 2017-07-12

    dd/mm/llll - 12.7.2017

    mm-dd-ll - 07-12-17

    V tej obliki se dvomestna števila od 00 do 49 obravnavajo kot datumi v obsegu 2000–2049. In številke od 50 do 90 so kot obseg števil 1950 - 1999.

    Mesec dd, llll - 12. julij 2017

Pogosti formati časa:

  • hh:pol dopoldne/popoldne - 13.21

    hh:mi:ss - 1:21:34

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

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

Podatkovni tipi nizov

    CHAR: Shrani niz, dolg od 1 do 8000 znakov. Vsakemu znaku dodeli 1 bajt. Ni primeren za številne jezike, ker shranjuje znake, ki niso Unicode.

    Število znakov, ki jih stolpec lahko shrani, je podano v oklepajih. Na primer, stolpec s tipom CHAR(10) bo dodelil 10 bajtov. In če v stolpec shranimo niz z manj kot 10 znaki, bo ta obložen s presledki.

    VARCHAR: shrani niz. Za vsak znak je dodeljen 1 bajt. Za stolpec lahko določite določeno dolžino - od 1 do 8000 znakov, na primer VARCHAR(10). Če mora imeti niz več kot 8000 znakov, je velikost nastavljena na MAX, za shranjevanje niza pa je mogoče dodeliti do 2 GB: VARCHAR(MAX) .

    Ni primeren za številne jezike, ker shranjuje znake, ki niso Unicode.

    V nasprotju s tipom CHAR, če je v stolpcu s tipom VARCHAR(10) shranjen niz 5 znakov, bo v stolpcu shranjenih natanko pet znakov.

    NCHAR: shrani niz Unicode, dolg od 1 do 4000 znakov. Vsakemu znaku sta dodeljena 2 bajta. Na primer NCHAR(15)

    NVARCHAR: shrani niz, kodiran z Unicode. Za vsak znak sta dodeljena 2 bajta. Nastavite lahko določeno velikost od 1 do 4000 znakov: . Če mora imeti vrstica več kot 4000 znakov, je velikost nastavljena na MAX, za shranjevanje vrstice pa je mogoče dodeliti do 2 GB.

Še dve vrsti, TEXT in NTEXT, sta zastareli in zato nista priporočljivi. Namesto tega se uporabljata VARCHAR oziroma NVARCHAR.

Primeri definiranja stolpcev nizov:

E-pošta VARCHAR(30), komentar NVARCHAR(MAX)

Tipi binarnih podatkov

    BINARY: Shrani binarne podatke kot zaporedje od 1 do 8.000 bajtov.

    VARBINARY : Shrani binarne podatke kot zaporedje od 1 do 8000 bajtov ali do 2^31-1 bajtov pri uporabi vrednosti MAX (VARBINARY(MAX)).

Drugi binarni tip, tip IMAGE, je zastarel, zato je priporočljivo, da namesto njega uporabite tip VARBINARY.

Druge vrste podatkov

    UNIQUEIDENTIFIER: edinstven GUID (v bistvu niz z edinstveno vrednostjo), ki zaseda 16 bajtov.

    ČASOVNI ŽIG: neko število, ki shrani številko različice vrstice v tabeli. Zaseda 8 bajtov.

    KAZALEC: Predstavlja nabor nizov.

    HIERARCHYID: Predstavlja položaj v hierarhiji.

    SQL_VARIANT: Lahko shrani podatke katerega koli drugega podatkovnega tipa T-SQL.

    XML: Shranjuje dokumente XML ali fragmente dokumentov XML. Zavzame do 2 GB pomnilnika.

    TABLE: Predstavlja definicijo tabele.

    GEOGRAFIJA: Shranjuje geografske podatke, kot sta zemljepisna širina in dolžina.

    GEOMETRIJA : Shranjuje koordinate lokacije na ravnini.



Deliti