Bevezetés az SQL adattípusokba

Az SQL adattípusai, csakúgy, mint bármely más programozási nyelv, meghatározzák, hogy milyen típusú adatokat tarthat az oszlop vagy a változó. Az adatok típusa bármilyen lehet, egy karaktertől kezdve, egy karakter sorozaton át, a számokig, a dátumig és az időig. Az adattípus a szorosan kapcsolt programozás nagyon fontos fogalma. Segít megoldani a legtöbb kompatibilitási hibát a program összeállításakor.

Általánosságban kategorizálnánk az SQL adattípusokat, majd különféle típusokat és példákat fedeznénk fel ezekben a kategóriákban.

Megjegyzés : Nem minden adatbázis-kezelő rendszer támogatja az összes adattípust. Az Oracle például nem támogatja a DateTime szolgáltatást. Ezeket a részleteket a cikkben található adattípus leírással együtt adjuk meg. Javasoljuk, hogy ezt ügyeljen az adatbázis tervezése során. Hasonlóképpen, sok más adattípus is jellemző az adott adatbázis-kezelő rendszerre. Például az MS SQL-nek pénzadat-típusa van. Az ilyen típusok nem általánosak, és túlmutatnak e cikk alkalmazási körén.

Az SQL adatok típusai

1. Bináris

A bináris adattípus a bináris bájt karakterláncok sorozatát tartalmazza. A szokásos karakterláncoktól eltérően a bináris karakterláncokat szokatlan adatok, például képek tárolására használják.

Bináris (méret): A méret paraméter által megadott oszlophosszú bináris bájt sorokat tárolja. Az oszlop mérete rögzített. Ha a méret 10 bájt, és a tárolt adatok 5 bájt, akkor a fennmaradó 5 bájtot továbbra is az oszlop foglalja el a memóriában. Ezeket a fennmaradó bájtot nullára nem töltik jobbra a legtöbb SQL elemző. A maximálisan lehetséges méret 8000 bájt.

Varbináris (méret): A méretparaméter által megadott oszlophosszú bináris bájt sorokat tárolja . Az oszlop mérete nincs rögzítve. Ha a méret 10 bájt, és a tárolt adatok 5 bájt, az oszlop csak 5 bájtot foglal el a memóriában. A maximálisan lehetséges méret 8000 bájt.

Varbináris (max): Ha megadja a maximális kulcsszót a méret paraméterben, a maximális lehetséges méret 2 GB-ra növekszik, és a tárolt adatok alapján változó méretet oszt fel oszlopokra. A MySQL nem támogatja ezt az adattípust.

Példa:

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

A hiba azért fordul elő, mert az oszlopok méretét csak 5 bájtként határoztuk meg.

2. Karakter / karakterlánc

Ezek az adattípusok akár egyetlen karaktert, akár egy karakterláncot alkotó karaktersorozatot tárolnak. Ide tartoznak a karakterek, számok és speciális karakterek. A karakter (ek) jellege azonban csak a nem Unicode karakterekre korlátozódik.

Char (méret): A méretparaméter által megadott hosszúságú rögzített hosszúságú karakterláncokat tárolja. Az oszlop méretezése hasonló módon működik, mint a BINARY adattípus. Az alapértelmezett méret 1 karakter. A legtöbb adatbázis-kezelő rendszerben a maximális érték 255.

Varchar (méret): Változó hosszúságú karakterláncokat tárol. A méret paraméter által megadott hosszúság azonban meghatározza az oszlop maximális hosszát. A maximálisan lehetséges hosszúság 65535 karakter.

Varchar (max): A max kulcsszó megadása a size paraméterben a maximális lehetséges méretet 2 GB-ra növeli, és a tárolt adatok alapján változó méretet oszt fel oszlopokra. A MySQL nem támogatja ezt az adattípust.

Szöveg: A MySQL a varchar (max) helyett szöveges adattípust támogat. A szöveg a maximális lehetséges méretet 2 GB-ra is növeli.

Példa:

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 karakter / karakterlánc

Ezek az adattípusok akár egyetlen, akár egy sor Unicode karaktert tárolnak.

Nchar (méret): Ez hasonló a char adat típusához, és támogatja az Unicode karaktereket is. A maximális korlátozást azonban 4000 bájtra csökkentik.

Nvarchar (méret): Ez hasonló a nvarchar adattípushoz, és támogatja az Unicode karaktereket is. A maximális korlátozást azonban 4000 bájtra csökkentik.

Nvarchar (max): Ha a maximális kulcsszót megadja a size paraméterben, a maximális lehetséges méret 1 GB-ra növekszik, és a tárolt adatok alapján változó méretet oszt fel oszlopokra. A MySQL nem támogatja ezt az adattípust.

Ntext: A MySQL az nvarchar (max) helyett az ntext adattípust támogatja. Az Ntext a lehető legnagyobb méretet 1 GB-ra is növeli.

Példa:

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

4. Numerikus

A numerikus adattípusok egész értékeket és valós / tört / tizedes számokat támogatnak.

Bit / Bool / Boolean: Ezek az adattípusok csak két értéket tárolnak - 0 és 1. 0 hamis, 1 pedig hamis. A legtöbb adatbázis egy kicsit támogatja. Néhány fejlett adatbázis támogatja a bool és a boolean fájlokat is.

INT: Legfeljebb 4 bájt méretű pozitív és negatív egészeket tárol. Ez azt jelenti, hogy az értéknek (-2147483648, 2147483647) tartományba kell esnie. Az aláírás nélküli kulcsszó megadásával az oszlop csak a pozitív értékeket tárolja a tartományban (0, 4294967295).

TINYINT: Legfeljebb 1 bájt méretű pozitív és negatív egészeket tárol . Ez azt jelenti, hogy az értéknek (-128, 127) tartományba kell esnie. Az aláírás nélküli kulcsszó megadásával az oszlop csak a pozitív értékeket tárolja a tartományban (0, 255).

Smallint: Legfeljebb 2 bájt méretű pozitív és negatív egészeket tárol . Ez azt jelenti, hogy az értéknek a tartományba kell esnie (-32768, 32767). Az aláírás nélküli kulcsszó megadásával az oszlop csak a pozitív értékeket tárolja a tartományban (0, 65535).

Bigint: Legfeljebb 8 bájt méretű pozitív és negatív egészeket tárol. Ez azt jelenti, hogy az értéknek (-2 63, 2 63 -1) tartományba kell esnie. Az aláírás nélküli kulcsszó megadásával az oszlop csak a pozitív értékeket tárolja a tartományban (0, 2 64 -1).

Tizedes (méret, D): rögzített pontot tárol. A paraméterméret a számjegyek teljes számát adja meg, míg d a tizedespontot követő számjegyek számát adja meg. A méret és d alapértelmezett értékei 10 és 0.

Úszó (méret, D) / Dupla (méret, D): Lebegőpontos számot tárol. Az úszó kisebb, 4 byte méretű számokhoz használható. Dupla tárolja a nagyobb számokat. A duplát azonban nem minden adatbázis támogatja.

Tantervön kívüli tudás - A rögzített és a lebegőpontos számok közötti különbség az, hogy a tizedes pont az egyikben rögzített, a másikban pedig a lebegő. Rögzített pont azt jelenti, hogy a számjegyek száma rögzítve van a tizedes pont után és előtt. A lebegőpontos pont azt jelenti, hogy a tizedes pont előtti és utáni számjegyek száma a számban szereplő számjegy fontosságához viszonyítva változhat.

Példa:

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. Dátum és idő

  1. Dátum: Az adatokat ÉÉÉÉ-HH-NN formátumban tárolja, 1000-01-01-től 9999-12-31-ig korlátozva.
  2. Idő: Az időt hh: mm: ss formátumban tárolja.
  3. DateTime: A dátumot és az időt tárolja .
  4. Időbélyeg: Az időbélyegzőt időbélyeg megjelölésére használják, amikor egy sort beírnak vagy frissítenek a táblázatban. Ezt általában a DEFAULT CURRENT_TIMESTAMP és a UPDATE CURRENT_TIMESTAMP kulcsszavakon keresztül végzik.

Példa:

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. Egyéb SQL adattípusok

  • CLOB: A CLOB a Karakter nagyobjektumokat jelenti. Legfeljebb 2 GB-os karaktereket tudnak tárolni. A MySQL azonban nem támogatja. A MySQL a szöveget használja ugyanezen eléréséhez.
  • BLOB: A BLOB a bináris nagyobjektumokat jelenti. Legfeljebb 2 GB méretű bináris objektumok tárolására szolgálnak. A képeket általában bináris objektumokká alakítják és BLOB oszlopokban tárolják.
  • XML: XML adatok tárolására szolgál.
  • JSON: JSON adatok tárolására szolgál. A MySQL nem támogatja.

Következtetés - SQL adattípusok

Az SQL adattípusok sokat segítenek az adatbázis-terület stratégiai optimalizálásában. A digitális világban, ahol az adatok exponenciális ütemben növekszenek, a fejlesztõnek bölcsen kell kiválasztania az egyes adattípusokat. Ez elősegíti a hatalmas adattárolás miatt felmerülő költségek csökkentését.

Ajánlott cikkek

Ez az SQL adattípusok útmutatója. Itt tárgyaljuk a Bevezetést, az SQL adatok típusait, karaktert / karakterláncot, Unicode karaktert / karakterláncot és numerikusokat. A további javasolt cikkeken keresztül további információkat is megtudhat -

  1. PostgreSQL adattípusok
  2. Az OLAP típusai
  3. Malware típusok
  4. SQL WHERE záradék
  5. PHP kulcsszavak
  6. C ++ Kulcsszavak
  7. A PHP 3 legfontosabb adattípusa, példákkal
  8. Példák az INSERT nyilatkozat végrehajtására