mysql data types what are different data types mysql
Dozviete sa tu o rôznych dátových typoch MySQL, napr. Číselných, reťazcových, dátových dátových typoch, JSON, Boolean atď., S príkladmi:
V tomto tutoriále sa dozvieme o rôznych dátových typoch, ktoré sú podporované MySQL. Dátové typy sa zadávajú pre každý stĺpec pri vytváraní tabuľky a tiež pri aktualizácii / zmene tabuľky tak, aby sa do existujúcej tabuľky pridal nový stĺpec.
Dozvieme sa o dátových typoch v troch rôznych kategóriách, t. J. Číselný dátový typ, dátové typy String a dátové typy Datetime.
Čo sa dozviete:
Dátové typy MySQL
Predbežné požiadavky
Budeme sa učiť všetky dátové typy s pracovnými príkladmi v MySQL. Preto sa odporúča mať nainštalovaný MySQL na vykonávanie dotazov spolu s podrobnosťami pre lepšie pochopenie konceptu.
Môžete tiež vytvoriť vzorovú databázu s názvom sql_data_types, ktorá by obsahovala všetky tabuľky, ktoré by sme použili ako príklad.
create database sql_data_types; use sql_data_types;
Číselné typy údajov
Číselné typy údajov možno rozdeliť do 3 typov:
- Celé číslo dátové typy
- Typy pevných bodov
- Typy s pohyblivou rádovou čiarkou
Poďme sa rozprávať o každej z týchto vecí:
Celé číslo dátové typy
Tieto dátové typy podporujú celé čísla bez desatinného vyjadrenia. Existujú rôzne podtypy ako - INT, TINYINT, MEDIUMINT, SMALLINT, BIGINT
INT:
Syntax:
INT((width)) (UNSIGNED) (ZEROFILL)
Fakty:
Popis | Rozsah | Pamäť | možnosti |
---|---|---|---|
MEDIUMBLOB | 0 - 16 777 215 (16 MB) | CREATE TABLE mediumblob_example(mediumblob_col MEDIUMBLOB); | |
Najčastejšie používaný číselný typ. Ukladá celé čísla DEFAULT - nepodpísané hodnoty | –2 147 483 648 až 2 147 483 647 | 4 bajty | Ak sa používa s voľbou NEPODPísané - rozsah sa zmení na 0 až 4 294 967 295 Voľbu šírky je možné použiť s programom ZEROFILL na vyplnenie záznamov nulou pre hodnoty menšie ako šírka |
Príklady:
Vytvoríme tabuľku s 1 stĺpcom s dátovým typom INT a rôznymi možnosťami.
CREATE TABLE numbers_int(int_col INT) INSERT into numbers_int values(100),(-324),(2456),(-100000); select * from numbers_int
Výstup prí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 vyššie uvedeného príkazu:
Ďalšie variácie INT:
V závislosti od konkrétnych požiadaviek je pre INT k dispozícii niekoľko možností. Spravidla sa používajú, keď sa jedná o pamäť alebo priestor, ale z praktických dôvodov je najpoužívanejší INT.
Ďalej sú uvedené rôzne variácie dátového typu INT, ktoré sú k dispozícii:
Dátový typ | Rozsah | Prí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 |
MEDIUMINT | -8388608 - 8388607 | CREATE TABLE numbers_mediumint(mediumint_col MEDIUMINT); | 3 |
VEĽKÝ | -2 ^ 63 - (2 ^ 63-1) | CREATE TABLE numbers_bigint(bigint_col BIGINT); | 8 |
Typy s pohyblivou rádovou čiarkou
Typy s pohyblivou rádovou čiarkou sú približné typy hodnôt a to závisí od počtu č. presnosti desatinnej čiarky zadanej počas vyhlásenia o stĺpci.
Existujú 2 typy dátových typov s pohyblivou rádovou čiarkou: FLOAT a DOUBLE, ktoré podporujú rôzne rozsahy a spotrebúvajú pamäť / úložisko.
PLOCHA A DVOJNÁSOBKA
Podľa novej odporúčanej syntaxe - presnosť FLOAT aj DOUBLE možno určiť pomocou iba dátových typov FLOAT.
Syntax:
FLOAT(p)
Tu, p -> presnosť
Fakty:
Popis | Pamäť | možnosti | Príklady |
---|---|---|---|
FLOAT / DOUBLE predstavuje čísla s pohyblivou rádovou čiarkou s približnými hodnotami Tj. keď MySQL ukladá tieto hodnoty, tieto hodnoty sa aproximujú na najbližšiu presnosť podľa deklarovaného typu. Presnosť medzi 0 - 23 predstavuje typ FLOAT, zatiaľ čo 24 až 53 by vygeneroval dvojitý typ, ktorý spotrebuje 8 bajtov | -Presnosť - 0-23 => 4 bajty -Presnosť -24-53 => 8 bajtov | -Čísla plávajúcich bodov je možné PODPISOVAŤ aj PODPISOVAŤ -FLOAT je všeobecne presný až na 7 desatinných miest, zatiaľ čo DOUBLE je presný až na 14 desatinných miest -Je tu aj ďalší neštandardný spôsob deklarovania FLOAT a DOUBLE so špecifikáciou presných bodov FLOAT (n, d) - kde n sú celkové číslice a d nie je desatinná čiarka | -Vytvorte tabuľku so stĺpcom DVOJITÝ dátový typ CREATE TABLE numbers_double (double_col FLOAT (30)); -Vytvorte tabuľku so stĺpcom DVOJITÝ typ údajov a presnými číslicami ako 5 CREATE TABLE numbers_double (double_col DOUBLE (20,5)); |
Pozrime sa na niekoľko príkladov načítania hodnôt dvojitých typov:
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 príkazu SELECT:
Vidíme tu, že hodnoty sú uložené až na 5 desatinných miest, ako je uvedené v deklarácii dátového typu.
Typy pevných bodov
Tieto dátové typy sa používajú na ukladanie presnej hodnoty so stanovenou presnosťou. Tieto dátové typy sa zvyčajne používajú, keď sa vyžaduje presná pamäť. Napríklad, pri bankových účtoch je potrebné udržiavať zostatky na 2 desatinných čiarkach, údaje potrebujeme ukladať s presnou presnosťou.
DECIMÁLNE / ČÍSELNÉ
Syntax:
DECIMAL((width(,decimals))) (UNSIGNED) (ZEROFILL)
Fakty:
Popis | Rozsah | Pamäť | možnosti |
---|---|---|---|
DECIMAL je číselný údajový typ v MySQL a ukladá presné hodnoty so zadanou presnosťou. Predvolená mierka alebo šírka pre dátový typ DECIMAL je presnosť 10 a 0. Upozorňujeme, že typy DECIMAL a NUMERIC sa dajú vzájomne zameniť. | Závisí od zadaného rozsahu Napríklad DECIMAL (5,2) by mal rozsah od -999,99 do 999,99 | Používatelia MySQL v binárnom formáte na ukladanie DECIMÁLNEHO dátového typu - Vyžaduje to štyri bajty na každých 9 číslic - Takže napríklad, ak máme DECIMAL (14,2) - vyžadovalo by to celkom - 9 (4) + 2 (1) => 7 bajtov | - Maximálna hodnota šírky môže byť 265 -Počet desatinných miest je voliteľný a predvolená hodnota je 0 |
Príklad:
CREATE TABLE numbers_decimal(dec_col DECIMAL(4,2)) INSERT INTO numbers_decimal values(-99),(50.50);
Dátové typy DateTime
Dátové typy DateTime v MySQL, ako už názov napovedá, sa používajú na ukladanie hodnôt dátumu a času do databázy MySQL.
MySQL podporuje 2 dočasné typy - DATETIME a TIMESTAMP
Poďme si o týchto dvoch diskutovať v nasledujúcich častiach.
DÁTUM ČAS
Syntax:
DATETIME(n)
Tu n -> presnosť / zlomková časť sekundovej časti (maximálna podporovaná presnosť je 6).
Fakty:
Popis | Rozsah | Pamäť | Príklady |
---|---|---|---|
Slúži na ukladanie dátumu a času do stĺpca MySQL Na otázku údaj stĺpca zobrazuje dátum a čas vo formáte nižšie: RRRR-MM-DD HH: MM: SS | 01.01.01 01:00:00 - 9999-12-31 23:59:59 | 5 bajtov Ak je zahrnutá zlomková časť, potom sa pre každé 2 zlomkové číslice spotrebuje ďalší bajt. | CREATE table datetime_example(date_col DATETIME); // VÝKON date_col 2020-08-08 22:22:53 |
ČASOVÁ ZNAČKA
Syntax:
TIMESTAMP(n)
Tu n -> presnosť / zlomková časť sekundovej časti (maximálna podporovaná presnosť je 6)
Fakty:
Popis | Rozsah | Pamäť | Príklady |
---|---|---|---|
Ďalší dočasný dátový typ používaný na ukladanie času a času. Toto ukladá dátum a čas ako UTC s obmedzeným rozsahom medzi rokmi 1970 a 2038 | 1970-01-01 00:00:01 UTC - 2038-01-19 03:14:07 UTC | 4 bajty | CREATE table timestamp_example(ts_col TIMESTAMP); VÝKON ts_col 2020-08-08 22:19:11 |
Reťazcové dátové typy
Ako naznačuje názov, reťazcové dátové typy sa používajú na ukladanie reťazcov / textov alebo blobov textových informácií do databázy. V závislosti od prípadu použitia sú k dispozícii rôzne typy dát - CHAR, VARCHAR, BINARY, VARBINARY, TEXT, ENUM, SET & BLOB
Poďme si predstaviť každý z týchto rôznych typov údajov na príkladoch.
CHAR A VARCHAR
Oba tieto typy sa používajú na ukladanie reťazcových hodnôt do stĺpcov v MySQL, líšia sa však spôsobom ukladania a načítania hodnôt.
CHAR & VARCHAR sú deklarované s dĺžkou, ktorá označuje maximálnu dĺžku reťazca, ktorý chcete uložiť do stĺpca.
Syntax:
CHAR(n) VARCHAR(n)
Tu n -> max. znakov, ktoré sa majú uložiť v stĺpci
Fakty:
Typ | Popis | Rozsah | Príklady |
---|---|---|---|
CHAR Syntax - CHAR (n) | CHAR môže ukladať reťazec dĺžky „n“ podľa definície počas deklarácie. Ak má reťazec menej ako n znakov, je vyplnený medzerami. | Dĺžka dátového typu CHAR sa môže pohybovať od 0 do 255 V závislosti na dĺžke by sa spotreba pamäte pohybovala od 0 do 255 bajtov. | CREATE TABLE string_example(char_col CHAR(50)); |
VARCHAR Syntax - VARCHAR (n) | VARCHAR vám umožňuje ukladať reťazce s premennou dĺžkou a spotrebovať pamäť oproti skutočnej veľkosti uloženého reťazca, a nie proti maximálnej hodnote, ktorá je zadaná počas definície stĺpca. | Dĺžka dátového typu VARCHAR sa môže pohybovať od 0 - 65535 V závislosti na dĺžke by sa spotreba pamäte pohybovala od 0 - 65 535 bajtov. | CREATE TABLE string_example(varchar_col VARCHAR(50)); |
BINÁRNY A VARBINÁRNY
Podobne ako CHAR a VARCHAR - tieto dátové typy ukladajú reťazce, ale v binárnom formáte.
Dĺžka dátových typov BINARY a VARBINARY sa meria v bajtoch na rozdiel od počtu znakov v dátových typoch CHAR a VARCHAR.
Syntax:
BINARY(n) VARBINARY(n)
Tu n -> max. bajtov, ktoré sa majú uložiť v stĺpci.
Fakty:
Typ | Popis | Rozsah | Príklady |
---|---|---|---|
BINÁRNY Syntax - BINARY (n) | BINARY môže ukladať ‘n’ binárnych bajtov. Pri hodnotách menších ako n sú vpravo doplnené 0 bajtom a uložené | Dĺžka dátového typu BINARY sa môže pohybovať od 0 do 255 V závislosti na dĺžke by sa spotreba pamäte pohybovala od 0 do 255 bajtov. | CREATE TABLE binary_string(binary_col BINARY(50)); |
VARBINÁR Syntax - VARBINARY (n) | VARBINARY vám umožňuje ukladať binárne reťazce s premennou dĺžkou až do dĺžky ‘n (ako je uvedené v definícii stĺpca) | Dĺžka dátového typu VARBINARY sa môže pohybovať od 0 - 65535 V závislosti na dĺžke by sa spotreba pamäte pohybovala od 0 - 65 535 bajtov. | CREATE TABLE variable_binary_string(varbinary_col VARBINARY(50)); |
Pozrime sa podrobnejšie na dátový typ BINARY. Vytvoríme tabuľku so stĺpcom každého z binárnych a varbinárnych dátových typov a skontrolujeme obsah.
CREATE TABLE binary_strings(binary_col BINARY(50), varbinary_col VARBINARY(50)); INSERT into binary_strings values('hello', 'hello'); SELECT * from binary_strings;
Teraz sme videli výstup ako BLOB, čo znamená - B inary Ľ zlé OB ject - a nejde o nič iné ako Binárne / Hexové znázornenie Stringových hodnôt, ktoré sme vložili do stĺpcov.
Teraz skontrolujeme hodnoty týchto binárnych reťazcov a uvidíme, ako sú uložené.
Najskôr sa pozrime na hodnotu prítomnú v reťazci „binary_col“, ktorý je dátového typu BINARY.
Poďme pochopiť, aké sú hodnoty, ktoré sa ukladajú - Ak si všimnete hodnoty oproti prvým 5 položkám - teda prvému riadku a prvým 5 stĺpcom (0-4)
Toto sú iba HEX reprezentácie znakov reťazca „ahoj“, ktoré sme uložili.
Teraz, keďže ide o binárny dátový typ dĺžky 50, môžeme vidieť, že zvyšok bajtov je vyplnený hodnotami „00“, čo nie je nič iné ako reprezentácia bajtu pre číslicu „0“.
Pozrite si hodnotu uvedenú v premennej „varbinary_col“, ktorá je dátového typu VARBINARY.
Tu pre VARBINARY vidíte, že hodnoty sú len vyplnené pre dĺžku 5, ktorá je ekvivalentná dĺžke reťazca, ktorú sme uložili. Nie je tu žiadna nulová výplň, aj keď sme deklarovali VARBINÁRNY stĺpec s dĺžkou 50.
BLOB A TEXT
Dátové typy BLOB a TEXT sú podobné dátovým typom BINARY a CHAR s tým rozdielom, že môžu podporovať väčšie veľkosti ako ich základné náprotivky.
Je dôležité poznamenať, že BLOB ukladá údaje ako binárne reťazce, zatiaľ čo dátový typ TEXT sa ukladá ako nebinárne reťazce. Všetky tieto dátové typy tiež nevyžadujú uvedenie dĺžky pri zmienke o dátovom type. Vo svojej podstate majú prirodzenú premennú dĺžku a spotrebúvajú pamäť iba proti tej, ktorá je uložená ako skutočná hodnota stĺpca.
Dátové typy BLOB sa zvyčajne používajú na bezpečné a efektívne ukladanie súborov, ako sú obrázky, dokumenty PDF atď. Ako binárne reťazce.
Podrobnosti o rôznych variantoch dátových typov BLOB a TEXT sú uvedené nižšie:
Typ | Rozsah | Popis | Príklady |
---|---|---|---|
TINYTEXT | 0-255 (255 bajtov) | Rozsah je rovnaký ako VARCHAR - Používa sa na ukladanie malých informácií, ako sú tituly, mená autorov atď. | CREATE TABLE tinytext_example(tinytext_col TINYTEXT); |
TEXT | 0-65535 (64 kB) | Tento dátový typ je dostatočný na uloženie textu pre malý a stredne veľký článok. | CREATE TABLE text_example(text_col TEXT); |
STREDNÝ TEXT | 0 - 16 777 215 (16 MB) | Tento údajový typ môže stačiť na uloženie textu pre celú učebnicu | CREATE TABLE mediumtext_example(mediumtext_col MEDIUMTEXT); |
DLHÝ TEXT | 0 - 4 294 967 295 (4 GB) | LONGTEXT sa zriedka používa špeciálne v prípadoch, keď program MEDIUMTEXT nestačí. | CREATE TABLE longtext_example(longtext_col LONGTEXT); |
TINYBLOB | 0-255 (255 bajtov) | Na ukladanie binárnych reťazcov sa používajú všetky dátové typy BLOB a sú všeobecne preferované na ukladanie súborov, ako sú obrázky, dokumenty PDF alebo samotné malé aplikácie. V závislosti od požiadaviek na veľkosť je možné zvoliť a použiť rôzne dátové typy BLOB. | CREATE TABLE tinyblob_example(tinyblob_col TINYBLOB); |
BLOB | 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 dátový typ typu String, ktorý preddefinuje povolené hodnoty, ktoré môže mať stĺpec. Je to podobné ako dátové typy ENUM, ktoré existujú v rôznych programovacích jazykoch, ako sú JAVA, C # atď.
Hodnoty ENUM, keď sú uložené, sa prevedú na čísla oproti každej hodnote stĺpca, čo vedie k značnej úspore pamäte pre tabuľky, ktoré majú veľký počet záznamov, tj. Predpokladajme, že máme ENUM, ktorý má hodnoty - hodnota1, hodnota2 a hodnota3, potom by skutočné pamäťové úložisko malo byť číselné indexuje 1,2,3 zákulisia.
Syntax:
ENUM({comma separated enum values})
Príklady otázok:
Vytvorte tabuľku s 2 stĺpcami na ukladanie mobilných modelov ako reťazce a názvy spoločností ako dátové typy ENUM s hodnotami - APPLE, SAMSUNG a NOKIA. Pozrime sa tiež na dotazy na načítanie údajov oproti konkrétnej hodnote 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) ;
Vo vyššie uvedenom dotaze môžete vidieť, že sme pri vkladaní použili názvy Enum aj číselné indexy.
Skúsme vyhľadať všetky mobilné zariadenia so značkou „SAMSUNG“ a tiež podľa číselného indexu SAMSUNG, ktorý je „1“.
SELECT * FROM mobile_details where brand='SAMSUNG' SELECT * FROM mobile_details where brand=1
Výstup oboch vyššie uvedených dotazov bude rovnaký, ako je uvedené nižšie:
NASTAVIŤ
Dátový typ MySQL SET je objekt typu String, ktorý môže mať jednu alebo viac ako jednu hodnotu z povoleného rozsahu, ako je opísané počas definície stĺpca. Je to podobné ako ENUM, ale umožňuje priradiť viac hodnôt z definovaného zoznamu ako hodnoty stĺpcov.
Dátové typy SET sa tiež ukladajú ako číselné indexy začínajúce 2 ^ 0 - tj. 1,2,4,8 atď.
Syntax:
SET({comma separated list of allowed values})
Príklad:
Skúsme pochopiť dátový typ SET s príkladmi. Vytvoríme tabuľku s názvom mobile_details so stĺpcovým modelom typu String a stĺpcom s názvom podporovaný OS, ktorý je dátovým typom množiny a obsahuje zoznam podporovaných verzií operačného systému.
CREATE TABLE mobile_details(model VARCHAR(100), supported_os SET('ios9', 'ios10', 'android8', 'android9','android10'));
Vidíme, že sme hodnoty operačného systému uviedli ako súčasť stĺpca s dátovým typom SET. Zodpovedajúce DECIMÁLNE hodnoty, ktoré sú im priradené, sú uvedené nižšie:
Teraz, ak chceme priradiť hodnotu SET, napríklad, „Android8, android9“ do riadku môžeme jednoducho priradiť pridanie priradených desatinných hodnôt, t. J. 12, aby mali rovnaký efekt.
Priradenie k riadku s názvom modelu „GALAXYM1“ nájdete v dotaze INSERT vyššie.
INSERT INTO mobile_details values ('IPHONE X', ('ios9,ios10')),('GALAXY M1', (12)), ('GALAXY M2', ('android9,android10')) ; SELECT * from mobile_details;
Výstup vyššie uvedeného príkazu:
Môžeme tiež dopytovať stĺpec SET proti ich desatinnému zastúpeniu - predpokladajme, že chceme dopytovať dopyt „ios9, ios10“ - súčet desatinného vyjadrenia je 3, takže môžeme dopytovať ako:
SELECT * from mobile_details where supported_os=3
Výkon:
Špeciálne typy údajov
BOOLEAN
Boolovský dátový typ MySQL ukladá hodnotu stĺpca ako TRUE alebo FALSE. Tento dátový typ je všeobecne vhodný na ukladanie hodnôt príznakov do tabuliek MySQL. Napríklad - V tabuľke bankových účtov so stĺpcom s názvom is_savings_account je možné uložiť hodnotu true alebo false.
Hodnota BOOLEAN je v MySQL uložená ako 1 alebo 0 pre TRUE, respektíve FALSE.
Syntax:
columnName BOOLEAN
Príklad:
CREATE TABLE account_details(accNo BIGINT, is_savings BOOLEAN); INSERT into account_details values (123456,true), (110002, false), (234567, 1);
Pri vkladaní alebo načítaní hodnôt pre dátový typ BOOLEAN môžeme použiť buď TRUE alebo FALSE alebo ich číselné vyjadrenia - teda 1 alebo 0.
select * from account_details where is_savings=1;
Výstup vyššie uvedeného príkazu:
JSON
MySQL podporuje natívny JSON ako dátový typ pre objekty v notácii JSON. Uľahčuje ukladanie, dopytovanie a vyhľadávanie dokumentov typu JSON, a nie ukladanie ako textové reťazce alebo binárne objekty Blob.
Syntax:
columnName JSON
Fakty:
Definícia | Rozsah | Príklady |
---|---|---|
Dátový typ JSON sa používa na ukladanie dokumentov vo formáte JSON. Akýkoľvek stĺpec definovaný ako JSON by spôsobil chybu, ak je neplatný JSON uložený dotazom INSERT. | Rozsah alebo veľkosť dátového typu JSON je podobný ako LONGTEXT alebo LONGBLOB | CREATE TABLE json_example(json_col JSON); |
Príklad:
MySQL poskytuje rôzne funkcie na dopytovanie údajov JSON. Skúsme vložiť pod JSON a potom uvidíme funkcie MySQL na dopytovanie.
{ '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', } }
Pozrime sa na príkazy na vytvorenie tabuľky a vloženie údajov 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 sa na tabuľku a vytlačte polia pre meno a e-mail z údajov JSON, ktoré sú uložené v riadkoch tabuľky.
select json_col->'$.data.first_name' as firstname, json_col->'$.data.email' as email from json_example
Výkon:
často kladené otázky
Otázka č. 1) Ako môžeme zmeniť dátový typ pre stĺpec MySQL po pridelení?
Odpoveď: Dátový typ stĺpca je možné zmeniť pomocou Príkaz ALTER TABLE .
Zvážte tabuľku student_info s 2 stĺpcami, názvom a vekom typov VARCHAR a INT. To sa dá dosiahnuť pomocou nasledujúceho príkazu CREATE TABLE:
CREATE TABLE student_info(name CHAR(20), age INT);
V tomto príkaze je niekoľko variácií
najlepší softvér na údržbu systému pre Windows 10
- Ak chceme zmeniť iba údajový typ stĺpca - Môžeme použiť príkaz MODIFY spolu s ALTER
Vo vyššie uvedenej tabuľke predpokladajme, že chceme zmeniť stĺpec datový typ veku, môžeme použiť nasledujúci príkaz
ALTER TABLE student_info MODIFY age TINYINT
- Ak chceme zmeniť názov stĺpca, ako aj dátový typ stĺpca - Môžeme použiť príkaz ZMENIŤ spolu s ALTER
Vo vyššie uvedenej tabuľke predpokladajme, že chceme zmeniť názov stĺpca z „názvu“ na „sname“ a dátový typ z CHAR na VARCHAR (50), môžeme použiť nasledujúci príkaz:
ALTER TABLE student_info CHANGE name sname VARCHAR(50)
Otázka 2) Aký je dátový typ pre obrázok v mysql?
Odpoveď: Na ukladanie ľubovoľných typov súborov v MySQL, ako sú obrázky, pdf atď., Je najvhodnejší BLOB alebo binárny dátový typ. K dispozícii sú rôzne varianty dátového typu BLOB v závislosti od veľkosti cieľového súboru, ktorý chceme uložiť. Môžeme použiť varianty BLOB ako - TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB
Otázka č. 3) Ktorý dátový typ je vhodnejší na ukladanie dokumentov v mysql?
Odpoveď: Podobne ako BLOB pre obrázky alebo súbory PDF, aj pre ukladanie textových dokumentov / článkov možno použiť dátový typ TEXT. Toto je rozšírenie k údajovému typu CHAR s podporou pre ďalšie ukladanie znakov.
Dostupné sú rôzne varianty dátového typu TEXT - TEXT, TINYTEXT, STREDNÝ TEXT A DLHÝ TEXT
Otázka č. 4) Aký je dátový typ meny v MySQL?
Odpoveď: Na ukladanie údajov s menovými hodnotami je najvhodnejším dátovým typom DECIMAL. Slúži na ukladanie dátových typov s presnou presnosťou. Napríklad, názov stĺpca s typom DECIMAL (4,2), uloží hodnoty v rozmedzí od -99,99 do 99,99 a na rozdiel od nich vráti hodnotu s rovnakou presnosťou pri načítaní. aproximácia pre čísla s pohyblivou rádovou čiarkou.
Otázka č. 5) Čo sa stane, ak sa niekto pokúsi vložiť záporné čísla do stĺpcov CELÉHO ZNAKU?
Odpoveď: MySQL generuje chybu pre takéto príkazy vloženia
Skúsme vytvoriť tabuľku so stĺpcom INT, ktorá má možnosť NEPODPÍSANÉ.
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) Ako získať údaje o aktuálnom dátume v mysql?
Odpoveď: MySQL poskytuje 2 zabudované funkcie dátumu a času na načítanie aktuálnych hodnôt
Funkcia CURDATE () vráti aktuálny dátum
SELECT CURDATE();
Výkon
2020-08-10
Funkcia NOW () vráti aktuálny dátum s časovou pečiatkou.
SELECT NOW();
Výkon
2020-08-10 00:42:54
Otázka č. 7) Z CHAR a VARCHAR - ktorý z nich je vhodnejší?
Odpoveď: VARCHAR znamená variabilný znak a má dôležitú výhodu v tom, že spotrebuje menej pamäte v porovnaní s CHAR rovnakej dĺžky. Napríklad, Stĺpec s VARCHAR (50), ak ukladá reťazce s dĺžkou 20, by mal za následok skonzumovanie iba 20 bajtov na rozdiel od dátového typu deklarovaného pomocou CHAR (50)
Otázka č. 8) Ako aktualizovať hodnotu ENUM v MySQL?
Odpoveď: Ak chcete aktualizovať stĺpec ENUM v MySQL, budete musieť upraviť zmienku o existujúcich hodnotách stĺpca, aby existujúce položky zostali nedotknuté.
Pokúsme sa to pochopiť na príklade.
Predpokladajme, že máme tabuľku s názvom mobile_details, ktorá má modelové pole ako String (VARCHAR) a stĺpec značky ako ENUM s počiatočnými hodnotami ako „APPLE“, SAMSUNG „a NOKIA“
Predpokladajme, že teraz chceme do existujúceho výčtu pridať ďalšiu značku „MOTOROLA“. Pozrime sa na otázky, ktoré by sme potrebovali vykonať.
CREATE TABLE mobile_details(model VARCHAR(100), brand ENUM('SAMSUNG', 'APPLE', 'NOKIA'));
Po vytvorení môžete získať podrobnosti o pôvodných hodnotách ENUM pomocou príkazu DESCRIBE
DESCRIBE mobile_details;
Teraz spustíme príkaz na aktualizáciu ENUM
ALTER TABLE mobile_details MODIFY column brand ENUM('SAMSUNG', 'APPLE', 'NOKIA', 'MOTOROLA');
Znova môžeme spustiť príkaz DESCRIBE, aby sme zistili, či sa aktualizácie úspešne používajú.
DESCRIBE mobile_details
Tu je výstup vyššie uvedeného príkazu:
Záver
V tomto tutoriáli sme sa dozvedeli o rôznych dátových typoch, ktoré sú podporované MySQL.
Dozvedeli sme sa o údajových typoch číselného, pohyblivého, reťazcového a dátumového času spolu so syntaxou a rôznymi príkladmi.
Dátové typy MySQL sú základnými stavebnými kameňmi pre začatie a jedným z najdôležitejších aspektov počas návrhu schémy MySQL.
Odporúčané čítanie
- Dátové typy C ++
- Dátové typy v Pythone
- C # dátové typy a premenné s príkladmi
- PL SQL dátové typy, premenné, konštanty a literály
- Typy údajov poľa - int pole, dvojité pole, pole reťazcov atď.
- Príkaz na odstránenie MySQL - odstránenie syntaxe príkazov a príkladov
- MySQL Vložiť do tabuľky - Vložiť syntax príkazov a príklady
- Výukový program MySQL JOIN: Vnútorný, Vonkajší, Krížový, Ľavý, Pravý a Ja