MySQL поддържа няколко SQL типа данни в няколко категории: цифрови, дата и час, низ (текст), пространствени (spatial) и JSON.
Описанията на типа данни използват тези конвенции:
M
– показва максималната ширина на дисплея за типовете цели числа. За типовете с плаваща запетая и фиксирана точкаM
е общият брой цифри, които могат да се съхраняват. За низове,M
е максималната дължина. Максималната допустима стойност наM
зависи от типа данни.D
– се отнася за типове с плаваща запетая и за фиксирана точка и показва броя на цифрите след десетичната запетая.fsp
(fractional seconds precision) – се отнася за типовете TIME, DATETIME и TIMESTAMP и представлява броя на цифрите след десетичната запетая за части от секунди. Стойността наfsp
, ако е зададена, трябва да бъде в диапазона от 0 до 6.- Квадратните скоби
[and]
показват незадължителни части от типовите дефиниции.
Цифрови типове данни
MySQL поддържа всички стандартни SQL цифрови типове данни. Тези типове включват точните цифрови типове данни (INTEGER, SMALLINT, DECIMAL и NUMERIC), както и приблизителните цифрови типове данни (FLOAT, REAL и DOUBLE PRECISION). Ключовата дума INT е синоним на INTEGER, а ключовите думи DEC и FIXED са синоними за DECIMAL.
Тип данни | Описание |
---|---|
TINYINT (големина) | Съдържа стойности в интервал от -128 до 127, 0 до 255 UNSIGNED*. Максималният брой цифри може да бъде посочен в скоби. |
SMALLINT (големина) | Съдържа стойности в интервал от -32768 до 32767, 0 до 65535 UNSIGNED. Максималният брой цифри може да бъде посочен в скоби. |
MEDIUMINT (големина) | Съдържа стойности в интервал от -8388608 до 8388607, 0 до 16777215 UNSIGNED. Максималният брой цифри може да бъде посочен в скоби. |
INT (големина) | Съдържа стойности в интервал от -2147483648 до 2147483647, 0 до 4294967295 UNSIGNED. Максималният брой цифри може да бъде посочен в скоби. |
BIGINT (големина) | Съдържа стойности в интервал от -9223372036854775808 до 9223372036854775807, 0 до 18446744073709551615 UNSIGNED. Максималният брой цифри може да бъде посочен в скоби. |
FLOAT (големина, d) | Малък номер с плаваща десетична запетая. Максималният брой цифри може да бъде посочен в параметъра за големина. Максималният брой цифри вдясно от десетичната запетая се определя в параметъра d. |
DOUBLE (големина, d) | Голям номер с плаваща десетична запетая. Максималният брой цифри може да бъде посочен в параметъра за големина. Максималният брой цифри вдясно от десетичната запетая се определя в параметъра d. |
DECIMAL (големина, d) | ДВОЙНА, съхранена като низ, позволяваща фиксиран десетичен знак. Максималният брой цифри може да бъде посочен в параметъра за големина. Максималният брой цифри вдясно от десетичната запетая се определя в параметъра d. |
Всички цифрови типове данни могат да имат незадължителен атрибут UNSIGNED. UNSIGNED се използва за разрешаване само на неотрицателни числа в колона или когато имате нужда от по-голяма положителна стойност за колоната.
Типове данни за дата и час
Тип данни | Описание |
---|---|
DATE() | Дата във формат: ГГГГ-ММ-ДД, поддържан диапазон от „1000-01-01“ до „9999-12-31“ |
DATETIME() | Комбинация от дата и час във формат: ГГГГ-ММ-ДД HH: MI: SS, поддържаният диапазон от „1000-01-01 00:00:00“ до „9999-12-31 23:59:59“ |
TIMESTAMP() | Стойностите на TIMESTAMP се съхраняват като брой секунди от епохата Unix (‘1970-01-01 00:00:00’ UTC). Формат: ГГГГ-ММ-ДД HH: MI: SS, поддържан диапазон от ‘1970-01-01 00:00:01’ UTC до ‘2038-01-09 03:14:07’ UTC |
TIME() | Време във формат: HH: MI: SS, поддържан обхват от „-838: 59: 59“ до „838: 59: 59“ |
YEAR() | Година в двуцифрен или четирицифрен формат. Разрешени стойности в четирицифрен формат: 1901 до 2155. Допустими стойности в двуцифрен формат: от 70 до 69, представляващи години от 1970г. до 2069г. |
Колоните TIMESTAMP и DATETIME могат автоматично да бъдат инициализирани и актуализирани до текущата дата и час (т.е. текущото време).
Текстови типове данни
Типовете текстови данни (низ, string) са CHAR, VARCHAR, BINARY, VARBINARY, BLOB, TEXT, ENUM и SET.
Тип данни | Описание |
---|---|
CHAR (големина) | Съхранява низ с фиксирана дължина (може да съдържа букви, цифри и специални знаци). Фиксираният размер е посочен в скоби. Може да съхранява до 255 знака. |
VARCHAR (големина) | Съхранява низ с променлива дължина (може да съдържа букви, цифри и специални знаци). Максималният размер е посочен в скоби. Може да съхранява до 255 знака. Забележка: Ако поставите стойност по-голяма от 255, тя ще бъде преобразувана в тип TEXT. |
TINYTEXT | Съдържа стринг с максимална дължина от 255 знака/символа. |
TEXT | Съдържа стринг с максимална дължина от 65,535 знака/символа. |
BLOB | Binary Large OBjects – съхранява до 65 535 байта данни. |
MEDIUMTEXT | Задържа низ с максимална дължина 16 777 215 знака. |
MEDIUMBLOB | Binary Large OBjects – съхранява до 16 777 215 байта данни. |
LONGTEXT | Задържа низ с максимална дължина от 4,294,967,295 знака. |
LONGBLOB | Binary Large OBjects – съхранява до 4 294 967 295 байта данни. |
ENUM (x, y, z) | Позволява въвеждане на списък с възможни стойности (до 65535). Ако се вмъкне стойност, която не е в списъка, ще бъде добавена празна стойност. Стойностите се сортират в реда, в който се въвеждат. |
SET | Колоната SET може да има максимум 64 различни членове. Една таблица може да съдържа не повече от 255 уникални списъци с дефиниции в колоните ENUM и SET, считани за група. |
Типовете BINARY и VARBINARY са подобни на CHAR и VARCHAR, с изключение на това, че съдържат двоични (binary) низове, а не nonbinary. Те съдържат низове от байтове вместо буквени знаци и имат двоичен символен набор и съпоставяне, а сравнението и сортирането се основават на числените стойности на байтовете в стойностите.
Пространствен тип данни
Пространствените данни (Spatial Data Types) представляват информация за физическото разположение и формата на геометричните обекти. Тези обекти могат да бъдат точки или по-сложни обекти като държави, пътища или езера.
SQL Server поддържа два типа пространствени данни: геометрични и географски.
- геометричният тип представя данни в евклидова (плоска) координатна система.
- географският тип представя данни в кръгова координатна система.
JSON тип данни
От версия 5.7.8 MySQL поддържа JSON тип данни, дефиниран от RFC 7159
, който позволява достъп до данни в JSON (JavaScript Object Notation) документи.