Vsak stolpec v tabeli zbirke podatkov mora imeti ime in podatkovni tip. Pri razvoju tabele se moramo odločiti, katere vrste podatkov bomo hranili. Podatkovni tip je vodilo za SQL, da razume, kakšen tip podatkov se pričakuje v posameznem stolpcu, in tudi določa, kako bo SQL deloval s shranjenimi podatki. V MySQL obstajajo trije glavni tipi podatkov: niz, numerični in datum s časom.
Podatkovni tipi nizov
podatkovni tip | opis |
---|---|
CHAR | Niz s fiksno dolžino lahko vsebuje črke, številke in posebne znake. Parameter dolžine določa dolžino stolpca v znakih, ki je lahko od 0 do 255, privzeta vrednost je 1. |
VARCHAR | Spremenljivka dolžine niza lahko vsebuje črke, številke in posebne znake. Parameter velikosti določa največjo dolžino stolpca v znakih in je lahko od 0 do 65535. |
BINARY | Enako kot CHAR(), vendar shrani binarne bajtne nize. Parameter velikosti določa dolžino stolpca v bajtov. Privzeta vrednost je ENA. |
VARBINARY | Enako kot VARCHAR(), vendar shrani nize binarnih bajtov. Parameter velikosti določa največjo dolžino stolpec v bajtih. |
TINYBLOB | BLOB (Binary Large Objects (slo. Binarni veliki objekti)). TINYBLOB so majhni objekti z največjo dolžino 255 bajtov. |
TINYTEXT | Vsebuje niz z največ 255 znaki. |
TEXT | Vsebuje niz z največjo dolžino 65.535 bajtov. |
BLOB | BLOB (Binary Large Objects (slo. Binarni veliki objekti)), vsebuje do 65.535 bajtov podatkov. |
MEDIUMTEXT | Vsebuje niz z največjo dolžino 16.777.215 znakov. |
MEDIUMBLOB | BLOB (Binary Large Objects (slo. Binarni veliki objekti)). Srednji objekti, kjer vsebujejo do 16.777.215 bajtov podatkov. |
LONGTEXT | Vsebuje niz z največjo dolžino 4.294.967.295 znakov. |
LONGBLOB | BLOB (Binary Large Objects (slo. Binarni veliki objekti)). Vsebuje do 4.294.967.295 bajtov podatkov. |
ENUM | Objekt niza, ki ima lahko samo eno vrednost, izbrano s seznama možnih vrednosti. Do 65535 vrednosti lahko podamo na seznamu ENUM. Če je vstavljena vrednost, ki je ni na seznamu, prazna vrednost bo namesto tega vstavljen. Vrednosti so razvrščene po vrstnem redu vnosa. |
SET | Predmet niza, ki ima lahko NIČ ali več vrednosti, izbranih s seznama možnih vrednosti. Seznam SET lahko vsebuje do 64 vrednosti. |
Številski podatkovni tipi
podatkovni tip | opis |
---|---|
BIT(size) | Tip bitne vrednosti, kjer je število bitov na vrednost določeno v velikosti. Parameter velikosti lahko vsebuje vrednost od 1 do 64, privzeta vrednost je 1. |
TINYINT(size) | Zelo majhno celo število, kjer je obseg s predznakom od -128 do 127, obseg brez predznaka pa od 0 do 255. Velikost parameter določa največjo širino prikaza, ki je 255. |
BOOL | Nič (0) velja za napačno vrednost, druge vrednosti pa za pozitivne (resnične). |
BOOLEAN | Enako vrednosti BOOL. |
SMALLINT(size) | Majhno celo število s predznakom od -32768 do 32767 in ne predznakom od 0 do 65535. Velikost parameter določa največjo širino prikaza, ki je 255. |
MEDIUMINT(size) | Srednje celo število ima predznačeno območje med -8388608 in 8388607 ter ne predznačeno območje med 0 in 16777215. Parameter velikosti določa največjo širino prikaza, ki je 255. |
INT(size) | Celo število, katerega predznak obsega od -2147483640 do 2147483647 in ne predznak med 0 in 4294967295. parameter velikosti določa največjo širino prikaza, ki je 255. |
INTEGER(size) | Enako vrednosti INT. |
BIGINT(size) | Veliko celo število ima predznačeno območje med -9223372036854775808 in 9223372036854775807 ter ne predznačeno med 0 in 18446744073709551615, kjer parameter velikosti določa največjo širino prikaza, kar je 255. |
FLOAT(p) | MySQL uporablja vrednost p, da določi, ali naj uporabi FLOAT ali DOUBLE za nastali podatkovni tip. Kdaj število p je od 0 do 24, postane FLOAT, in ko je med 25 in 53, postane podatkovni tip DVOJNO. |
DOUBLE(size, d) | Število števk za decimalno vejico določa parameter d. |
DECIMAL(size, d) | Natančno število s fiksno točko je določeno z velikostjo v parametru d, kjer je največje število 30. Privzeta vrednost za d je 0. |
DEC(size, d) | Enako vrednosti DECIMAL(size, d). |
OPOMBA: Vsi tipi številskih podatkov imajo lahko dodatno možnost, ki je UNSIGNED ali ZEROFILL. Če dodamo možnost UNSIGNED, MySQL onemogoči negativno vrednosti za stolpec. Če dodamo ZEROFILL, samodejno doda tudi MySQL atribut UNSIGNED stolpcu.
Vrste podatkov o datumu in času
podatkovni tip | opis |
---|---|
DATE | Format zapisa je LLLL-MM-DD, za katerega je podprt obseg od 1000-01-01 do 9999-12-31. |
DATETIME() | Kombinacija datuma in časa LLLL-MM-DD HH:MM:SS, za katero je podprt obseg od 1000-01-01 00:00:00 do 9999-12-31 23_59_59. Dodajanje DEFAULT in ON UPDATE v definicijo stolpca za samodejno inicializacijo in posodobite na trenutni datum in čas. |
TIMESTAMP() | Časovni žig Vrednosti TIMESTAMP so shranjene kot število sekund od obdobja Unix (1970-01-01 00:00:00 UTC). Format zapisa je LLLL-MM-DD HH:MM:SS, za katerega je podprt obseg od 1970-01-01 00:00:01 UTC do 2038-01-09 03:14:07 UTC. Samodejna inicializacija in posodabljanje na trenutni datum in čas je mogoče določiti z DEFAULT CURRENT_TIMESTAMP in ON UPDATE CURRENT_TIMESTAMP v definiciji stolpca. |
TIME() | Format časa je HH:MM:SS, za katerega je podprt obseg od -838:59:59 do 838:59:59. |
YEAR | Leto v štirimestnem formatu dovoljuje vrednosti od 1901 do 2155 in 0000. |
Podatkovni tipi nizov
podatkovni tip | opis |
---|---|
char(n) | Niz znakov s fiksno širino. Največja velikost je 8.000 znakov. |
varchar(n) | Niz znakov spremenljive širine. Največja velikost je 8.000 znakov. |
varchar(max) | Niz znakov spremenljive širine. Največja velikost je 1.073.741.824 znakov. |
text | Niz znakov spremenljive širine. Največja velikost je 2 GB besedilnih podatkov. |
nchar | Niz Unicode fiksne širine. Največja velikost je 4000 znakov. |
nvarchar | Spremenljivka z nizom Unicode. Največja velikost je 4000 znakov. |
nvarchar(max) | Spremenljivka z nizom Unicode. Največja velikost je 536.870.912 znakov. |
ntext | Spremenljivka z nizom Unicode. Največja velikost je 2 GB besedilnih podatkov. |
binary(n) | Binarni niz s fiksno širino. Največja velikost je 8000 bajtov. |
varbinary | Binarni niz spremenljive širine. Največja velikost je 8000 bajtov. |
varbinary(max) | Binarni niz spremenljive širine. Največja velikost je 2 GB. |
image | Binarni niz spremenljive širine. Največja velikost je 2 GB. |
Številski podatkovni tipi
podatkovni tip | opis |
---|---|
bit | Celo število, ki je lahko 0, 1 ali NULL. |
tinyint | Omogoča cela števila od 0 do 255. |
smallint | Omogoča cela števila med -32.768 in 32.767. |
int | Omogoča cela števila med -2.147.483.648 in 2.147.483.647. |
bigint | Omogoča cela števila med -9.223.372.036.854.775.808 in 9.223.372.036.854.775.807. |
decimal(x, y) | Fiksna natančnost in merilna števila. Omogoča števila od -10^38+1 do 10^38-1. Parameter x označuje največje skupno število števk, ki jih je mogoče shraniti, in mora biti vrednost od 1 do 38. Privzeta vrednost je 18. Parameter y označuje največje število števk, shranjenih desno od decimalne vejice, in to mora biti vrednost od 0 do x. Privzeta vrednost je 0. |
numeric(x, y) | Fiksna natančnost in merilna števila. Omogoča števila od -10^38+1 do 10^38-1. Parameter x označuje največje skupno število števk, ki jih je mogoče shraniti, in mora biti vrednost od 1 do 38. Privzeta vrednost je 18. Parameter y označuje največje število števk, shranjenih desno od decimalne vejice, in to mora biti vrednost od 0 do x. Privzeta vrednost je 0. |
smallmoney | Denarni podatki od -214.748,3648 do 214.748,3647. |
money | Denarni podatki od -922.337.203.685.477,5808 do 922.337.203.685.477,5807 |
float(n) | Podatki o številkah s plavajočo natančnostjo od -1,79E+308 do 1,79+308. Parameter n je pokazal, ali polje prikazuje zadrževanje 4 ali 8 bajtov. Float(24) vsebuje 4-bajtno polje, nad float(53) pa 8-bajtno polje. Privzeto vrednost n je 53. |
real | Podatki o številkah s plavajočo natančnostjo od -3,40E+38 do 3,40E+38. |
Vrste podatkov o datumu in času
podatkovni tip | opis |
---|---|
datetime | Od 1. januarja 1753 do 31. decembra 999 z natančnostjo 3,33 nanosekunde. |
datetime2 | Od 1. januarja 0001 do 31. decembra 999 z natančnostjo 100 nanosekund. |
smalldatetime | Od 1. januarja 1900 do 6. junija 2079 z natančnostjo 1 minute. |
date | Shranite samo datum. Od 1. januarja 0001 do 31. decembra 9999. |
time | Shranjujte čas le do 100 nanosekund natančno. |
datetimeoffset | Enako kot datetime2 z dodatkom odmika časovnega pasu. |
timestamp | Shrani edinstveno številko, ki se posodobi vsakič, ko je vrstica ustvarjena ali spremenjena. Vrednost časovnega žiga temelji na notranji uri in ne ustreza realnemu času. Vsaka miza ima lahko le enega spremenljivka časovnega žiga. |
Druge vrste podatkov
podatkovni tip | opis |
---|---|
sql_variant | Shrani do 8000 bajtov podatkov različnih vrst podatkov, razen besedila, ntext in časovnega žiga. |
uniqueidentifier | Shranjuje globalni enolični identifikator (GUID). |
xml | Shranjuje podatke v formatu XML, največ 2 GB. |
cursor | Shranite sklic na kazalec, ki se uporablja za operacije baze podatkov. |
table | Shrani niz rezultatov za kasnejšo obdelavo. |