Úvod do datových typů SQL

Datové typy v SQL, stejně jako jakýkoli jiný programovací jazyk, definují, jaký typ dat může sloupec nebo proměnná obsahovat. Typem dat může být cokoli od znaku, přes řadu znaků, přes čísla, datum a čas. Datový typ je velmi klíčovým pojmem úzce spjatého programování. Pomáhá vyřešit většinu chyb kompatibility typu během samotné kompilace programu.

V těchto kategoriích bychom široce rozdělili typy dat SQL a poté prozkoumali různé typy a příklady.

Poznámka : Ne všechny systémy správy databází podporují všechny typy dat. Oracle například nepodporuje DateTime. Tato specifika jsou uvedena spolu s popisem typu dat v článku. Při navrhování databáze se doporučuje mít na paměti toto. Podobně existuje mnoho dalších datových typů, které jsou specifické pro konkrétní systém správy databáze. Například MS SQL má datový typ peněz. Tyto typy nejsou druhové a jsou nad rámec tohoto článku.

Typy dat SQL

1. Binární

Binární datový typ obsahuje sekvenci binárních bajtových řetězců. Na rozdíl od obvyklých znakových řetězců se binární řetězce používají k ukládání nekonvenčních dat, jako jsou obrázky.

Binární (velikost): Ukládá binární bajtové řetězce délky sloupce určené parametrem velikost. Velikost sloupce je pevná. Pokud je velikost definována jako 10 bajtů a uložená data jsou 5 bajtů, zbývajících 5 bajtů je stále obsazeno v paměti sloupcem. Tyto zbývající bajty jsou většinou analyzátorů SQL vyplněny vpravo. Maximální možná velikost je 8000 bytů.

Varbinary (size): Ukládá binární bajtové řetězce délky sloupce určené parametrem size. Velikost sloupce není pevná. Pokud je velikost definována jako 10 bajtů a uložená data jsou 5 bajtů, zabírá sloupec v paměti pouze 5 bajtů. Maximální možná velikost je 8000 bytů.

Varbinary (max): Zadáním max. Klíčového slova v parametru size se maximální možná velikost zvětší na 2 GB a na základě uložených dat se sloupce přidělí proměnná velikost. MySQL tento datový typ nepodporuje.

Příklad:

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

K chybě dochází, protože jsme definovali velikost sloupců pouze jako 5 bajtů.

2. Znak / řetězec

Tyto datové typy ukládají jeden znak nebo řadu znaků tvořících řetězec. Patří sem znaky, čísla a speciální znaky. Povaha znaků je však omezena pouze na znaky jiné než Unicode.

Char (size): Ukládá řetězce znaků pevné délky délky určené parametrem size. Dimenzování sloupce funguje podobně jako u datového typu BINARY. Výchozí velikost je 1 znak. Ve většině systémů správy databází je maximum 255.

Varchar (size): Ukládá řetězce znaků s proměnnou délkou. Délka zadaná parametrem size však definuje maximální délku sloupce. Maximální možná délka je 65535 znaků.

Varchar (max): Zadáním max. Klíčového slova v parametru size se maximální možná velikost zvětší na 2 GB a na základě uložených dat se sloupce přidělí proměnná velikost. MySQL tento datový typ nepodporuje.

Text: MySQL podporuje typ textových dat namísto varchar (max). Text také zvyšuje maximální možnou velikost na 2 GB.

Příklad:

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 Character / String

Tyto typy dat ukládají jeden nebo řetězec znaků Unicode.

Nchar (velikost): Je to podobné typu dat char a podporuje také znaky Unicode. Maximální limit je však snížen na 4000 bytů.

Nvarchar (velikost): Je to podobné typu dat nvarchar a podporuje také znaky Unicode. Maximální limit je však snížen na 4000 bytů.

Nvarchar (max): Zadáním max. Klíčového slova v parametru size se maximální možná velikost zvětší na 1 GB a na základě uložených dat se sloupce přidělí proměnná velikost. MySQL tento datový typ nepodporuje.

Ntext: MySQL podporuje typ dat ntext namísto nvarchar (max). Ntext také zvyšuje maximální možnou velikost na 1 GB.

Příklad:

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

4. Číselné

Číselné typy dat podporují celá čísla a reálná / zlomková / desetinná čísla.

Bit / Bool / Boolean: Tyto datové typy ukládají pouze dvě hodnoty - 0 a 1. 0 označuje false, zatímco 1 označuje true. Většina databází podporuje bit. Některé pokročilé databáze také podporují boolean a boolean.

INT: Ukládá kladná a záporná celá čísla až do velikosti 4 bajtů. To znamená, že hodnota musí být v rozsahu (-2147483648, 2147483647). Zadání nepodepsaného klíčového slova omezí, aby sloupec ukládal pouze kladné hodnoty v rozsahu (0, 4294967295).

TINYINT: Ukládá kladná a záporná celá čísla až do velikosti 1 bajtu. To znamená, že hodnota musí být v rozsahu (-128, 127). Zadání nepodepsaného klíčového slova omezí, aby sloupec ukládal pouze kladné hodnoty v rozsahu (0, 255).

Smallint: Uloží kladná a záporná celá čísla až do velikosti 2 bajtů. To znamená, že hodnota musí být v rozsahu (-32768, 32767). Zadání nepodepsaného klíčového slova omezí, aby sloupec ukládal pouze kladné hodnoty v rozsahu (0, 65535).

Bigint: Uloží pozitivní a negativní celá čísla až do velikosti 8 bajtů. To znamená, že hodnota musí být v rozsahu (-2 63, 2 63 -1). Zadání klíčového slova bez znaménka omezí, aby sloupec ukládal pouze kladné hodnoty v rozsahu (0, 2 64 -1).

Decimal (size, D): Uloží číslo s pevným bodem. Velikost parametru udává celkový počet číslic, zatímco d určuje počet číslic za desetinnou čárkou. Výchozí hodnoty pro velikost ad jsou 10 a 0.

Float (velikost, D) / Double (velikost, D): Uloží číslo s pohyblivou řádovou čárkou. Float se používá pro menší čísla až do velikosti 4 bajtů. Dvojitá prodejna větších čísel. Double však není podporována všemi databázemi.

Znalosti mimo sylabus - Rozdíl mezi čísly s pevnou desetinnou čárkou a plovoucí desetinnou čárkou spočívá v tom, že desetinná tečka je pevná v jedné a plovoucí v druhé. Pevná čárka znamená, že počet číslic je pevně stanoven za desetinnou čárkou a před ní. Pohyblivá čárka znamená, že počet číslic před a za desetinnou čárkou se může lišit v závislosti na významu číslic v čísle.

Příklad:

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. Datum a čas

  1. Datum: Ukládá data ve formátu RRRR-MM-DD, omezeno od 1000-01-01 do 9999-12-31.
  2. Čas: Uloží čas ve formátu hh: mm: ss.
  3. DateTime: Uloží datum i čas.
  4. Časové razítko : Časové razítko se používá k označení časového razítka, kdykoli je do tabulky vložen nebo aktualizován řádek. Obvykle se to provádí pomocí klíčových slov DEFAULT CURRENT_TIMESTAMP a ON UPDATE CURRENT_TIMESTAMP.

Příklad:

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. Různé typy dat SQL

  • CLOB: CLOB znamená Character Large Objects. Mohou pojmout znaková data až 2 GB. MySQL však není podporována. MySQL používá k dosažení stejného textu text.
  • BLOB: BLOB znamená Binární velké objekty. Používají se k ukládání binárních objektů o velikosti až 2 GB. Obvykle jsou obrázky převedeny na binární objekty a ukládány do sloupců BLOB.
  • XML: Používá se k ukládání dat XML.
  • JSON: Používá se pro ukládání dat JSON. MySQL není podporováno.

Závěr - datové typy SQL

Datové typy SQL hodně pomáhají při strategické optimalizaci databázového prostoru. V digitálním světě, kde data neustále rostou exponenciální rychlostí, musí vývojář moudře zvolit typ pro každý kousek dat. To pomáhá při snižování nákladů vzniklých v důsledku masivního ukládání dat.

Doporučené články

Toto je průvodce typy dat SQL. Zde diskutujeme Úvod, Druhy dat SQL, Znak / Řetězec, Unicode Znaky / Řetězec a Numeric. Další informace naleznete také v dalších navrhovaných článcích -

  1. Datové typy PostgreSQL
  2. Druhy OLAP
  3. Typy malwaru
  4. SQL KDE Doložka
  5. Klíčová slova PHP
  6. Klíčová slova C ++
  7. Top 3 datové typy PHP s příklady
  8. Příklady implementace příkazu INSERT