Johdatus SQL-tietotyyppeihin

SQL: n tietotyypit, kuten mikä tahansa muu ohjelmointikieli, määrittelevät, minkä tyyppisiä tietoja sarake tai muuttuja voi pitää. Tietotyyppi voi olla mikä tahansa merkistä, merkkisarjoista, numeroista, päivämäärään ja aikaan. Tietotyyppi on erittäin tärkeä käsite tiukasti kytketystä ohjelmoinnista. Se auttaa ratkaisemaan suurimman osan tyypin yhteensopivuusvirheistä itse ohjelman kokoamisen aikana.

Luokittelemme laajasti SQL-tietotyypit ja tutkimme sitten erilaisia ​​tyyppejä ja esimerkkejä noihin luokkiin.

Huomaa - kaikki tietokannan hallintajärjestelmät eivät tue kaikkia tietotyyppejä. Esimerkiksi Oracle ei tue DateTimea. Nämä yksityiskohdat on annettu yhdessä artikkelissa olevan tietotyypin kuvauksen kanssa. On suositeltavaa ottaa tämä huomioon tietokantaa suunniteltaessa. Samoin on monia muita tietotyyppejä, jotka ovat erityisiä tietylle tietokannan hallintajärjestelmälle. Esimerkiksi MS SQL: llä on rahatietotyyppi. Tällaiset tyypit eivät ole yleisiä ja ovat tämän artikkelin soveltamisalan ulkopuolella.

Tyypit SQL-tietoja

1. Binaarinen

Binaaritietotyyppi sisältää sekvenssin binaaritavujonoja. Toisin kuin tavalliset merkkijonot, binaarijonoja käytetään epätavanomaisen datan, kuten kuvien, tallentamiseen.

Binaari (koko): Tallentaa binaariset tavujonot, joiden sarakkeen pituus määritetään kokoparametrilla. Pylvään koko on kiinteä. Jos koon määritelmä on 10 tavua ja tallennettu data on 5 tavua, jäljellä olevat 5 tavua on edelleen sarakkeen käytössä muistissa. Nämä jäljellä olevat tavut on nollattu oikealle useimpien SQL-jäsennysten avulla. Suurin mahdollinen koko on 8000 tavua.

Varbinaarinen (koko): Tallentaa binaariset tavujonot, joiden sarakkeen pituus määritetään kokoparametrilla. Sarakkeen kokoa ei ole vahvistettu. Jos koko on määritelty 10 tavuksi ja tallennettu data on 5 tavua, sarake vie vain 5 tavua muistiin. Suurin mahdollinen koko on 8000 tavua.

Varbinaarinen (max): Avainsanan max määrittäminen kokoparametrissa suurentaa suurimman mahdollisen koon 2 Gt: ksi ja jakaa muuttuvan koon sarakkeisiin tallennetun tiedon perusteella. MySQL ei tue tätä tietotyyppiä.

Esimerkki:

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

Virhe ilmenee, koska olimme määrittäneet sarakkeiden koon vain 5 tavua.

2. Merkki / merkkijono

Nämä tietotyypit tallentavat joko yhden merkin tai merkkisarjan, joka muodostaa merkkijonon. Näitä ovat merkit, numerot ja erikoismerkit. Merkkien luonne rajoittuu kuitenkin vain muihin kuin Unicode-merkkeihin.

Char (koko): Tallentaa kiinteät pituusmerkkijonot, joiden koko on parametrilla määritetty. Pylvään koko toimii samalla tavalla kuin BINARY-tietotyyppi. Oletuskoko on 1 merkki. Enimmäismäärä on 255 useimmissa tietokannan hallintajärjestelmissä.

Varchar (koko): Tallentaa muuttuvan pituiset merkkijonot. Kokoparametrin määrittelemä pituus määrittelee kuitenkin sarakkeen enimmäispituuden. Suurin mahdollinen pituus on 65535 merkkiä.

Varchar (max): Avainsanan max määrittäminen kokoparametrissa nostaa suurimman mahdollisen koon 2 Gt: ksi ja jakaa muuttuvan koon sarakkeisiin tallennetun tiedon perusteella. MySQL ei tue tätä tietotyyppiä.

Teksti: MySQL tukee tekstitietotyyppiä varchar (enint.) Sijasta. Teksti lisää myös suurimman mahdollisen koon 2 Gt: ksi.

Esimerkki:

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-merkki / merkkijono

Nämä tietotyypit tallentavat joko yhden tai merkkijonon Unicode-merkkejä.

Nchar (koko): Tämä muistuttaa char-datatyyppiä ja tukee myös Unicode-merkkejä. Enimmäisraja alennetaan kuitenkin 4000 tavuun.

Nvarchar (koko): Tämä on samanlainen kuin nvarchar-tietotyyppi ja tukee myös Unicode-merkkejä. Enimmäisraja alennetaan kuitenkin 4000 tavuun.

Nvarchar (max): Avainsanan max määrittäminen kokoparametrissa suurentaa suurimman mahdollisen koon 1 Gt: ksi ja jakaa muuttuvan koon sarakkeisiin tallennetun tiedon perusteella. MySQL ei tue tätä tietotyyppiä.

Ntext: MySQL tukee ntext-tietotyyppiä nvarchar (enint.) Sijasta. Ntext lisää myös suurimman mahdollisen koon 1 Gt: ksi.

Esimerkki:

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

4. Numeerinen

Numeeriset tietotyypit tukevat kokonaislukuja ja todellisia / murto / desimaalilukuja.

Bitti / Bool / Boolean: Nämä tietotyypit tallentavat vain kaksi arvoa - 0 ja 1. 0 tarkoittaa vääriä ja 1 merkitsee totta. Useimmat tietokannat tukevat vähän. Jotkut edistyneet tietokannat tukevat myös bool- ja boolean-järjestelmiä.

INT: Tallentaa enintään 4 tavun positiivisia ja negatiivisia kokonaislukuja. Tämä tarkoittaa, että arvon on oltava alueella (-2147483648, 2147483647). Allekirjoittamatta allekirjoittamatonta avainsanaa rajoittaa sarakkeen tallentamaan vain positiiviset arvot alueelle (0, 4294967295).

TINYINT: Tallentaa positiivisia ja negatiivisia kokonaislukuja, joiden koko on enintään 1 tavu. Tämä tarkoittaa, että arvon on oltava alueella (-128, 127). Allekirjoittamatta allekirjoittamatonta avainsanaa rajoitetaan sarake tallentamaan vain positiiviset arvot alueelle (0, 255).

Smallint: Tallentaa enintään 2 tavun positiivisia ja negatiivisia kokonaislukuja. Tämä tarkoittaa, että arvon on oltava alueella (-32768, 32767). Allekirjoittamattoman avainsanan määrittäminen rajoittaa sarakkeen tallentamaan vain positiiviset arvot alueelle (0, 65535).

Bigint: Tallentaa enintään 8 tavun positiivisia ja negatiivisia kokonaislukuja. Tämä tarkoittaa, että arvon on oltava alueella (-2 63, 2 63 -1). Allekirjoittamattoman avainsanan määrittäminen rajoittaa sarakkeen tallentamaan vain positiiviset arvot alueelle (0, 2 64 -1).

Desimaali (koko, D): Tallentaa kiinteän pisteen numeron. Parametrin koko määrittelee numeroiden kokonaismäärän, kun taas d määrittää desimaalin tarkkuudella seuraavien numeroiden lukumäärän. Koon ja d: n oletusarvot ovat vastaavasti 10 ja 0.

Kelluva (koko, D) / Tupla (koko, D): Tallentaa liukulukun numeron. Kellua käytetään pienempiin numeroihin, joiden koko on enintään 4 tavua. Tuplaa tallentaa suurempia numeroita. Kaikkia tietokantoja ei kuitenkaan tueta kaksinkertaista.

Ohjelman ulkopuolinen tieto - Kiinteiden ja liukulukujen ero on siinä, että desimaalipiste on kiinteä yhdessä ja kelluu toisessa. Kiinteä piste tarkoittaa, että numeroiden lukumäärä on kiinteä desimaalin jälkeen ja sen jälkeen. Liukuluku tarkoittaa, että numeroiden määrä ennen desimaalia ja sen jälkeen voi vaihdella numeron merkityksen suhteen.

Esimerkki:

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. Päivämäärä ja aika

  1. Päivämäärä: Tallentaa tiedot muodossa VVVV-KK-PP, rajoitettu välille 1000-01-01 - 9999-12-31.
  2. Aika: Tallentaa ajan muodossa hh: mm: ss.
  3. DateTime: Tallentaa sekä päivämäärän että kellonajan.
  4. Aikaleima: Aikaleimaa käytetään aikaleiman merkitsemiseen, kun rivi syötetään tai päivitetään taulukkoon. Tämä tehdään yleensä avainsanoilla DEFAULT CURRENT_TIMESTAMP ja ON UPDATE CURRENT_TIMESTAMP.

Esimerkki:

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. Sekalaiset-SQL-tietotyypit

  • CLOB: CLOB tarkoittaa merkkejä suurista esineistä. He voivat pitää merkkitietoja korkeintaan 2 Gt. MySQL ei kuitenkaan tue sitä. MySQL käyttää tekstiä saavuttaaksesi saman.
  • BLOB: BLOB tarkoittaa binaarisia suurobjekteja. Niitä käytetään enintään 2 Gt: n kokoisten binaariobjektien tallentamiseen. Yleensä kuvat muunnetaan binaariobjekteiksi ja tallennetaan BLOB-sarakkeisiin.
  • XML: Käytetään XML-tietojen tallentamiseen.
  • JSON: Käytetään JSON-tietojen tallentamiseen. MySQL ei tue sitä.

Johtopäätös - SQL-tietotyypit

SQL-tietotyypit auttavat paljon tietokantatilan strategisessa optimoinnissa. Digitaalisessa maailmassa, jossa data kasvaa jatkuvasti eksponentiaalisella nopeudella, kehittäjän on viisaasti valittava tyyppi jokaiselle datalle. Tämä auttaa vähentämään kustannuksia, jotka johtuvat massiivisesta tietojen varastoinnista.

Suositellut artikkelit

Tämä on opas SQL-tietotyyppeihin. Tässä keskustellaan johdannosta, SQL-tietotyypeistä, merkeistä / merkkijonoista, Unicode-merkeistä / merkkijonoista ja numeerisista. Voit myös käydä läpi muiden ehdotettujen artikkeleidemme saadaksesi lisätietoja -

  1. PostgreSQL-tietotyypit
  2. OLAP-tyypit
  3. Haittaohjelmien tyypit
  4. SQL WHERE -lause
  5. PHP-avainsanat
  6. C ++ avainsanat
  7. 3 suosituinta PHP-tietotyyppiä
  8. Esimerkkejä INSERT-lausunnon toteuttamisesta