GNU/Linux >> Znalost Linux >  >> Cent OS

MySQL datové typy

Úvod

Datové typy MySQL je důležité pochopit, než začnete vytvářet databázi MySQL a pracovat s ní. Pokud správně přiřadíte každý sloupec, zajistíte, že databáze bude optimalizována a data budou bezpečně uložena.

V tomto tutoriálu se dozvíte o různých typech dat MySQL.

Co jsou datové typy v MySQL?

Název a datový typ definují každý sloupec v databázové tabulce. Zadaný datový typ říká MySQL, jaký druh hodnot bude ukládat, kolik místa vyžadují a jaký typ operací může provádět s tímto typem dat.

Datové typy MySQL

Existuje mnoho různých datových typů, které můžete uložit do tabulky MySQL.

Jsou seskupeny do pěti hlavních kategorií:

  1. Číselné datové typy
  2. Datové typy data a času
  3. Datové typy řetězců
  4. Typy prostorových dat
  5. Datové typy JSON

Čtěte dále a zjistěte více o každé skupině a uvidíte, jaké datové typy zahrnují.

Číselné datové typy

Při ukládání čísel do databázového sloupce použijte jeden z číselných datových typů. MySQL podporuje přesné i přibližné číselné typy dat.

Číselná kategorie je dále rozdělena do následujících skupin:

  • Celočíselné datové typy
  • Datové typy s plovoucí desetinnou čárkou
  • Datové typy s pevným bodem
  • Datové typy bitové hodnoty

Typy celých čísel

Celočíselné datové typy se používají pro celá čísla (celá čísla). Zahrnují kladné i záporné hodnoty. Nezpracovávají však zlomková čísla.

Proto čísla jako 30 a -5435 mohou být uložena jako celočíselné datové typy, zatímco 5, 3 nebo 1/5 nikoli.

Typy celých čísel jsou se znaménkem nebo bez znaménka. Dále se dělí podle velikosti, liší se délkou a dosahem.

Bajty Rozsah (nepodepsaný) Rozsah (podepsaný)
TINYINT 1 od 0 do 255 od -128 do 127
SMALLINT 2 od 0 do 65535 od -32768 do 32767
MEDIUMINT 3 od 0 do 16777215 od -8388608 do 8388607
INT 4 od 0 do 4294967295 od -2147483648 do 2147483647
VELKÝ 8 od 0 do 18446744073709551615 od -9223372036854775808 do 9223372036854775807

TINYINT je velmi malé celé číslo, které používá 1 bajt skladování. Skládá se až ze 4 číslic . Jeho rozsah bez znaménka je od 0 na 255 . Pokud je podepsáno, má rozsah od -128 na 127 .

SMALLINT je malé celé číslo, které používá 2 bajty skladování. Skládá se až z 5 číslic . Jeho rozsah bez znaménka je od 0 na 65535 . Při podpisu má rozsah od -32768 na 32767 .

MEDIUMINT je středně velké celé číslo, které používá 3 bajty skladování. Může mít až 9 číslic . Pokud není podepsáno, má rozsah od 0 na 16777215 . Podepsáno, jeho minimální hodnota je -8388608 , přičemž jeho maximální hodnota je 8388607 .

INT je celé číslo, které používá 4 bajty skladování. Používá až 11 číslic . Pokud není podepsán, pohybuje se od 0 na 4294967295 . Pokud je podepsáno, má rozsah od -2147483648 na 2147483647 .

BIGINT je velké celé číslo, které používá 8 bajtů skladování. Má až 20 číslic . Jeho minimální hodnota se znaménkem je 0 , přičemž jeho maximální hodnota se znaménkem je 18446744073709551615 . Pokud je podepsán, má rozsah od -9223372036854775808 na 9223372036854775807 .

Typy s plovoucí desetinnou čárkou

Číselné datové typy s plovoucí desetinnou čárkou jsou racionální čísla používaná k reprezentaci přibližných hodnot. Používejte datové typy s plovoucí desetinnou čárkou pro vysoce přesné výpočty.

Mezi typy s plovoucí desetinnou čárkou patří:

  • FLOAT představuje hodnoty s jednou přesností, které používají 4 bajty a zahrnují až 6 nebo 7 platných číslic.
  • DOUBLE představují hodnoty s dvojitou přesností, které používají 8 bajtů a zahrnují až 15 nebo 16 platných číslic.

Základní syntaxe pro definici FLOAT /DOUBLE datový typ je FLOAT(M,D) /DOUBLE(M,D) .

M představuje celkový počet číslic, zatímco D je počet desetinných míst. Například hodnota 5143,234 by bylo definováno jako 7,3 protože má celkem 7 číslic a 3 číslice za desetinnou čárkou.

Můžete také použít FLOAT(P) syntaxe k určení datového typu s plovoucí desetinnou čárkou, kde P specifikuje přesnost. Pokud P má hodnotu od 0 do 23 , jedná se o sloup s jednou přesností. Pokud je přesnost mezi 24 a 53 , jedná se o sloup s dvojitou přesností.

Bajty Rozsah (nepodepsaný) Rozsah (podepsaný)
PLOVÁVÁNÍ 4 z 1,175494351E-38 na 3,402823466E+38 od -3,402823466E+38 do -1,175494351E-38
DVOJNÁSOBNÁ 8 od 0 a 2,22507385850720 14E- 308 do 1,797693134862315 7E+ 308 od -1,7976931348623 157E+ 308 do -2,22507385850720 14E- 308

Typy s pevným bodem

Pro uložení přesných číselných hodnot použijte datový typ s pevnou řádovou čárkou – DECIMAL . Protože představuje přesné číslo, tento typ dat se většinou používá pro data, která se spoléhají na přesné hodnoty (jako jsou peněžní údaje).

Základní syntaxe je DECIMAL(P,D) , kde P znamená přesnost (počet platných číslic) a D znamená měřítko (počet číslic za desetinnou čárkou).

Maximální počet číslic pro přesnost je 65 , přičemž maximální hodnota pro měřítko je 30 .

Pokud nedefinujete přesnost a měřítko, sloupec použije výchozí hodnoty. Ve výchozím nastavení jsou hodnoty P,D 10,0 .

Typy bitových hodnot

BIT datový typ ukládá binární hodnoty. Při vytváření sloupce, který bude takové hodnoty ukládat, definujete počet bitových hodnot v rozsahu 1 až 64 .

Syntaxe tohoto datového typu MySQL je BIT(N) . Pokud nezadáte N , výchozí hodnota je 1 .

Datové typy data a času

Datum a čas jsou běžně používané datové typy. Ať už ukládáte čas zadání dat, datum narození nebo aktuální časové razítko, použijete jeden z následujících sloupců.

Typy dat data a času zahrnují:

  • DATETIME , TIMESTAMP
  • DATE
  • TIME
  • YEAR

DATETIME, TIMESTAMP

Chcete-li uložit hodnoty data a času, použijte buď DATETIME nebo TIMESTAMP . Oba datové typy ukládají informace ve formátu RRRR-MM-DD HH:MM:SS formát. Zahrnuje y ucho, m onth, d ano, h náš, m minuty a s sekundy.

Hlavním rozdílem mezi těmito dvěma je jejich rozsah:

  • DATETIME hodnoty se pohybují od 1000-01-01 00:00:00 do 9999-12-31 23:59:59 .
  • TIMESTAMP hodnoty se pohybují od 1970-01-01 00:00:01 do 2038-01-19 03:14:07 .

U obou možností můžete zahrnout zlomky sekund. Chcete-li tak učinit, zadejte přesnost podle syntaxe DATETIME(p) /TIMESTAMP(p) .

Chcete-li například uložit časové razítko 10:53 1. března 2021 , se třemi zlomky sekund zadejte datový typ TIMESTAMP(3) . Záznam je uložen jako:2021-03-01 22:53:35.346 .

DATUM

DATE se používá pro ukládání hodnot data ve formátu RRRR-MM-DD (rok, měsíc, datum).

Datový typ podporuje rozsah 1000-01-01 až 9999-12-31 .

ČAS

TIME se používá k uložení časových hodnot jako HH-MM-SS (hodiny, minuty, sekundy) nebo HHH-MM-SS . Záznamy zobrazující uplynulý čas nebo časové rozdíly jsou uloženy a načteny v delším formátu (pokud potřebují více číslic pro hodiny).

Datový typ podporuje rozsah 1000-01-01 až 9999-12-31 .

ROK

YEAR ukládá hodnoty roku ve formátu YYYY . Podporuje hodnoty v rozsahu 1901-2155 .

Zatímco verze starší než MySQL 5.7.5 podporovaly 2 i 4místné položky pro YEAR , od vydání 5.7.5 neexistuje žádná dvoumístná podpora.

Datové typy řetězců

Při ukládání řetězců dat použijte jeden z řetězcových datových typů. Mohou obsahovat písmena, čísla, obrázky nebo soubory.

V souladu s tím existuje několik různých typů dat řetězce:

  • CHAR a VARCHAR
  • BINARY a VARBINARY
  • BLOB a TEXT
  • ENUM
  • SET

CHAR a VARCHAR

CHAR a VARCHAR jsou datové typy používané k ukládání nebinárních řetězců. Hlavním rozdílem mezi těmito dvěma je způsob ukládání dat.

CHAR ukládá řetězce pevné délky (až 255 znaky). Při vytváření CHAR zadáte délku pomocí CHAR(N) syntax. N je počet znaků, které chcete obsadit. Pokud délku nedefinujete, použije výchozí hodnotu 1 .

Tyto hodnoty jsou uloženy vpravo doplněné zadanou délkou. Pokud tedy nastavíte CHAR(5) sloupec a uložit do něj tříznakový záznam, stále zabírá pět znaků.

VARCHAR ukládá řetězce proměnné délky. Zatímco délka musí být definována při vytváření sloupce, hodnoty nejsou vyplněny vpravo. Mají maximální limit, ale délka není pevná a liší se v závislosti na datech.

Dříve byl rozsah položek od 0 do 255 . Po vydání MySQL 5.0.3 VARCHAR rozsah je až 65 535 znaků .

BINARY a VARBINARY

BINARY a VARBINARY datové typy jsou podobné dříve zmíněným CHAR a VARCHAR . Hlavní rozdíl mezi těmito dvěma skupinami je v tom, že BINARY a VARBINARY se používají pro binární řetězce.

BINARY se používá pro binární řetězce s pevnou délkou, až do 255 bajtů . Hlavní syntaxe pro definování takového sloupce je BINARY(N) , kde N je počet bajtů.

VARBINARY ukládá binární řetězce proměnné délky. MySQL verze 5.0.3 a novější ukládá až 65 535 bajtů .

BLOB a TEXT

Oba BLOB a TEXT se používají k ukládání velkého množství dat.

BLOB úchyty B inary L arge O bjects (tj. velké sady binárních dat, jako jsou obrázky, audio nebo soubory PDF).

Existují 4 druhy datových typů BLOB, které lze použít v závislosti na velikosti, kterou vaše data vyžadují:

  • TINYBLOB (0 – 255; 255 bajtů)
  • BLOB (0 – 65 535; 16 kB)
  • MEDIUMBLOB (0 – 16 777 215; 16 MB)
  • LONGBLOB (0 – 4 294 967 295; 4 GB)

TEXT datové typy jsou pro ukládání delších řetězců textu. Podle množství požadovaných dat existuje:

  • TINYTEXT (0 – 255; 255 bajtů)
  • TEXT (0 – 65 535; 16 kB)
  • MEDIUMTEXT (0 – 16 777 215; 16 MB)
  • LONGTEXT (0 – 4 294 967 295; 4 GB)

ENUM

ENUM datový typ se používá k uložení jedné z předdefinovaných možných hodnot ve sloupci. Sloupec může mít až 65535 odlišné hodnoty.

Při vytváření ENUM tabulky v MySQL, zadáte seznam všech povolených hodnot.

NASTAVIT

Jako ENUM , SET datový typ má předdefinovaný seznam možných hodnot uložených ve sloupci.

Hlavní rozdíl mezi těmito dvěma je, že SET umožňuje, aby položka měla více než jednu hodnotu.

Pokud je například sloupec definován jako SET('Red','Orange','Yellow','Green') a má v seznamu čtyři možné hodnoty, jedna položka může mít hodnotu ‘Červená’ , zatímco jiný může mít hodnotu ‘Červená‘, ‚Žlutá‘ .

Maximální počet povolených hodnot je 64 .

Typy prostorových dat

Při ukládání prostorových dat můžete použít jeden z mnoha různých typů prostorových dat, které MySQL podporuje. Používají se k reprezentaci informací o geometrických tvarech a fyzickém umístění.

Můžeme je rozdělit do dvou skupin:

  • Jednotlivé hodnoty geometrie
  • Sbírky hodnot

Hodnoty jedné geometrie

Jednotlivé typy dat geometrie zahrnují GEOMETRY , POINT , LINESTRING a POLYGON .

  • GEOMETRY ukládá jakýkoli typ geometrie/prostorové hodnoty.
  • POINT se používá pro hodnotu jednoho bodu.
  • LINESTRING ukládá kolekci více bodů, které tvoří čáru.
  • POLYGON je datový typ používaný k uložení kolekce více bodů, které tvoří polygonální povrch.

Sbírka hodnot

Sbírka datových typů hodnot zahrnuje GEOMETRYCOLLECTION , MULTIPOINT , MULTILINE a MULTIPOLYGON .

  • GEOMETRYCOLLECTION ukládá kolekci geometrie/prostorových hodnot.
  • MULTIPOINT se používá pro uložení kolekce více bodových hodnot.
  • MULTILINE ukládá kolekci více řádků.
  • MULTIPOLYGON se používá pro kolekci více polygonů.

Datové typy JSON

Od verze 5.7.8 obsahuje MySQL podporu pro nativní JSON datový typ, který uživatelům umožňuje ukládat a spravovat dokumenty JSON prostřednictvím databáze.

MySQL zajišťuje, že dokumenty JSON jsou platné a ukládá je do sloupce JSON.


Cent OS
  1. Jak přesunout datový adresář Mysql?

  2. zlepšit rychlost importu mysql

  3. Nelze odeslat data MySQL do souboru

  1. MySQL – Převod na data podle tabulky pro InnoDB

  2. Zobrazení typů databází MySQL v bash

  3. Povolení LOAD DATA LOCAL INFILE v mysql

  1. Cassandra datové typy:vestavěné, shromažďované a definované uživatelem

  2. Zálohování MySQL 1.1

  3. Odevzdejte data v kontejneru mysql