Úvod do typov údajov SQL

Dátové typy v SQL, rovnako ako akýkoľvek iný programovací jazyk, definujú, aký typ údajov môže stĺpec alebo premenná obsahovať. Typ údajov môže byť čokoľvek od znaku, cez sériu znakov, cez čísla, do dátumu a času. Dátový typ je veľmi zásadný pojem úzko prepojeného programovania. Pomáha vyriešiť väčšinu chýb kompatibility typu počas samotnej kompilácie programu.

V rámci týchto kategórií by sme široko kategorizovali typy údajov SQL a potom preskúmali rôzne typy a príklady.

Poznámka - Nie všetky systémy správy databáz podporujú všetky typy údajov. Napríklad spoločnosť Oracle nepodporuje dátumový čas. Tieto špecifiká sú uvedené spolu s popisom typu údajov v článku. Pri navrhovaní databázy sa odporúča pamätať na to. Podobne existuje mnoho ďalších typov údajov, ktoré sú špecifické pre každý konkrétny systém správy databázy. Napríklad MS SQL má typ údajov o peniazoch. Takéto typy nie sú druhové a presahujú rámec tohto článku.

Typy údajov SQL

1. Binárne

Binárny dátový typ obsahuje sekvenciu binárnych bajtových reťazcov. Na rozdiel od obvyklých znakových reťazcov sa binárne reťazce používajú na ukladanie nekonvenčných údajov, ako sú obrázky.

Binárny (veľkosť): Uloží binárne bajtové reťazce dĺžky stĺpca určené parametrom size. Veľkosť stĺpca je pevná. Ak je veľkosť definovaná ako 10 bajtov a uložené údaje sú 5 bajtov, zostávajúcich 5 bajtov je v pamäti stále obsadených stĺpcom. Tieto zvyšné bajty sú väčšinou SQL analyzátormi vyplnené vpravo. Maximálna možná veľkosť je 8000 bajtov.

Varbinary (size): Uloží binárne bajtové reťazce dĺžky stĺpca určené parametrom size. Veľkosť stĺpca nie je pevná. Ak je veľkosť definovaná ako 10 bajtov a uložené údaje sú 5 bajtov, stĺpec zaberá v pamäti iba 5 bajtov. Maximálna možná veľkosť je 8000 bajtov.

Varbinary (max): Zadaním kľúčového slova max v parametri size sa maximálna možná veľkosť zvýši na 2 GB a na základe uložených údajov sa stĺpcom pridelí premenná veľkosť. MySQL tento typ údajov nepodporuje.

Prí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 chybe dochádza, pretože sme definovali veľkosť stĺpcov iba ako 5 bajtov.

2. Znak / reťazec

Tieto typy údajov ukladajú buď jeden znak alebo sériu znakov tvoriacich reťazec. Patria sem znaky, čísla a špeciálne znaky. Povaha znakov je však obmedzená iba na znaky, ktoré nie sú kódmi Unicode.

Char (size): Uloží reťazce znakov s pevnou dĺžkou, ktoré sú zadané parametrom size. Dimenzovanie stĺpca funguje podobným spôsobom ako typ údajov BINARY. Predvolená veľkosť je 1 znak. Vo väčšine systémov správy databáz je maximum 255.

Varchar (veľkosť): Uloží reťazce znakov s premennou dĺžkou. Dĺžka zadaná parametrom size však definuje maximálnu dĺžku stĺpca. Maximálna možná dĺžka je 65535 znakov.

Varchar (max): Zadaním kľúčového slova max v parametri size sa maximálna možná veľkosť zvýši na 2 GB a na základe uložených údajov sa stĺpcom pridelí premenná veľkosť. MySQL tento typ údajov nepodporuje.

Text: MySQL podporuje typ textových údajov namiesto varchar (max). Text tiež zvyšuje maximálnu možnú veľkosť na 2 GB.

Prí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. Znak / reťazec Unicode

Tieto typy údajov ukladajú jeden alebo reťazec znakov Unicode.

Nchar (veľkosť): Je to podobné typu dát char a podporuje aj znaky Unicode. Maximálny limit je však znížený na 4000 bajtov.

Nvarchar (veľkosť): Je to podobné typu údajov nvarchar a podporuje tiež znaky Unicode. Maximálny limit je však znížený na 4000 bajtov.

Nvarchar (max): Zadaním kľúčového slova max v parametri size sa maximálna možná veľkosť zvýši na 1 GB a na základe uložených údajov sa stĺpcom pridelí premenná veľkosť. MySQL tento typ údajov nepodporuje.

Ntext: MySQL podporuje typ údajov ntext namiesto nvarchar (max). Ntext tiež zvyšuje maximálnu možnú veľkosť na 1 GB.

Príklad:

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

4. Číselné

Číselné typy údajov podporujú celé čísla a reálne / zlomkové / desatinné čísla.

Bit / Bool / Boolean: Tieto dátové typy ukladajú iba dve hodnoty - 0 a 1. 0 označuje false, zatiaľ čo 1 označuje true. Väčšina databáz podporuje bit. Niektoré rozšírené databázy tiež podporujú boolean a boolean.

INT: Uloží kladné a záporné celé čísla až do veľkosti 4 bajtov. To znamená, že hodnota musí byť v rozsahu (-2147483648, 2147483647). Zadanie nepodpísaného kľúčového slova obmedzuje stĺpec na ukladanie iba kladných hodnôt v rozsahu (0, 4294967295).

TINYINT: Uloží kladné a záporné celé čísla až do veľkosti 1 bajtu. To znamená, že hodnota musí byť v rozsahu (-128, 127). Zadanie nepodpísaného kľúčového slova obmedzuje stĺpec na ukladanie iba kladných hodnôt v rozsahu (0, 255).

Smallint: Uloží kladné a záporné celé čísla až do veľkosti 2 bajtov. To znamená, že hodnota musí byť v rozsahu (-32768, 32767). Zadanie nepodpísaného kľúčového slova obmedzuje stĺpec na ukladanie iba kladných hodnôt v rozsahu (0, 65535).

Bigint: Uloží kladné a záporné celé čísla až do veľkosti 8 bajtov. To znamená, že hodnota musí byť v rozsahu (-2 63, 2 63 -1). Zadanie nepodpísaného kľúčového slova obmedzuje stĺpec na ukladanie iba kladných hodnôt v rozsahu (0, 2 64 -1).

Desatinné miesto (veľkosť, D): Uloží číslo s pevným bodom. Veľkosť parametra určuje celkový počet číslic, zatiaľ čo d určuje počet číslic za desatinnou čiarkou. Predvolené hodnoty pre veľkosť ad sú 10 a 0.

Float (veľkosť, D) / Double (veľkosť, D): Uloží číslo s pohyblivou rádovou čiarkou. Float sa používa pre menšie čísla až do veľkosti 4 bajtov. Dvojité obchody ukladajú väčšie čísla. Zdvojenie nie je podporované všetkými databázami.

Znalosti mimo osnovy - Rozdiel medzi číslami s pevnou desatinnou čiarkou a číslami s pohyblivou rádovou čiarkou spočíva v tom, že desatinná čiarka je pevne stanovená v jednom a pohyblivá v inom. Pevný bod znamená, že počet číslic je pevne stanovený za desatinnou čiarou a pred ňou. Pohyblivá čiara znamená, že počet číslic pred desatinnou čiarkou a za ňou sa môže meniť v závislosti od významu číslic v čísle.

Prí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. Dátum a čas

  1. Dátum: Ukladá údaje vo formáte RRRR-MM-DD, obmedzené od 1 000 do 01 999 až 9999 12 12.
  2. Čas: Uloží čas vo formáte hh: mm: ss.
  3. DateTime: Uloží dátum aj čas.
  4. Časová pečiatka : Časová pečiatka sa používa na označenie časovej pečiatky pri každom zadaní alebo aktualizácii riadku v tabuľke. Zvyčajne sa to robí pomocou kľúčových slov DEFAULT CURRENT_TIMESTAMP a ON UPDATE CURRENT_TIMESTAMP.

Prí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ôzne typy údajov SQL

  • CLOB: CLOB znamená Character Large Objects. Dokážu uchovávať znakové dáta až do 2 GB. MySQL však nie je podporované. MySQL používa Text na dosiahnutie toho istého.
  • BLOB: BLOB znamená binárne veľké objekty. Používajú sa na ukladanie binárnych objektov s veľkosťou do 2 GB. Zvyčajne sa obrázky prevádzajú na binárne objekty a ukladajú sa do stĺpcov BLOB.
  • XML: Používa sa na ukladanie údajov XML.
  • JSON: Používa sa na ukladanie údajov JSON. MySQL nie je podporované.

Záver - typy údajov SQL

Dátové typy SQL veľa pomáhajú pri strategickej optimalizácii databázového priestoru. V digitálnom svete, kde údaje neustále rastú exponenciálnou rýchlosťou, musí vývojár rozumne zvoliť typ pre každý bit údajov. Pomáha to pri znižovaní nákladov vznikajúcich v dôsledku rozsiahleho ukladania údajov.

Odporúčané články

Toto je sprievodca typmi údajov SQL. Tu diskutujeme úvod, typy údajov SQL, znak / reťazec, znak / reťazec Unicode a číselné. Viac informácií nájdete aj v ďalších navrhovaných článkoch -

  1. Dátové typy PostgreSQL
  2. Typy OLAP
  3. Typy škodlivého softvéru
  4. SQL KDE Doložka
  5. Kľúčové slová PHP
  6. C ++ Kľúčové slová
  7. Top 3 dátové typy PHP s príkladmi
  8. Príklady implementácie vyhlásenia INSERT