Таблица колонналарын аныктаганда, алар үчүн маалыматтардын түрүн көрсөтүү керек. Ар бир колоннада маалыматтардын түрү болушу керек. Маалыматтардын түрү кайсы баалуулуктарды колоннада сактоого болорун жана эс тутумда канча орун аларын аныктайт.
MySQL бир катар топторго бөлүнүшү мүмкүн маалыматтардын төмөнкү түрлөрүн берет.
Мүнөз түрлөрү
CHAR: Белгиленген узундуктагы сапты билдирет.
Сакталган саптын узундугу ата-энелерде көрсөтүлгөн, мисалы, ЧАР (10) он белгиден турган сап болуп саналат. Ал эми бул колоннадагы дасторконго 6 белгиден турган катар сакталса (башкача айтса, белгиленген узундугунан аз 10 белги), анда сап 4 орун менен толукталат жана аягында дагы эле 10 белгини ээлейт
CHAR түрү 255 байтка чейин сактай алат.
VARCHAR: Өзгөргүч узундуктагы сапты билдирет.
Сакталган саптын узундугу да ата-энелерде берилет, мисалы, VARCHAR (10). Бирок, CHAR айырмаланып, сакталган сап керектүүдөй көп орун алат. Мисалы, белгилүү бир узундугу 10 символ болсо, бирок 6 мүнөздүү сап колоннада сакталса, сакталган сап дагы эле 6 символду жана саптын узундугун сактаган кошумча байтени ээлейт.
Жалпысынан VARCHAR түрү 65535 байтка чейин сактай алат.
MySQL 5.6-дан баштап, CHAR жана VARCHAR түрлөрү UTF-8 коддоосун дефолт боюнча колдонушат, бул тилге жараша мүнөздү сактоо үчүн 3 байтка чейин колдонууга мүмкүндүк берет (көптөгөн европалык тилдер үчүн мүнөзүнө 1 байте, кээ бир Чыгыш Европа жана Жакынкы Чыгыш тилдери үчүн - 2 байт, кытай, япон, корей тилдери үчүн - 3 символдор боюнча).
Маалыматтардын бир катар кошумча түрлөрү чексиз узундуктагы текстти билдирет:
TINYTEXT:Узундук 255 байтка чейинки текстти билдирет.
TEXT: узундугу 65 кБ чейин текстти билдирет.
MEDIUMTEXT: узундугу 16 МБ чейин текстти билдирет
LONGTEXT: узундугу 4 ГБ чейин текстти билдирет
Сан түрлөрү
TINYINT: 128-ден 127-ге чейин интегерлерди билдирет, 1 байт алат
BOOL:чындыгында, ал өзүнчө түрүн билдирбейт, бирок TINYINT (1) түрү үчүн гана аты болуп саналат жана эки баалуулук сактай алат, 0 жана 1. Бирок, бул түрү, ошондой эле баалуулук катары камтылган туруктуу TRUE (1 номерин билдирет) жана FALSE (0 номерин билдирет) ала алат.
ТОшондой эле BOOLEAN псевдонимине ээ.
TINYINT UNSIGNED: 0-ден 255-ке чейин интегерлерди билдирет, 1 байт алат
SMALLINT: 32768-жылдан 32767-жылга чейин интегерлерди билдирет, 2 байт алат
SMALLINT UNSIGNED:0-ден 65535-жылга чейин интегерлерди билдирет, 2 байт алат
MEDIUMINT: 8388608 8388607 чейин интегерлерди билдирет, 3 байт алат
MEDIUMINT UNSIGNED: 0-ден 16777215 чейин интегерлерди билдирет, 3 байт алат
INT: -2147483648 2147483647 чейин интегерлерди билдирет, 4 байт алат
INT UNSIGNED: 0-ден 4294967295 чейин интегерлерди билдирет, 4 байт алат
BIGINT: 9,223,372,036,854,775,808 чейин 9,223,372,032,036,854,775,807 чейин, 8 байт алат
BIGINT UNSIGNED: 0 чейин 18,446,744,073,709,551,615, 8 байт ээлейт
DECIMAL: Тактык менен номерлерин сактайт. Бул түрү эки параметрди ала алат: Таблица колонналарын аныктаганда, алар үчүн маалыматтардын түрүн көрсөтүү керек. Ар бир колоннада маалыматтардын түрү болушу керек. Маалыматтардын түрү кайсы баалуулуктарды колоннада сактоого болорун жана эс тутумда канча орун аларын аныктайт.
MySQL бир катар топторго бөлүнүшү мүмкүн маалыматтардын төмөнкү түрлөрүн берет.
Мүнөз түрлөрү
CHAR: Белгиленген узундуктагы сапты билдирет.
Сакталган саптын узундугу ата-энелерде көрсөтүлгөн, мисалы, CHAR (10) он белгиден турган сап болуп саналат. Ал эми бул колоннадагы дасторконго 6 белгиден турган катар сакталса (башкача айтса, белгиленген узундугунан аз 10 белги), анда сап 4 орун менен толукталат жана аягында дагы эле 10 белгини ээлейт
CHAR түрү 255 байтка чейин сактай алат.
VARCHAR: Өзгөргүч узундуктагы сапты билдирет.
Сакталган саптын узундугу да ата-энелерде берилет, мисалы, VARCHAR (10). Бирок, CHAR айырмаланып, сакталган сап керектүүдөй көп орун алат. Мисалы, белгилүү бир узундугу 10 символ болсо, бирок 6 мүнөздүү сап колоннада сакталса, сакталган сап дагы эле 6 символду жана саптын узундугун сактаган кошумча байтени ээлейт.
Жалпысынан VARCHAR түрү 65535 байтка чейин сактай алат.
MySQL 5.6-дан баштап, ШАР жана VARCHAR түрлөрү UTF-8 коддоосун дефолт боюнча колдонушат, бул тилге жараша мүнөздү сактоо үчүн 3 байтка чейин колдонууга мүмкүндүк берет (көптөгөн европалык тилдер үчүн мүнөзүнө 1 байте, кээ бир Чыгыш Европа жана Жакынкы Чыгыш тилдери үчүн - 2 байт, кытай, япон, корей тилдери үчүн - 3 символдор боюнча).
Маалыматтардын бир катар кошумча түрлөрү чексиз узундуктагы текстти билдирет:
TINYTEXT: Узундук 255 байтка чейинки текстти билдирет.
TEXT: Узундугу 65 кБ чейин текстти билдирет.
MEDIUMTEXT: узундугу 16 МБ чейин текстти билдирет
LONGTEXT: узундугу 4 ГБ чейин текстти билдирет
Сан түрлөрү
TINYINT: 128-ден 127-ге чейин интегерлерди билдирет, 1 байт алат
BOOL: чындыгында, ал өзүнчө түрүн билдирбейт, бирок TINYINT (1) түрү үчүн гана аты болуп саналат жана эки баалуулук сактай алат, 0 жана 1. Бирок, бул түрү, ошондой эле баалуулук катары камтылган туруктуу TRUE (1 номерин билдирет) жана FALSE (0 номерин билдирет) ала алат.
Ошондой эле BOOLEAN деген атка ээ.
TINYINT UNSIGNED: 0-ден 255-ке чейин интегерлерди билдирет, 1 байт алат
SMALLINT: -32768-жылдан 32767-жылга чейин интегерлерди билдирет, 2 байт алат
SMALLINT UNSIGNED: 0-ден 65535-жылга чейин интегерлерди билдирет, 2 байт алат
MEDIUMINT:-8388608 8388607 чейин интегерлерди билдирет, 3 байт алат
MEDIUMINT UNSIGNED: 0-ден 16777215 чейин интегерлерди билдирет, 3 байт алат
INT: -2147483648 2147483647 чейин интегерлерди билдирет, 4 байт алат
INT UNSIGNED: 0-ден 4294967295 чейин интегерлерди билдирет, 4 байт алат
BIGINT: -9,223,372,036,854,775,808 чейин 9,223,372,032,036,854,775,807 чейин, 8 байт алат
BIGINT UNSIGNED: 0 чейин 18,446,744,073,709,551,615, 8 байт ээлейт
DECIMAL: Тактык менен номерлерин сактайт. Бул түрү эки параметрди ала алат: precision и scale: DECIMAL(precision, scale).
Тактык параметри бир катар сактай ала турган сандардын максималдуу санын билдирет. Бул баалуулук 1 менен 65 ортосунда болушу керек.
Масштабдагы параметр ондук пункт камтышы мүмкүн сандардын максималдуу санын билдирет. Бул маани 0 менен так параметрдик маанинин ортосунда болушу керек. Дефолт боюнча, ал 0 болуп саналат.
Мисалы, төмөнкү колоннанын аныктамасында:
@A@salary DECIMAL(5,2) @A@
5 номери так жана 2 номери масштабдуу, ошондуктан бул колонна -999.99-дан 999,99-га чейинки баалуулуктарды сактай алат.
DECIMAL үчүн байттардагы маалыматтардын өлчөмү сакталган нарктан көз каранды.
Бул типте ошондой эле NUMERIC, DEC, FIXED ысымдар бар.
FLOAT:-3.4028 * 1038 - 3.4028 * 1038 чейин бир тактык менен сүзүп-пункт фракцияларын дүкөндөр 4 байт алат
Ал FLOAT (М,D) формасын ала алат, анда М сандардын жалпы саны болуп саналат жана Д сандардын саны ондук пункттан кийин
.
DOUBLE: -1.7976 * 10308-жылдан 1.7976 * 10308-жылга чейин эки тактык менен сүзүп жүргөн фракциялык номерлерди дүкөндөр 8 байт алат. Ошондой эле ДУБЛ (М,Д) формасын ала алат, анда М сандардын жалпы саны болуп саналат жана Д сандардын саны ондук пункттан кийин болот.
Бул түрү, ошондой эле REAL ордуна колдонулушу мүмкүн REAL жана DOUBLE PRECISION, аты бар.
Датасы жана убактысы менен иштөө түрлөрү
DATE:Дүкөндөр 1000-жылдын 1-январынан 9999-жылдын 31-декабрына чейин ("1000-01-01-01"ден "9999-12-31"-ге чейин). Дефолт боюнча сактоо үчүн колдонулган формат yyy-mm-dd болуп саналат. 3 бит алат.
TIME:убакыт -838:59:59 чейин сактайт 838:59:59. Дефолт боюнча убакытты сактоо үчүн "hh:mm:ss" форматы колдонулат. 3 бит алат.
DATETIME:Убакытты жана датаны, датасын жана убактысын 1000-жылдын 1-январынан 9999-жылдын 31-декабрына чейин ("1000-01-01 00:00"ден "9999-12-31:59"-га чейин айкалыштырат). Дефолт сактоо форматы - "yyy-mm-dd hh:mm:ss". 8 байт алат
TIMESTAMP: ошондой эле датасы жана убактысы сакталат, бирок башка диапазонунда: "1970-01-01 00:01" UTC чейин "2038-01-01-19 03:07" UTC. 4 байт алат
YEAR: жылды 4 сан түрүндөгү сактайт. Жеткиликтүү баалуулуктардын диапазону 1901-жылдан 2155-жылга чейин. 1 байт алат.
Дата түрү даталарды ар кандай форматтарда кабыл ала алат, бирок даталар маалымат базасынын өзүндө сактоо үчүн "yyy-mm-dd" форматына айлантылат. Кабыл алынган форматтардын кээ бирлери:
йы-мм-д - 2018-05-25
йы-м-дд - 2018-5-25
y-m-dd – 18-05-25
Бул форматта 00 сандан 69 санга чейинки сандар 2000-2069-жылдардын диапазонунда даталар катары кабыл алынган. Ал эми 70тен 99га чейинки сандар 1970 - 1999-жылдагы сандардын диапазонуна окшош.
йиммд - 20180525
yyy.mm.dd – 2018.05.25
Убакыттын өтүшү менен Убакыт түрү 24 сааттык форматты колдонот. Ар түрдүү форматтарда убакыт талап кылынышы мүмкүн:
hh:mi – 3:21 (сакталган наркы 03:21:00)
hh:mi:ss – 19:21:34
Хмис - 192134
DATATIME жана TIMESTAMP түрлөрү үчүн баалуулуктардын мисалдары:
2018-05-25 19:21:34
2018-05-25 (сакталган наркы 2018-05-25 00:00)
Курама түрлөрү
ENUM: Жарактуу баалуулуктардын тизмесинен бир нарк сакталат. 1-2 байт алат
SET: Жарактуу баалуулуктардын тизмесинен бир нече баалуулуктарды (64 мааниге чейин) сактай аласыз. 1-8 байт алат.
Экилик түрлөрү
TINYBLOB: узундук 255 битке чейин сап катары экилик маалыматтарды сактайт.
BLOB: 65 КБ узундукка чейин сап катары экилик маалыматтарды сактайт.
MEDIUMBLOB: узундугу 16 М чейин сап түрүндөгү экилик маалыматтарды жаралайтБ
LONGBLOB:узундугу 4 ГБ чейин сап катары экилик маалыматтарды сактайт