mysql data types what are different data types mysql
Naučte se o různých datových typech MySQL, tj. Číselných, řetězcových, datových datových typech, JSON, Boolean atd. S příklady:
V tomto kurzu se dozvíme o různých datových typech, které MySQL podporuje. Datové typy se zadávají proti každému sloupci při vytváření tabulky a také při aktualizaci / změně tabulky a přidání nového sloupce do existující tabulky
Dozvíme se o datových typech ve třech různých kategoriích, tj. Numerický datový typ, Stringové datové typy a Datetime typy dat.
Co se naučíte:
MySQL datové typy
Předběžné požadavky
Budeme se učit všechny datové typy s pracovními příklady v MySQL. Z tohoto důvodu se doporučuje mít nainstalován MySQL k provádění dotazů spolu s podrobnostmi pro lepší pochopení konceptu.
Můžete také vytvořit ukázkovou databázi s názvem sql_data_types, která by obsahovala všechny tabulky, které bychom použili jako příklady.
create database sql_data_types; use sql_data_types;
Číselné datové typy
Číselné datové typy lze rozdělit do 3 typů:
- Celé číslo datové typy
- Typy pevných bodů
- Typy s plovoucí desetinnou čárkou
Pojďme diskutovat o každém z těchto:
Celé číslo datové typy
Tyto datové typy podporují celá čísla bez desetinného vyjádření. Existují různé podtypy jako - INT, TINYINT, MEDIUMINT, SMALLINT, BIGINT
INT:
Syntax:
INT((width)) (UNSIGNED) (ZEROFILL)
Fakta:
Popis | Rozsah | Paměť | Možnosti |
---|---|---|---|
STŘEDNÍ BLOB | 0-16 777 215 (16 MB) | CREATE TABLE mediumblob_example(mediumblob_col MEDIUMBLOB); | |
Nejčastěji používaný numerický typ. Ukládá celá čísla VÝCHOZÍ - Nepodepsané hodnoty | –2 147 483 648 až 2 147 483 647 | 4 byty | Pokud je použito s možností NEPŘIHLÁSIT - Rozsah se změní na 0 až 4 294 967 295 Možnost Width lze použít s funkcí ZEROFILL k vyplnění záznamů nulou pro hodnoty menší než šířka |
Příklady:
Vytvoříme tabulku s 1 sloupcem s datovým typem INT a různými možnostmi.
CREATE TABLE numbers_int(int_col INT) INSERT into numbers_int values(100),(-324),(2456),(-100000); select * from numbers_int
Výstup příkazu SELECT:
CREATE TABLE numbers_int_options(int_col_with_options INT(4) ZEROFILL ); INSERT into numbers_int_options values(1),(123),(1234),(12345); select * from numbers_int_options;
Výstup výše uvedeného příkazu:
Další varianty INT:
Existuje několik možností pro INT v závislosti na konkrétních požadavcích. Obvykle se používají, když se týká paměti nebo prostoru, ale z praktických důvodů je nejpoužívanější INT.
Níže jsou uvedeny různé varianty datového typu INT, které jsou k dispozici:
Datový typ | Rozsah | Příklad | Použitá paměť / bajty |
---|---|---|---|
TINYINT | -128 - 127 | CREATE TABLE numbers_tinyint(tinyint_col TINYINT); | 1 |
SMALLINT | -32768 - 32767 | CREATE TABLE numbers_smallint(smallint_col SMALLINT); | dva |
STŘEDNÍ | -8388608 - 8388607 | CREATE TABLE numbers_mediumint(mediumint_col MEDIUMINT); | 3 |
VELKÝ | -2 ^ 63 - (2 ^ 63-1) | CREATE TABLE numbers_bigint(bigint_col BIGINT); | 8 |
Typy s plovoucí desetinnou čárkou
Typy s plovoucí desetinnou čárkou jsou přibližné typy hodnot a to závisí na ne. přesnosti desetinné čárky zadané během deklarace typu sloupce.
Existují 2 typy datových typů s plovoucí desetinnou čárkou: FLOAT a DOUBLE, které podporují různé rozsahy a spotřebovávají paměť / úložiště.
FLOAT & DOUBLE
Podle nové doporučené syntaxe - přesnost FLOAT i DOUBLE lze zadat pouze pomocí datových typů FLOAT.
Syntax:
FLOAT(p)
Tady, p -> přesnost
Fakta:
Popis | Paměť | Možnosti | Příklady |
---|---|---|---|
FLOAT / DOUBLE představuje čísla s plovoucí desetinnou čárkou s přibližnými hodnotami Tj. když MySQL ukládá tyto hodnoty, jsou tyto hodnoty aproximovány na nejbližší přesnost podle deklarovaného typu. Přesnost mezi 0-23 představuje typ FLOAT, zatímco 24 až 53 by generoval dvojitý typ spotřebovávající 8 bajtů | -Přesnost - 0-23 => 4 bajty -Precision -24-53 => 8 bajtů | - Čísla pohyblivých bodů lze PODPISOVAT i PODPISOVAT -FLOAT je obecně přesný až na 7 desetinných míst, zatímco DOUBLE je přesný až na 14 desetinných míst -Existuje také další nestandardní způsob deklarace FLOAT a DOUBLE se specifikací přesných bodů FLOAT (n, d) - kde n je celkový počet číslic a d není počet desetinných míst | -Vytvořte tabulku se sloupcem DVOJITÝ datový typ CREATE TABLE numbers_double (double_col FLOAT (30)); -Vytvořte tabulku se sloupcem DVOJITÝ datový typ a číslice přesnosti jako 5 CREATE TABLE numbers_double (double_col DOUBLE (20,5)); |
Podívejme se na několik příkladů načítání hodnot dvojitých typů:
CREATE TABLE numbers_double(double_col DOUBLE(20,5)); insert into numbers_double VALUES(123.45),(-145),(12.3456788); select * from numbers_double;
Výstup příkazu SELECT:
Vidíme zde, že hodnoty jsou uloženy až na 5 desetinných míst, jak je uvedeno během deklarace datového typu.
Typy pevných bodů
Tyto datové typy se používají k ukládání přesné hodnoty se stanovenou přesností. Tyto datové typy se obvykle používají, když je požadováno přesné přesné úložiště. Například, u bankovních účtů je nutné udržovat zůstatky na 2 desetinná místa, potřebujeme data ukládat s přesnou přesností.
DESETINNÁ / ČÍSELNÁ
Syntax:
DECIMAL((width(,decimals))) (UNSIGNED) (ZEROFILL)
Fakta:
Popis | Rozsah | Paměť | Možnosti |
---|---|---|---|
DECIMAL je číselný datový typ v MySQL a ukládá přesné hodnoty se zadanou přesností. Výchozí měřítko nebo šířka pro datový typ DECIMAL je přesnost 10 a 0. Pamatujte, že typy DECIMAL a NUMERIC lze používat zaměnitelně. | Závisí na zadaném rozsahu Například DECIMAL (5,2) by měl rozsah -999,99 až 999,99 | Uživatelé MySQL v binárním formátu pro ukládání DECIMÁLNÍHO datového typu - Vyžaduje čtyři bajty na každých 9 číslic - Takže například, pokud máme DECIMAL (14,2) - bude vyžadovat celkem - 9 (4) + 2 (1) => 7 bajtů | - Maximální hodnota šířky může být 265 -Počet desetinných míst je volitelný a výchozí hodnota je 0 |
Příklad:
CREATE TABLE numbers_decimal(dec_col DECIMAL(4,2)) INSERT INTO numbers_decimal values(-99),(50.50);
Datové typy DateTime
Datové typy DateTime v MySQL, jak název napovídá, se používají k ukládání hodnot data a času v databázi MySQL.
MySQL podporují 2 časové typy - DATETIME a TIMESTAMP
Pojďme si o tom promluvit v následujících částech.
ČAS SCHŮZKY
Syntax:
DATETIME(n)
Zde n -> přesnost / zlomková část sekundové části (maximální podporovaná přesnost je 6).
Fakta:
Popis | Rozsah | Paměť | Příklady |
---|---|---|---|
Slouží k ukládání data a času ve sloupci MySQL Na dotaz datový sloupec zobrazuje datetime ve formátu níže: RRRR-MM-DD HH: MM: SS | 1000-01-01 00:00:00 - 9999-12-31 23:59:59 | 5 bajtů Pokud je zahrnuta zlomková část, je pro každé 2 zlomkové číslice spotřebován další bajt. | CREATE table datetime_example(date_col DATETIME); // VÝSTUP date_col 2020-08-08 22:22:53 |
TIMESTAMP
Syntax:
TIMESTAMP(n)
Zde n -> přesnost / zlomková část sekundové části (maximální podporovaná přesnost je 6)
Fakta:
Popis | Rozsah | Paměť | Příklady |
---|---|---|---|
Další dočasný datový typ používaný k ukládání datetime. Toto ukládá datum a čas jako UTC také s omezeným rozsahem mezi lety 1970 a 2038 | 1970-01-01 00:00:01 UTC - 2038-01-19 03:14:07 UTC | 4 byty | CREATE table timestamp_example(ts_col TIMESTAMP); VÝSTUP ts_col 2020-08-08 22:19:11 |
Řetězcové datové typy
Řetězcové datové typy, jak název napovídá, se používají k ukládání řetězců / textů nebo objektů BLOB textových informací v databázi. V závislosti na případu použití existují různé takové datové typy - CHAR, VARCHAR, BINARY, VARBINARY, TEXT, ENUM, SET & BLOB
Pochopme každý z těchto různých typů dat pomocí příkladů.
CHAR A VARCHAR
Oba tyto typy se používají k ukládání hodnot řetězce ve sloupcích v MySQL, ale liší se v tom, jak jsou hodnoty ukládány a načítány.
CHAR & VARCHAR jsou deklarovány s délkou, která označuje maximální délku řetězce, který chcete uložit do sloupce.
Syntax:
CHAR(n) VARCHAR(n)
Zde n -> max. znaků, které má sloupec uložit
Fakta:
Typ | Popis | Rozsah | Příklady |
---|---|---|---|
CHAR Syntaxe - CHAR (n) | CHAR může uložit řetězec délky „n“, jak je definován během deklarace. Pokud je řetězec menší než n znak, je vyplněn mezerami. | Délka datového typu CHAR se může pohybovat od 0 do 255 V závislosti na délce by se spotřeba paměti pohybovala od 0 do 255 bajtů. | CREATE TABLE string_example(char_col CHAR(50)); |
VARCHAR Syntaxe - VARCHAR (n) | VARCHAR vám umožňuje ukládat řetězce s proměnnou délkou a spotřebovávat paměť oproti skutečné velikosti uloženého řetězce, spíše než maximální hodnotě zadané během definice sloupce. | Délka datového typu VARCHAR se může pohybovat od 0 do 65535 V závislosti na délce by se spotřeba paměti pohybovala v rozmezí 0 - 65535 bajtů. | CREATE TABLE string_example(varchar_col VARCHAR(50)); |
BINÁRNÍ A VARBINÁRNÍ
Podobně jako CHAR a VARCHAR - tyto datové typy ukládají řetězce, ale v binárním formátu.
Délka datových typů BINARY a VARBINARY se měří v bajtech na rozdíl od počtu znaků v datových typech CHAR a VARCHAR.
Syntax:
BINARY(n) VARBINARY(n)
Zde n -> max. bajtů, které mají být uloženy ve sloupci.
Fakta:
Typ | Popis | Rozsah | Příklady |
---|---|---|---|
BINARY Syntaxe - BINARY (n) | BINARY může ukládat „n“ binárních bajtů. Pro hodnoty menší než n jsou vpravo vyplněny 0 bajty a uloženy | Délka datového typu BINARY se může pohybovat od 0 do 255 V závislosti na délce by se spotřeba paměti pohybovala od 0 do 255 bajtů. | CREATE TABLE binary_string(binary_col BINARY(50)); |
VARBINÁŘ Syntaxe - VARBINARY (n) | VARBINARY umožňuje ukládat binární řetězce s proměnnou délkou až do délky n (jak je uvedeno v definici sloupce) | Délka datového typu VARBINARY se může pohybovat od 0 do 65535 V závislosti na délce by se spotřeba paměti pohybovala v rozmezí 0 - 65535 bajtů. | CREATE TABLE variable_binary_string(varbinary_col VARBINARY(50)); |
Podívejme se na datový typ BINARY podrobněji. Vytvoříme tabulku se sloupcem každého z binárních a varbinárních datových typů a zkontrolujeme obsah.
CREATE TABLE binary_strings(binary_col BINARY(50), varbinary_col VARBINARY(50)); INSERT into binary_strings values('hello', 'hello'); SELECT * from binary_strings;
Nyní jsme viděli výstup jako BLOB, což znamená - B inary L špatný OB ject - a nejde o nic jiného než o binární / hexadecimální reprezentaci hodnot String, které jsme vložili do sloupců.
Nyní zkontrolujeme hodnoty těchto binárních řetězců a uvidíme, jak jsou uloženy.
Nejprve se podívejme na hodnotu přítomnou v proměnné „binary_col“, která má datový typ BINARY.
Pojďme pochopit, jaké jsou hodnoty, které se ukládají - Pokud si všimnete hodnot oproti prvním 5 položkám - tj. První řádek a prvních 5 sloupců (0-4)
Toto jsou pouze HEX reprezentace znaků řetězce „ahoj“, které jsme uložili.
Nyní, protože se jedná o datový typ BINARY o délce 50, vidíme, že zbytek bajtů je vyplněn hodnotami „00“, což není nic jiného než bytová reprezentace číslice „0“.
Podívejte se na hodnotu přítomnou v proměnné „varbinary_col“, která je datového typu VARBINARY.
Tady pro VARBINARY můžete vidět, že hodnoty jsou právě naplněny pro délku 5, která je ekvivalentní délce řetězce, kterou jsme uložili. Neexistuje žádná nulová výplň, i když jsme deklarovali VARBINARY sloupec o délce 50.
BLOB A TEXT
Datové typy BLOB a TEXT jsou podobné datovým typům BINARY a CHAR s tím rozdílem, že mohou podporovat větší velikosti oproti jejich základním protějškům.
Je důležité si uvědomit, že BLOB ukládá data jako binární řetězce, zatímco datový typ TEXT ukládá jako nebinární řetězce. Všechny tyto datové typy také nevyžadují specifikaci délky při uvedení datového typu. Jsou přirozeně proměnlivé délky v přírodě a spotřebovávají paměť pouze proti té, která je uložena jako skutečná hodnota sloupce.
Datové typy BLOB se obecně používají k bezpečnému a účinnému ukládání souborů, jako jsou obrázky, dokumenty PDF atd. Jako binární řetězce.
Podrobnosti o různých variantách datových typů BLOB a TEXT jsou uvedeny níže:
Typ | Rozsah | Popis | Příklady |
---|---|---|---|
TINYTEXT | 0-255 (255 bajtů) | Rozsah je stejný jako VARCHAR - Používá se k ukládání malých informací, jako jsou tituly, jména autorů atd. | CREATE TABLE tinytext_example(tinytext_col TINYTEXT); |
TEXT | 0-65535 (64 kB) | Tento datový typ je dostatečný k uložení textu pro malý až středně velký článek. | CREATE TABLE text_example(text_col TEXT); |
STŘEDNÍ TEXT | 0-16 777 215 (16 MB) | Tento datový typ může stačit k uložení textu pro celou učebnici | CREATE TABLE mediumtext_example(mediumtext_col MEDIUMTEXT); |
DLOUHÝ TEXT | 0 - 4 294 967 295 (4 GB) | LONGTEXT se zřídka používá konkrétně v případech, kdy MEDIUMTEXT nestačí. | CREATE TABLE longtext_example(longtext_col LONGTEXT); |
TINYBLOB | 0-255 (255 bajtů) | Všechny datové typy BLOB se používají k ukládání binárních řetězců a jsou obecně preferovány pro ukládání souborů, jako jsou obrázky, dokumenty PDF nebo malé aplikace samotné. V závislosti na požadavcích na velikost lze vybrat a použít různé datové typy BLOB. | CREATE TABLE tinyblob_example(tinyblob_col TINYBLOB); |
KAPKA | 0-65535 (64 kB) | CREATE TABLE blob_example(blob_col BLOB); | |
LONGBLOB | 0 - 4 294 967 295 (4 GB) | CREATE TABLE longblob_example(longblob_col LONGBLOB); |
ENUM
ENUM je datový typ String, který předdefinuje povolené hodnoty, které může mít sloupec. Je to podobné datovým typům ENUM, které existují v různých programovacích jazycích, jako je JAVA, C # atd.
Hodnoty ENUM, pokud jsou uloženy, jsou převedeny na čísla proti každé hodnotě sloupce, což má za následek značné úspory paměti pro tabulky, které mají velký počet záznamů, tj. Předpokládejme, že máme ENUM s hodnotami - hodnota1, hodnota2 a hodnota3, pak by skutečné paměťové úložiště bylo číselné indexuje 1,2,3 v zákulisí.
Syntax:
ENUM({comma separated enum values})
Ukázkové dotazy:
Vytvořte tabulku se 2 sloupci pro ukládání mobilních modelů jako String a názvy společností jako datové typy ENUM s hodnotami - APPLE, SAMSUNG a NOKIA. Podívejme se také na dotazy k načtení dat proti konkrétní hodnotě ENUM.
CREATE TABLE mobile_details(model VARCHAR(100), brand ENUM('SAMSUNG', 'APPLE', 'NOKIA')); INSERT INTO mobile_details values ('IPHONE X', 'APPLE'),('GALAXY M1', 'SAMSUNG'), ('GALAXY M2', 1) ;
Ve výše uvedeném dotazu vidíte, že jsme během vkládání použili názvy Enum i číselné indexy.
Zkusme dotazovat všechna mobilní zařízení se značkou „SAMSUNG“ a dotazovat se podle číselného indexu SAMSUNG, který je „1“.
SELECT * FROM mobile_details where brand='SAMSUNG' SELECT * FROM mobile_details where brand=1
Výstup obou výše uvedených dotazů bude stejný, jak je uvedeno níže:
SOUBOR
MySQL SET datový typ je objekt typu String, který může mít jednu nebo více než jednu hodnotu z povoleného rozsahu, jak je popsáno při definici sloupce. Je to podobné jako ENUM, ale umožňuje přidružit více hodnot z definovaného seznamu jako hodnoty sloupců.
Datové typy SET se také ukládají jako číselné indexy počínaje 2 ^ 0 - tj. 1,2,4,8 atd.
Syntax:
SET({comma separated list of allowed values})
Příklad:
Zkusme porozumět datovému typu SET s příklady. Vytvoříme tabulku s názvem mobile_details se sloupcovým modelem typu String a sloupcem s názvem podporovaný OS, což je datový typ sady a obsahuje seznam podporovaných verzí operačního systému.
CREATE TABLE mobile_details(model VARCHAR(100), supported_os SET('ios9', 'ios10', 'android8', 'android9','android10'));
Vidíme, že jsme uvedli hodnoty operačního systému jako součást sloupce s datovým typem SET. Odpovídající DECIMÁLNÍ hodnoty, které jsou jim přiřazeny, jsou uvedeny níže:
Nyní, pokud chceme přiřadit hodnotu SET, například, „Android8, android9“ do řádku můžeme jednoduše přiřadit přidání přiřazených desetinných hodnot, tj. 12, aby měl stejný účinek.
Přiřazení k řádku s názvem modelu „GALAXYM1“ naleznete výše v dotazu VLOŽIT
INSERT INTO mobile_details values ('IPHONE X', ('ios9,ios10')),('GALAXY M1', (12)), ('GALAXY M2', ('android9,android10')) ; SELECT * from mobile_details;
Výstup výše uvedeného příkazu:
Můžeme také dotazovat sloupec SET proti jejich desítkové reprezentaci - předpokládejme, že chceme dotazovat na ‚ios9, ios10 '- součet desítkové reprezentace je 3, takže můžeme dotazovat jako:
SELECT * from mobile_details where supported_os=3
Výstup:
Speciální typy dat
BOOLEAN
Boolovský datový typ MySQL ukládá hodnotu sloupce jako TRUE nebo FALSE. Tento datový typ je obecně vhodný pro ukládání hodnot příznaků v tabulkách MySQL. Například - Tabulka bankovních účtů se sloupcem s názvem is_savings_account může ukládat buď true, nebo false.
Hodnota BOOLEAN je v MySQL uložena jako 1 nebo 0 pro PRAVDA a NEPRAVDA.
Syntax:
columnName BOOLEAN
Příklad:
CREATE TABLE account_details(accNo BIGINT, is_savings BOOLEAN); INSERT into account_details values (123456,true), (110002, false), (234567, 1);
Při vkládání nebo načítání hodnot pro datový typ BOOLEAN můžeme použít buď TRUE nebo FALSE, nebo jejich číselná vyjádření - tj. 1 nebo 0.
select * from account_details where is_savings=1;
Výstup výše uvedeného příkazu:
JSON
MySQL podporuje nativní JSON jako datový typ pro objekty v notaci JSON. Usnadňuje ukládání, dotazování a načítání dokumentů typu JSON, spíše než ukládání jako textové řetězce nebo binární objekty Blob.
Syntax:
columnName JSON
Fakta:
Definice | Rozsah | Příklady |
---|---|---|
Datový typ JSON se používá k ukládání dokumentů ve formátu JSON. Jakýkoli sloupec definovaný jako JSON by způsobil chybu, pokud je neplatný JSON uložen dotazem INSERT. | Rozsah nebo velikost datového typu JSON je podobný LONGTEXT nebo LONGBLOB | CREATE TABLE json_example(json_col JSON); |
Příklad:
MySQL poskytuje různé funkce pro dotazování na data JSON. Zkusme vložit níže JSON a pak uvidíme funkce MySQL k dotazování.
{ 'data': { 'id': 1, 'email': 'test@abc.com', 'first_name': 'Steve', 'last_name': 'Wilson', } } { 'data': { 'id': 2, 'email': 'test@123.com', 'first_name': 'Alex', 'last_name': 'Johson', } }
Podívejme se na příkazy k vytvoření tabulky a vložení dat JSON.
create table json_example(json_col JSON); insert into json_example values( '{'data': { 'id': 1, 'email': 'test@abc.com', 'first_name': 'Steve', 'last_name': 'Wilson' }}'); insert into json_example values( '{'data': { 'id': 2, 'email': 'test@123.com', 'first_name': 'Alex', 'last_name': 'Johnson' }}');
Dotazujte se na tabulku a vytiskněte pole pro jméno a e-mail z dat JSON, která jsou uložena v řádcích tabulky.
select json_col->'$.data.first_name' as firstname, json_col->'$.data.email' as email from json_example
Výstup:
Často kladené otázky
Otázka č. 1) Jak můžeme změnit datový typ pro sloupec MySQL, jakmile je přidělen?
Odpovědět: Datový typ sloupce lze změnit pomocí Příkaz ALTER TABLE .
Zvažte tabulku student_info se 2 sloupci, názvem a věkem typů VARCHAR a INT. Toho lze dosáhnout pomocí následujícího příkazu CREATE TABLE:
CREATE TABLE student_info(name CHAR(20), age INT);
V tomto příkazu existuje několik variant
převodník z youtube na mp3 s editorem tagů
- Pokud chceme změnit pouze datový typ sloupce - Můžeme použít příkaz MODIFY spolu s ALTER
Ve výše uvedené tabulce předpokládejme, že chceme změnit sloupec datový typ věku, můžeme použít následující příkaz
ALTER TABLE student_info MODIFY age TINYINT
- Pokud chceme změnit název sloupce i datový typ sloupce - Můžeme použít příkaz ZMĚNIT spolu s ALTER
Ve výše uvedené tabulce předpokládejme, že chceme změnit název sloupce z „name“ na „sname“ a datový typ z CHAR na VARCHAR (50), můžeme použít následující příkaz:
ALTER TABLE student_info CHANGE name sname VARCHAR(50)
Otázka 2) Jaký je datový typ pro obrázek v mysql?
Odpovědět: Pro ukládání libovolných typů souborů v MySQL, jako jsou obrázky, pdf atd., Je nejvhodnější BLOB nebo binární datový typ. K dispozici jsou různé varianty datového typu BLOB v závislosti na velikosti cílového souboru, který chceme uložit. Můžeme použít varianty BLOB jako - TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB
Otázka č. 3) Který datový typ je vhodnější pro ukládání dokumentů v mysql?
Odpovědět: Podobně jako BLOB pro obrázky nebo soubory PDF, pro ukládání textových dokumentů / článků lze použít datový typ TEXT. Jedná se o rozšíření datového typu CHAR s podporou extra úložiště znaků.
Dostupné jsou různé varianty datového typu TEXT - TEXT, TINYTEXT, STŘEDNÍ TEXT & DLOUHÝ TEXT
Otázka č. 4) Jaký je datový typ měny v MySQL?
Odpovědět: Pro ukládání dat pro hodnoty měn je nejvhodnější datový typ DECIMAL. Používá se k ukládání datových typů s přesnou přesností. Například, název sloupce s typem DECIMAL (4,2), uloží hodnoty v rozsahu -99,99 až 99,99 a na rozdíl od nich vrátí hodnotu se stejnou přesností. aproximace pro čísla s plovoucí desetinnou čárkou.
Otázka č. 5) Co se stane, když se někdo pokusí vložit záporná čísla pro celočíselné sloupce PODPIS?
Odpovědět: MySQL generuje chybu pro takové vložené příkazy
Zkusme vytvořit tabulku se sloupcem INT, který má možnost NEPODPÍSAT.
CREATE TABLE int_unsigned(age INT UNSIGNED); INSERT into int_unsigned values(-350);
Error Code: 1264. Out of range value for column 'int_col_with_options' at row 1
Otázka č. 6) Jak získat data aktuálního data v mysql?
Odpovědět: MySQL poskytuje 2 vestavěné funkce data a času pro načítání aktuálních hodnot
Funkce CURDATE () vrací aktuální datum
SELECT CURDATE();
Výstup
2020-08-10
Funkce NOW () vrací aktuální datum s časovým razítkem.
SELECT NOW();
Výstup
2020-08-10 00:42:54
Otázka č. 7) Z CHAR a VARCHAR - který z nich je vhodnější?
Odpovědět: VARCHAR znamená variabilní charakter a má důležitou výhodu v tom, že spotřebovává méně paměti oproti CHAR stejné délky. Například, Sloupec s VARCHAR (50), pokud ukládá řetězce délky 20, by vedl ke konzumaci pouhých 20 bajtů na rozdíl od datového typu deklarovaného pomocí CHAR (50)
Otázka č. 8) Jak aktualizovat hodnotu ENUM v MySQL?
Odpovědět: Chcete-li aktualizovat sloupec ENUM v MySQL, budete muset upravit zmínku o existujících hodnotách sloupců tak, aby existující položky zůstaly nedotčené.
Zkusme to pochopit na příkladu.
Předpokládejme, že máme tabulku s názvem mobile_details, která má modelové pole jako String (VARCHAR) a sloupec značky jako ENUM, který má počáteční hodnoty jako „APPLE“, SAMSUNG „a„ NOKIA “
Předpokládejme, že nyní chceme do stávajícího výčtu přidat další značku „MOTOROLA“. Podívejme se na dotazy, které bychom museli provést.
CREATE TABLE mobile_details(model VARCHAR(100), brand ENUM('SAMSUNG', 'APPLE', 'NOKIA'));
Po vytvoření můžete získat podrobnosti o původních hodnotách ENUM pomocí příkazu DESCRIBE
DESCRIBE mobile_details;
Nyní spustíme příkaz k aktualizaci ENUM
ALTER TABLE mobile_details MODIFY column brand ENUM('SAMSUNG', 'APPLE', 'NOKIA', 'MOTOROLA');
Znovu můžeme spustit příkaz DESCRIBE, abychom zjistili, zda jsou aktualizace úspěšně použity.
DESCRIBE mobile_details
Zde je výstup výše uvedeného příkazu:
Závěr
V tomto kurzu jsme se dozvěděli o různých datových typech, které MySQL podporuje.
Dozvěděli jsme se o datových typech Numeric, Floating, String a Date time spolu se syntaxí a různými příklady.
Datové typy MySQL jsou základními stavebními kameny pro začátek a jedním z nejdůležitějších aspektů během návrhu schématu MySQL.
Doporučené čtení
- Datové typy C ++
- Datové typy Pythonu
- Datové typy a proměnné C # s příklady
- PL SQL datové typy, proměnné, konstanty a literály
- Datové typy polí - int pole, dvojité pole, pole řetězců atd.
- Prohlášení o odstranění MySQL - odstranění syntaxe příkazu a příkladů
- MySQL Vložit do tabulky - Vložit syntaxi výpisu a příklady
- Výukový program MySQL JOIN: Vnitřní, Vnější, Křížový, Levý, Pravý a Vlastní