SQL-i andmetüüpide tutvustus

SQL-i andmetüübid, nagu iga teine ​​programmeerimiskeel, määravad, millist tüüpi andmeid veerg või muutuja hoiab. Andmetüüp võib olla ükskõik milline märk, tähemärkide seeria, numbrite, kuupäeva ja kellaaja vaheline. Andmetüüp on tihedalt seotud programmeerimise väga oluline mõiste. See aitab lahendada enamiku tüübi ühilduvuse tõrgetest programmi koostamise ajal.

Liigitaksime SQL andmetüübid kategooriatesse ja uuriksime nende kategooriate all erinevaid tüüpe ja näiteid.

Märkus. Mitte kõik andmebaasihaldussüsteemid ei toeta kõiki andmetüüpe. Näiteks ei toeta Oracle DateTime'i. Need üksikasjad on esitatud koos andmetüübi kirjeldusega artiklis. Andmebaasi kujundamisel on soovitatav seda arvestada. Samamoodi on ka palju muid andmetüüpe, mis on omased konkreetsele andmebaasihaldussüsteemile. Näiteks MS SQL-l on rahaandmete tüüp. Sellised tüübid ei ole üldnimetused ja jäävad selle artikli reguleerimisalast välja.

SQL-andmete tüübid

1. Binaarne

Binaarse andmetüübi korral on binaarsete baidijadade jada. Erinevalt tavalistest tähemärkide stringidest kasutatakse binaarseid stringe ebatraditsiooniliste andmete, näiteks piltide salvestamiseks.

Binaarne (suurus): salvestab binaarsed baidistringid veeru pikkusega, mis on määratletud suuruse parameetriga. Veeru suurus on fikseeritud. Kui suuruseks on määratud 10 baiti ja salvestatud andmed on 5 baiti, on ülejäänud 5 baiti endiselt veeru poolt mällu hõivatud. Need ülejäänud baitid on enamiku SQL-i parserite jaoks paremal pool nullitud. Maksimaalne võimalik suurus on 8000 baiti.

Varbinaarne (suurus): salvestab binaarsed baidistringid veeru pikkusega, mis on määratletud suuruseparameetriga. Veeru suurus ei ole fikseeritud. Kui suuruseks on määratud 10 baiti ja salvestatud andmed on 5 baiti, võtab tulp mällu ainult 5 baiti. Maksimaalne võimalik suurus on 8000 baiti.

Varbinaarne (max): märksõna max määramine parameetris size suurendab maksimaalse võimaliku suuruse 2 GB-ni ja eraldab muutuva suuruse veergudele salvestatud andmete põhjal. Seda andmetüüpi ei toeta MySQL.

Näide:

create table BinaryDataTypes (col_binary BINARY(5), col_varbinary VARBINARY(5));
insert into BinaryDataTypes values (101, 121);
select * from BinaryDataTypes;

insert into BinaryDataTypes values (12345, 123456);
insert into BinaryDataTypes values (123456, 123456);

Viga ilmnes seetõttu, et olime määratlenud veergude suuruseks ainult 5 baiti.

2. märk / string

Need andmetüübid salvestavad kas ühe tähemärgi või stringi moodustava tähemärgiseeria. Nende hulka kuuluvad märgid, numbrid ja erimärgid. Märkide olemus piirdub siiski ainult Unicode-tähemärkidega.

Char (suurus): salvestab kindla pikkusega tähemärgid, mille pikkus on määratud parameetriga suurus. Veeru suurus töötab sarnaselt BINARY andmetüübiga. Vaikimisi on 1 märk. Enamikus andmebaasihaldussüsteemides on maksimaalne väärtus 255.

Varchar (suurus): salvestab muutuva pikkusega märgiribasid. Kuid suuruseparameetriga määratud pikkus määratleb veeru maksimaalse pikkuse. Maksimaalne võimalik pikkus on 65535 tähemärki.

Varchar (max): märksõna max määramisel parameetris size suurendatakse maksimaalset võimalikku suurust 2 GB-ni ja eraldatakse muutuva suurusega veergudele salvestatud andmete põhjal. Seda andmetüüpi ei toeta MySQL.

Tekst: MySQL toetab varchari (max) asemel teksti andmetüüpi. Tekst suurendab ka maksimaalse võimaliku suuruse 2 GB-ni.

Näide:

create table CharacterDataTypes (col_char CHAR(300));

create table CharacterDataTypes (col_char CHAR(20), col_varchar VARCHAR(20), col_text TEXT);
insert into CharacterDataTypes values ('Hello World', 'How you doing?', 'This is an incredibly longer text to demonstrate the data type text in MySQL. The data type text makes it possible to store 2GB of data in a column. That\'s equal to 2*1024*1024*1024 = over 2.14 billion characters. Whoa!');

3. Unicode'i märk / keel

Need andmetüübid salvestavad kas ühe või mitu Unicode-tähemärki.

Nchar (suurus): See sarnaneb char andmetüübiga ja toetab ka Unicode'i tähemärke. Maksimaalset limiiti vähendatakse siiski 4000 baitini.

Nvarchar (suurus): see sarnaneb nvarchari andmetüübiga ja toetab ka Unicode'i tähemärke. Maksimaalset limiiti vähendatakse siiski 4000 baitini.

Nvarchar (max): märksõna max määramisel parameetris size suurendatakse maksimaalne võimalik suurus 1 GB-ni ja jaotatakse salvestatud andmete põhjal veergude jaoks muutuv suurus. Seda andmetüüpi ei toeta MySQL.

Ntext: MySQL toetab nvarchar (max) asemel ntext andmetüüpi. Ntext suurendab ka maksimaalse võimaliku suuruse 1 GB-ni.

Näide:

create table UnicodeCharacterDataTypes (col_unicode_char NCHAR(200));
insert into UnicodeCharacterDataTypes values ('局层局层');
select * from UnicodeCharacterDataTypes;

4. numbriline

Numbrilised andmetüübid toetavad täisarvu ja tegelikke / murdarvulisi / komakohti.

Bit / Bool / Boolean: Need andmetüübid salvestavad ainult kaks väärtust - 0 ja 1. 0 tähistab valet, 1 aga tõest. Natuke toetab enamik andmebaase. Mõned täiustatud andmebaasid toetavad ka tõeväärtusi ja tõeväärtusi.

INT: salvestab kuni 4 baiti suuruseid positiivseid ja negatiivseid täisarvu. See tähendab, et väärtus peab olema vahemikus (-2147483648, 2147483647). Märgistamata märksõna määramisel piirab veerg ainult positiivsete väärtuste salvestamist vahemikus (0, 4294967295).

TINYINT: salvestab kuni 1 baiti suurused positiivsed ja negatiivsed täisarvud. See tähendab, et väärtus peab olema vahemikus (-128, 127). Märgistamata märksõna määramisel piirab veerg ainult positiivsete väärtuste salvestamist vahemikus (0, 255).

Smallint: salvestab kuni 2 baiti suurused positiivsed ja negatiivsed täisarvud. See tähendab, et väärtus peab olema vahemikus (-32768, 32767). Märgistamata märksõna määramisel piirab veerg ainult positiivsete väärtuste salvestamist vahemikus (0, 65535).

Bigint: salvestab kuni 8 baiti suurused positiivsed ja negatiivsed täisarvud. See tähendab, et väärtus peab olema vahemikus (-2 63, 2 63 -1). Märgistamata märksõna määramisel piirab veerg ainult positiivsete väärtuste salvestamist vahemikus (0, 2 64 -1).

Kümnendarv (suurus, D): salvestab kindla punkti numbri. Parameetri suurus täpsustab numbrite koguarvu, d aga täpsustab komajärgsete numbrite arvu. Suuruse ja d vaikeväärtused on vastavalt 10 ja 0.

Ujuk (suurus, D) / Topelt (suurus, D): salvestab ujukoma numbri. Ujukit kasutatakse väiksemate numbrite korral, kuni 4 baiti. Topeltpoed salvestavad suuremad numbrid. Kuid topelt ei toeta kõik andmebaasid.

Õppekavavälised teadmised - fikseeritud ja ujukomaga numbrite erinevus seisneb selles, et komakoht on fikseeritud ühes ja ujuvas teises. Fikseeritud punkt tähendab, et numbrite arv fikseeritakse pärast ja pärast koma. Ujukoma tähendab, et numbrite arv enne ja pärast koma võib muutuda, võrreldes numbrite olulisust numbris.

Näide:

create table NumericDataTypes (col_tinyint_u TINYINT UNSIGNED, col_smallint SMALLINT, col_int INT, col_bigint BIGINT UNSIGNED, col_decimal DECIMAL(5, 2), col_float FLOAT);
insert into NumericDataTypes values (255, -32768, 1234567890, (POWER(2, 63)-1), 987.65, 987.65);

5. Kuupäev ja kellaaeg

  1. Kuupäev: salvestab andmed formaadis AAAA-KK-PP, piiratud vahemikus 1000-01-01 kuni 9999-12-31.
  2. Aeg: salvestab aja formaadis hh: mm: ss.
  3. DateTime: salvestab kuupäeva ja kellaaja.
  4. TimeStamp: ajatemplit kasutatakse ajatempli märkimiseks iga kord, kui tabelisse rida sisestatakse või seda uuendatakse. Tavaliselt tehakse seda märksõnade DEFAULT CURRENT_TIMESTAMP ja ON UPDATE CURRENT_TIMESTAMP kaudu.

Näide:

create table DateTimeDataTypes (col_date DATE, col_time TIME, col_datetime DATETIME, col_ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
insert into DateTimeDataTypes(col_date, col_time, col_datetime) values (CURDATE(), '08:50:41', NOW());

6. Mitmesugused-SQL andmetüübid

  • CLOB: CLOB tähistab tähemärki suuri objekte. Need mahutavad tähemärkide andmeid kuni 2 GB. MySQL seda siiski ei toeta. MySQL kasutab sama saavutamiseks teksti.
  • BLOB: BLOB tähistab binaarseid suuri objekte. Neid kasutatakse kuni 2 GB suuruste binaarsete objektide hoidmiseks. Tavaliselt teisendatakse pildid binaarobjektideks ja salvestatakse BLOB-veergudesse.
  • XML: kasutatakse XML-andmete salvestamiseks.
  • JSON: kasutatakse JSON-i andmete salvestamiseks. MySQL ei toeta.

Järeldus - SQL andmetüübid

SQL-andmetüübid aitavad andmebaasiruumi strateegilisel optimeerimisel palju kaasa. Digitaalses maailmas, kus andmed kasvavad pidevalt hüppeliselt, peab arendaja mõistlikult valima iga andmeühiku tüübi. See aitab vähendada massilise andmesalvestusega seotud kulusid.

Soovitatavad artiklid

See on SQL andmetüüpide juhend. Siin käsitleme sissejuhatust, SQL-andmete tüüpe, tähemärki / stringi, Unicode'i tähemärki / stringi ja numbrilisi. Lisateavet leiate ka meie muudest soovitatud artiklitest -

  1. PostgreSQL andmetüübid
  2. OLAP tüübid
  3. Pahavara tüübid
  4. SQL, kus klausel
  5. PHP märksõnad
  6. C ++ märksõnad
  7. 3 parimat PHP andmetüüpi koos näidetega
  8. INSERT-avalduse rakendamise näited