mysql data types what are different data types mysql
Научете за различни типове данни на MySQL, т.е. Numeric, String, Data type type, JSON, Boolean и др. С примери:
В този урок ще научим за различни типове данни, които се поддържат от MySQL. Типовете данни се посочват срещу всяка колона, когато се създава таблица, а също и при актуализиране / промяна на таблицата, за да се добави нова колона към съществуващата таблица
Ще научим за типовете данни в три различни категории, т.е.числови типове данни, типове данни String и типове данни Datetime.
Какво ще научите:
Типове данни на MySQL
Предварителни условия
Ще изучаваме всички типове данни с работещи примери в MySQL. Следователно се препоръчва да имате инсталиран MySQL, за да изпълнявате заявките заедно с подробности за по-добро разбиране на концепцията.
Също така можете да създадете примерна база данни с име sql_data_types, която да съдържа всички таблици, които бихме използвали за примери.
create database sql_data_types; use sql_data_types;
Цифрови типове данни
Цифровите типове данни могат да бъдат разделени на 3 типа:
- Цялостни типове данни
- Видове фиксирани точки
- Типове с плаваща запетая
Нека обсъдим всяко от тях:
Цялостни типове данни
Тези типове данни поддържат цели числа без никакво десетично представяне. Има различни подтипове като - INT, TINYINT, MEDIUMINT, SMALLINT, BIGINT
INT:
Синтаксис:
INT[(width)] [UNSIGNED] [ZEROFILL]
Факти:
Описание | Обхват | Памет | Настроики |
---|---|---|---|
СРЕДЕН КРАН | 0-16 777 215 (16MB) | CREATE TABLE mediumblob_example(mediumblob_col MEDIUMBLOB); | |
Най-често използваният цифров тип. Съхранява цели числа ПО подразбиране - неподписани стойности | –2,147,483,648 до 2,147,483,647 | 4 байта | Ако се използва с опция UNSIGNED - Обхватът се променя на 0 до 4 294 967 295 Опцията за ширина може да се използва с ZEROFILL, за да запълни записите с нула за стойности, по-малки от ширината |
Примери:
Ще създадем таблица с 1 колона с INT тип данни и различни опции.
CREATE TABLE numbers_int(int_col INT) INSERT into numbers_int values(100),(-324),(2456),(-100000); select * from numbers_int
Изход на командата 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;
Резултат от горната команда:
Други варианти на INT:
Налични са множество опции за INT в зависимост от конкретните изисквания. Те обикновено се използват, когато паметта или пространството са проблем, но за всички практически цели INT е най-широко използваният.
Различните варианти на типа данни INT, които са налични, са изброени по-долу:
Тип данни | Обхват | Пример | Използвана памет / байтове |
---|---|---|---|
TINYINT | -128 - 127 | CREATE TABLE numbers_tinyint(tinyint_col TINYINT); | един |
СМАЛИНТ | -32768 - 32767 | CREATE TABLE numbers_smallint(smallint_col SMALLINT); | две |
СРЕДЕН ПЪТ | -8388608 - 8388607 | CREATE TABLE numbers_mediumint(mediumint_col MEDIUMINT); | 3 |
ГОЛЯМ | -2 ^ 63 - (2 ^ 63-1) | CREATE TABLE numbers_bigint(bigint_col BIGINT); | 8 |
Типове с плаваща запетая
Типовете с плаваща запетая са приблизителни типове стойности и това зависи от не. с точност до десетичната запетая, посочена по време на декларацията за типа колона
Има 2 типа типове данни с плаваща запетая: FLOAT и DOUBLE, които поддържат различни диапазони и консумират памет / съхранение.
ПЛАВАНЕ И ДВОЙНО
Съгласно новия препоръчителен синтаксис - както FLOAT, така и DOUBLE прецизността могат да бъдат зададени само с типове данни FLOAT.
Синтаксис:
FLOAT(p)
Тук, стр -> прецизност
Факти:
Описание | Памет | Настроики | Примери |
---|---|---|---|
FLOAT / DOUBLE представлява числа с плаваща запетая с приблизителни стойности Т.е. когато MySQL съхранява тези стойности, тези стойности се приближават до най-близката точност според декларирания тип. Прецизността между 0-23 представлява тип FLOAT, докато 24 до 53 ще генерира двоен тип, консумиращ 8 байта | -Прецизност - 0-23 => 4 байта -Прецизност -24-53 => 8 байта | -Номерата с плаваща запетая могат да бъдат ПОДПИСАНИ, както и НЕПОДПИСАНИ -FLOAT обикновено е с точност до 7 знака след десетичната запетая, докато DOUBLE е с точност до 14 знака след десетичната запетая -Съществува и друг нестандартен начин за деклариране на FLOAT и DOUBLE с уточняване на точки за прецизност FLOAT (n, d) - където n е общата цифра, а d е десетичната запетая | -Създаване на таблица с колона DOUBLE тип данни СЪЗДАЙТЕ ТАБЛИЦА numbers_double (double_col FLOAT (30)); -Създаване на таблица с колона DOUBLE тип данни и прецизни цифри като 5 СЪЗДАЙТЕ ТАБЛИЦА numbers_double (double_col DOUBLE (20,5)); |
Нека да видим някои примери за извличане на стойностите на двойни типове:
CREATE TABLE numbers_double(double_col DOUBLE(20,5)); insert into numbers_double VALUES(123.45),(-145),(12.3456788); select * from numbers_double;
Изход на оператора SELECT:
Тук можем да видим, че стойностите се съхраняват до 5 знака след десетичната запетая, както е посочено по време на декларацията на типа данни.
Видове фиксирани точки
Тези типове данни се използват за съхраняване на точна стойност с определена точност. Тези типове данни обикновено се използват, когато се изисква точно съхранение с точност. Например, банкови сметки е изискване за поддържане на баланси с 2 знака след десетичната запетая, ние се нуждаем от данни, които да се съхраняват с точна точност.
ДЕКРАМИЧНИ / ЧИСЛЕНИ
Синтаксис:
DECIMAL[(width[,decimals])] [UNSIGNED] [ZEROFILL]
Факти:
Описание | Обхват | Памет | Настроики |
---|---|---|---|
DECIMAL е числов тип данни в MySQL и съхранява точни стойности с определена точност. Мащабът или ширината по подразбиране за типа данни DECIMAL е прецизност 10 и 0. Моля, обърнете внимание, че типовете DECIMAL и NUMERIC могат да се използват взаимозаменяемо. | Зависи от посочения диапазон Например DECIMAL (5,2) ще има диапазон от -999,99 до 999,99 | Бинарният формат на потребителите на MySQL за съхраняване на тип ДЕЦИМАЛЕН тип данни - Той изисква четири байта на всеки 9 цифри - Така че например, ако имаме DECIMAL (14,2) - ще са необходими общо - 9 (4) + 2 (1) => 7 байта | -Максималната стойност на ширината може да бъде 265 -Броят на десетичните знаци не е задължителен и стойността по подразбиране е 0 |
Пример:
CREATE TABLE numbers_decimal(dec_col DECIMAL(4,2)) INSERT INTO numbers_decimal values(-99),(50.50);
Типове данни DateTime
Типовете данни DateTime в MySQL, както подсказва името, се използват за съхраняване на стойности за дата и час в базата данни MySQL.
Има 2 временни типа, поддържани от MySQL - ВРЕМЕ И ВРЕМЕТО
Нека обсъдим и двете в долните раздели.
ВРЕМЕ ЗА СРЕЩА
Синтаксис:
DATETIME(n)
Тук n -> прецизност / частична част от частта от секундите (поддържаната максимална точност е 6).
Факти:
Описание | Обхват | Памет | Примери |
---|---|---|---|
Използва се за съхраняване на дата и час в колоната MySQL При запитване, данните в колоната показват дата и час във формата по-долу: ГГГГ-ММ-ДД ЧЧ: ММ: СС | 1000-01-01 00:00:00 - 9999-12-31 23:59:59 | 5 байта Когато е включена дробна част, тогава за всеки 2 дробни цифри се изразходва допълнителен байт. | CREATE table datetime_example(date_col DATETIME); // ИЗХОД date_col 2020-08-08 22:22:53 |
TIMESTAMP
Синтаксис:
TIMESTAMP(n)
Тук n -> прецизност / частична част от секундата част (поддържаната максимална точност е 6)
Факти:
Описание | Обхват | Памет | Примери |
---|---|---|---|
Друг временен тип данни, използван за съхраняване на дата и час. Това съхранява датата като UTC, също с ограничен диапазон между 1970 и 2038 | 1970-01-01 00:00:01 UTC - 2038-01-19 03:14:07 UTC | 4 байта | CREATE table timestamp_example(ts_col TIMESTAMP); ИЗХОД ts_col 2020-08-08 22:19:11 |
Низови типове данни
Типовете низови данни, както подсказва името, се използват за съхраняване на низове / текстове или петна от текстова информация в базата данни. В зависимост от случая на употреба съществуват различни такива типове данни -CHAR, VARCHAR, BINARY, VARBINARY, TEXT, ENUM, SET & BLOB
Нека разберем всеки от тези различни типове данни с примери.
ЧАР И ВАРЧАР
И двата типа се използват за съхраняване на String стойности в колоните в MySQL, но те се различават по начина на съхранение и извличане на стойностите.
CHAR & VARCHAR се декларират с дължина, която показва максималната дължина на низа, който искате да съхраните в колоната.
Синтаксис:
CHAR(n) VARCHAR(n)
Тук n -> макс. от символи, които да се съхраняват в колоната
Факти:
Тип | Описание | Обхват | Примери |
---|---|---|---|
ЧАР Синтаксис - CHAR (n) | CHAR може да съхранява низ с дължина n, както е дефинирано по време на декларацията. Ако низът е по-малък от n символ, тогава той е подплатен с интервали. | Дължината на типа данни CHAR може да варира от 0 - 255 В зависимост от дължината, консумацията на памет ще варира от 0 - 255 байта. | CREATE TABLE string_example(char_col CHAR(50)); |
ВАРЧАР Синтаксис - VARCHAR (n) | VARCHAR ви позволява да съхранявате низове с променлива дължина и да консумирате памет спрямо действителния размер на съхранения низ, а не максималната стойност, посочена по време на дефиницията на колоната. | Дължината на типа данни VARCHAR може да варира от 0 - 65535 В зависимост от дължината, консумацията на памет ще варира от 0 - 65535 байта. | CREATE TABLE string_example(varchar_col VARCHAR(50)); |
ДВОЙНИ И ВАРБИНАРНИ
Подобно на CHAR и VARCHAR - тези типове данни съхраняват низове, но в двоичен формат.
Дължината на типовете данни BINARY и VARBINARY се измерва в байтове, за разлика от броя символи в типовете данни CHAR и VARCHAR.
Синтаксис:
BINARY(n) VARBINARY(n)
Тук n -> макс. от байта, които да се съхраняват от колоната.
Факти:
Тип | Описание | Обхват | Примери |
---|---|---|---|
ДВОЙНИ Синтаксис - BINARY (n) | BINARY може да съхранява ‘n’ двоични байтове. За стойности по-малки от n те се допълват с 0 байта и се съхраняват | Дължината на типа данни BINARY може да варира от 0 - 255 В зависимост от дължината, консумацията на памет ще варира от 0 - 255 байта. | CREATE TABLE binary_string(binary_col BINARY(50)); |
ВАРБИНАРНА Синтаксис - VARBINARY (n) | VARBINARY ви позволява да съхранявате двоични низове с променлива дължина до ‘n дължина (както е посочено в дефиницията на колона) | Дължината на типа данни VARBINARY може да варира от 0 - 65535 В зависимост от дължината, консумацията на памет ще варира от 0 - 65535 байта. | CREATE TABLE variable_binary_string(varbinary_col VARBINARY(50)); |
Нека разберем по-подробно типа данни BINARY. Ще създадем таблица с колона, всяка от двоичен и варбинен тип данни и ще проверим съдържанието.
CREATE TABLE binary_strings(binary_col BINARY(50), varbinary_col VARBINARY(50)); INSERT into binary_strings values('hello', 'hello'); SELECT * from binary_strings;
Сега видяхме изхода като BLOB, което означава - Б. inary L лошо OB ject - и това не са нищо друго освен двоично / шестнадесетично представяне на стойностите на String, които сме вмъкнали в колоните.
Сега ще проверим стойностите на тези двоични низове и ще видим как се съхраняват.
Първо, нека видим стойността, присъстваща в ‘binary_col’, която е от тип данни BINARY.
Нека разберем кои са стойностите, които се съхраняват - Ако забележите стойностите спрямо първите 5 записа - т.е. първи ред и първите 5 колони (0-4)
Това са само HEX представянията за символите на String ‘hello’, които сме съхранили.
Сега, тъй като това е BINARY тип данни с дължина 50, можем да видим, че останалите байтове са подплатени със стойности „00“, което не е нищо друго освен байтово представяне за цифра „0“.
Вижте стойността, налична в ‘varbinary_col’, която е от тип данни VARBINARY.
Тук, за VARBINARY, можете да видите, че стойностите са просто попълнени за дължина 5, което е еквивалентно на дължината на низа, която сме съхранили. Няма Zero подплата, въпреки че декларирахме VARBINARY колона с дължина 50.
BLOB И ТЕКСТ
Типовете данни BLOB и TEXT са подобни на типовете данни BINARY и CHAR с разликата, че могат да поддържат по-големи размери в сравнение с основните си аналози.
Важно е да се отбележи, че BLOB съхранява данни като двоични низове, докато TEXT типът данни съхранява като небинарни низове. Също така, всички тези типове данни не изискват посочване на дължината, като се споменава типът данни. По своята същност те имат променлива дължина и консумират памет само срещу това, което се съхранява като действителната стойност на колоната.
BLOB типовете данни обикновено се използват за съхраняване на файлове като изображения, pdf документи и др. Като двоични низове по сигурен и ефективен начин.
Подробности за различни варианти на BLOB и TEXT типове данни са изброени по-долу:
Тип | Обхват | Описание | Примери |
---|---|---|---|
ТИНИКСТ | 0-255 (255 байта) | Обхватът е същият като VARCHAR - Използва се за съхраняване на малка информация като заглавия, имена на автори и т.н. | CREATE TABLE tinytext_example(tinytext_col TINYTEXT); |
ТЕКСТ | 0-65535 (64KB) | Този тип данни е достатъчен за съхраняване на текст за малка до средно голяма статия. | CREATE TABLE text_example(text_col TEXT); |
СРЕДЕН ТЕКСТ | 0-16 777 215 (16MB) | Този тип данни може да е достатъчен за съхраняване на текст за цял учебник | CREATE TABLE mediumtext_example(mediumtext_col MEDIUMTEXT); |
ДЪЛГОТЕКСТ | 0 - 4 294 967 295 (4 GB) | LONGTEXT рядко се използва специално в случаите, когато MEDIUMTEXT не е достатъчен. | CREATE TABLE longtext_example(longtext_col LONGTEXT); |
ТИНИБЛОБ | 0-255 (255 байта) | Всички BLOB типове данни се използват за съхраняване на двоични низове и обикновено се предпочитат за съхраняване на файлове като изображения, pdf документи или самите малки приложения. В зависимост от изискванията за размера могат да бъдат избрани и използвани различните BLOB типове данни. | CREATE TABLE tinyblob_example(tinyblob_col TINYBLOB); |
BLOB | 0-65535 (64KB) | CREATE TABLE blob_example(blob_col BLOB); | |
LONGBLOB | 0 - 4 294 967 295 (4 GB) | CREATE TABLE longblob_example(longblob_col LONGBLOB); |
ENUM
ENUM е тип данни String, който предварително дефинира разрешените стойности, които може да има колона. Подобно е на типовете данни на ENUM, които съществуват в различни програмни езици като JAVA, C # и т.н.
Стойностите на ENUM, когато се съхраняват, се преобразуват в числа спрямо всяка стойност на колона, което води до значително спестяване на памет за таблици с голям брой записи, т.е. да предположим, че имаме ENUM със стойности - value1, value2 и value3, тогава действителното съхранение на паметта ще бъде числово индекси 1,2,3 зад кулисите.
Синтаксис:
ENUM({comma separated enum values})
Примерни заявки:
Създайте таблица с 2 колони за съхраняване на мобилни модели като String и имена на компании като типове данни ENUM със стойности - APPLE, SAMSUNG и NOKIA. Нека да видим и заявки за извличане на данни спрямо определена стойност на 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) ;
В горната заявка можете да видите, че по време на вмъкването сме използвали имена на Enum, както и числови индекси.
Нека опитаме да направим заявка за всички мобилни устройства с марката „SAMSUNG“, както и да отправим запитване към числовия индекс на SAMSUNG, който е „1“.
SELECT * FROM mobile_details where brand='SAMSUNG' SELECT * FROM mobile_details where brand=1
Резултатът от двете горепосочени заявки ще бъде същият, както е споменато по-долу:
КОМПЛЕКТ
Типът данни на MySQL SET е обект String, който може да има една или повече от една стойност от разрешен диапазон, както е описано по време на дефинирането на колона. Подобно е на ENUM, но позволява множество стойности от дефинирания списък да бъдат свързани като стойности на колони.
Също така, типовете данни SET се съхраняват като индекси на числата, започващи 2 ^ 0 - т.е. 1,2,4,8 и т.н.
Синтаксис:
SET({comma separated list of allowed values})
Пример:
Нека се опитаме да разберем типа данни SET с примери. Ще създадем таблица с име mobile_details с модел на колона от тип String и колона с име на поддържана операционна система, която е зададен тип данни и съдържа списък на поддържаните версии на операционната система.
CREATE TABLE mobile_details(model VARCHAR(100), supported_os SET('ios9', 'ios10', 'android8', 'android9','android10'));
Виждаме, че сме изброили стойностите на операционната система като част от колона с тип данни SET. Съответните DECIMAL стойности, които са присвоени на тях, са изброени по-долу:
Сега, ако искаме да присвоим SET стойност, например, ‘Android8, android9’ на ред, ние можем просто да присвоим добавянето на зададените десетични стойности, т.е. 12, за да има същия ефект.
Моля, обърнете се към заявката INSERT по-горе за присвояване на ред с име на модел „GALAXYM1“
INSERT INTO mobile_details values ('IPHONE X', ('ios9,ios10')),('GALAXY M1', (12)), ('GALAXY M2', ('android9,android10')) ; SELECT * from mobile_details;
Резултат от горната команда:
Също така можем да отправим запитване към колоната SET към тяхното десетично представяне - да предположим, че искаме да направим заявка за „ios9, ios10“ - сумата на десетичното представяне е 3, така че можем да заявим като:
SELECT * from mobile_details where supported_os=3
Изход:
Специални типове данни
БУЛИН
Логическият тип данни на MySQL съхранява стойност на колона като TRUE или FALSE. Този тип данни обикновено е подходящ за съхраняване на стойности на флага в таблиците MySQL. Например - Таблица на банковата сметка, съдържаща колона с име is_savings_account, може да съхранява или true, или false.
Стойността BOOLEAN се съхранява в MySQL като 1 или 0, съответно TRUE и FALSE.
Синтаксис:
columnName BOOLEAN
Пример:
CREATE TABLE account_details(accNo BIGINT, is_savings BOOLEAN); INSERT into account_details values (123456,true), (110002, false), (234567, 1);
Докато вмъкваме или извличаме стойности за тип данни BOOLEAN, можем да използваме TRUE или FALSE или техните цифрови представления - т.е. 1 или 0.
select * from account_details where is_savings=1;
Изход на горната команда:
JSON
MySQL поддържа родния JSON като тип данни за обекти в нотация на JSON. Това прави съхранението, заявките и извличането лесно за документи от тип JSON, вместо да се съхраняват като текстови низове или двоични петна.
Синтаксис:
columnName JSON
Факти:
Определение | Обхват | Примери |
---|---|---|
Типът данни JSON се използва за съхраняване на документи, които са във формат JSON. Всяка колона, дефинирана като JSON, ще изведе грешка, ако невалиден JSON се съхранява от INSERT заявка. | Обхватът или размерът на типа данни JSON е подобен на LONGTEXT или LONGBLOB | CREATE TABLE json_example(json_col JSON); |
Пример:
MySQL предоставя различни функции за заявка на JSON данни. Нека опитаме да вмъкнем под JSON и тогава ще видим MySQL функции за заявка.
{ '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', } }
Нека видим команди за създаване на таблица и вмъкване на 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' }}');
Заявете таблицата и отпечатайте имената и имейл полетата от JSON данните, които се съхраняват в редовете на таблицата.
select json_col->'$.data.first_name' as firstname, json_col->'$.data.email' as email from json_example
Изход:
често задавани въпроси
В # 1) Как можем да променим типа на данните за MySQL колона, след като веднъж е присвоена?
Отговор: Типът данни на колоната може да бъде променен с помощта на Команда ALTER TABLE .
Помислете за таблица student_info, съдържаща съответно име и възраст на колони тип VARCHAR и INT. Това може да бъде постигнато чрез следната команда CREATE TABLE:
CREATE TABLE student_info(name CHAR(20), age INT);
Има няколко варианта в тази команда
кой е добър сайт за гледане на аниме
- Ако искаме да променим само типа данни на колоната - Можем да използваме командата MODIFY заедно с ALTER
Да предположим, че в горната таблица искаме да променим типа данни за колона възраст, можем да използваме следната команда
ALTER TABLE student_info MODIFY age TINYINT
- Ако искаме да променим името на колоната, както и типа данни на колоната - Можем да използваме командата CHANGE заедно с ALTER
Да предположим, че в горната таблица искаме да променим името на колоната от „name“ на „sname“ и типа данни от CHAR на VARCHAR (50), можем да използваме следната команда:
ALTER TABLE student_info CHANGE name sname VARCHAR(50)
В # 2) Какъв е типът данни за изображение в mysql?
Отговор: За съхраняване на който и да е от типовете файлове в MySQL като изображения, pdf и т.н. BLOB или двоичен тип данни е най-подходящият тип. Налични са различни варианти на BLOB тип данни в зависимост от размера на целевия файл, който искаме да съхраним. Можем да използваме варианти на BLOB като - TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB
В # 3) Кой тип данни е по-подходящ за съхраняване на документи в mysql?
Отговор: Подобно на BLOB за изображения или pdf файлове, за съхранение на текстови документи / статии може да се използва тип данни TEXT. Това е разширение за тип данни CHAR с поддръжка за съхранение на допълнителни символи.
Наличните различни варианти на типа данни TEXT са - ТЕКСТ, ТИНИКСТ, СРЕДЕН ТЕКСТ И ДЪЛГ ТЕКСТ
В # 4) Какъв е типът данни за валута в MySQL?
Отговор: За съхраняване на данни за валутни стойности най-подходящият тип данни е ДЕЦИМАЛЕН. Използва се за съхраняване на типове данни с точна точност. Например, име на колона с тип DECIMAL (4,2), ще съхранява стойности в диапазон от -99,99 до 99,99 и връща стойността със същата прецизност при извличане за разлика. приближение за числа с плаваща запетая.
В # 5) Какво се случва, ако някой се опита да вмъкне отрицателни числа за НЕПОДПИСАНИ целочислени колони?
Отговор: MySQL генерира грешка за такива оператори за вмъкване
Нека се опитаме да създадем таблица с INT колона с опция UNSIGNED.
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
В # 6) Как да получа данните за текущата дата в mysql?
Отговор: MySQL предоставя 2 вградени функции за дата и час за извличане на текущи стойности
Функцията CURDATE () връща текущата дата
SELECT CURDATE();
Изход
2020-08-10
Функцията NOW () връща текущата дата с клеймо за време.
SELECT NOW();
Изход
2020-08-10 00:42:54
В # 7) Извън CHAR и VARCHAR - кой е по-подходящ?
Отговор: VARCHAR означава променлив знак и има важно предимство да консумира по-малко памет в сравнение с CHAR със същата дължина. Например, Колона с VARCHAR (50), ако съхранява низове с дължина 20, би довела до консумация само на 20 байта, за разлика от типа данни, деклариран с CHAR (50)
В # 8) Как да актуализирам стойността на ENUM в MySQL?
Отговор: За да актуализирате колона ENUM в MySQL, ще трябва да промените, като споменете съществуващите стойности на колони, така че съществуващите записи да останат непокътнати.
Нека се опитаме да разберем това с пример.
Да предположим, че имаме таблица с име mobile_details с поле на модел като String (VARCHAR) и колона с марка като ENUM с начални стойности като ‘APPLE’, SAMSUNG ’и‘ NOKIA ’
Сега, да предположим, че искаме да добавим друга марка „MOTOROLA“ към съществуващото изброяване. Нека да видим заявките, които ще трябва да изпълним.
CREATE TABLE mobile_details(model VARCHAR(100), brand ENUM('SAMSUNG', 'APPLE', 'NOKIA'));
Веднъж създадени, можете да получите подробности за оригиналните стойности на ENUM, като използвате командата DESCRIBE
DESCRIBE mobile_details;
Сега нека изпълним командата за актуализиране на ENUM
ALTER TABLE mobile_details MODIFY column brand ENUM('SAMSUNG', 'APPLE', 'NOKIA', 'MOTOROLA');
Можем отново да изпълним командата DESCRIBE, за да видим дали актуализациите са приложени успешно.
DESCRIBE mobile_details
Ето изхода на горната команда:
Заключение
В този урок научихме за различните типове данни, които се поддържат от MySQL.
Научихме за типовете данни с числови, плаващи, низови и дата, заедно със синтаксиса и различни примери.
Типовете данни на MySQL са фундаменталните градивни елементи за започване и един от най-важните аспекти по време на MySQL Schema Design.
Препоръчително четене
- Типове данни на C ++
- Типове данни на Python
- Типове данни и променливи C # с примери
- PL SQL Типове данни, променливи, константи и литерали
- Типове данни за масив - int масив, двоен масив, масив от низове и т.н.
- Изявление за изтриване на MySQL - Изтриване на синтаксис на командата и примери
- MySQL Вмъкване в таблица - Вмъкване на изявление Синтаксис и примери
- Урок за присъединяване на MySQL: Вътрешен, Външен, Кръстосан, Ляв, Десен и Аз