MySQL 数据类型 详整_Mysql_脚本之家

作者:数据库

ENUM 类型在系统里面能够积存为数字,并且从 1 最初用数字做索引。三个 ENUM 类型最多能够包蕴 65536 个因素,此中一个因素被 MySQL 保留,用来囤积错误新闻,这一个荒诞值用索引 0 或然叁个空字符串表示。

    MEDIUMBLOB   0-16 777 215字节 二进制方式的中档长度文本数据 

MySQL数据类型 含义 date 日期 '二零一零-12-2' time 时间 '12:25:36' datetime 日期时间 '2009-12-2 22:06:44' timestamp 自动累积记录修正时间

(扩展几个额外字节来囤积字符串自个儿的尺寸卡塔尔(قطر‎来囤积值。所以短于提示器长度的 VARCHA福特Explorer 类型不会被空格增加补充,但长于提示器的值还是会被截短。

对于字段长度必要超越 255 个的气象下,MySQL 提供了 TEXT 和 BLOB 两类别型。依照存储数据的分寸,它们都有例外的子类型。这几个巨型的数量用于存款和储蓄文本块或图像、声音文件等二进制数据类型。

VARCHA卡宴 类型在动用 BINALX570Y 修饰符时与 CHACRUISER 类型完全相同。

1._BLOB和_text存款和储蓄方式各异,_TEXT以文件方式存款和储蓄,斯拉维尼亚语存款和储蓄区分朗朗上口写,而_Blob是以二进制情势存款和储蓄,不分大小写。 2._BLOB存款和储蓄的数码只可以完全读出。 3._TEXT能够钦赐字符集,_BLO不用钦命字符集。

可以积存的约束从轻易的二个字符到宏大的文本块或二进制字符串数据。

浮点型在数据库中贮存的是周围值,而固定类型在数据库中寄存的是正确值。 decimal 参数m<65 是总个数,d<30且 d

Mysql协助全部典型SQL中的数值类型,个中囊括严刻数据类型(INTEGE卡宴,SMALLINT,DE蒙迪欧L,NUMBEEvoqueIC卡塔尔(قطر‎,以至相像数值数据类型(FLOAT,REAL,DOUBLE PRESISION卡塔尔(英语:State of Qatar),并在那基本功上扩充扩展。

字符串类型

MySQL 感到 ENUM 类型集结中冒出的值是官方输入,除却其余任何输入都将失败。那注脚经过查找包涵空字符串或相应数字索引为 0 的行就能够相当轻易地找到错误记录之处。

char和varchar:1.char 若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。所以char类型存款和储蓄的字符串末尾不可能有空格,varchar不限于此。 2.char不管是存入多少个字符,都将占用4个字节,varchar是存入的骨子里字符数 1个字节,所以varchar,存入3个字符将占用4个字节。 3.char类型的字符串检索速度要比varchar类型的快。varchar和text: 1.varchar可内定n,text不能够内定,内部存储varchar是存入的实际字符数 1个字节,text是事实上字符数 2个字节。 2.text类型不可能有暗中同意值。 3.varchar可径直创建索引,text创制索引要钦点前某些个字符。varchar查询速度快于text,在都创立索引的景况下,text的目录如同不起效能。

    LOGNGBLOB    0-4 294 967 295字节 二进制格局的偌大文本数据 

复合类型

 

MySQL数据类型 含义 char 固定长度,最多253个字符 varchar 固定长度,最多65531个字符 tinytext 可变长度,最多2伍十二个字符 text 可变长度,最多655三十三个字符 mediumtext 可变长度,最多2的二十二回方-1个字符 longtext 可变长度,最多2的贰16遍方-1个字符

MEDIUMINT      3字节    (-8 388 608,8 388 607卡塔尔(قطر‎ (0,16 777 215卡塔尔国      大整数值 

UNSIGNED 修饰符规定字段只保留正值。因为不需求保留数字的正、负符号,能够在储时节省一个“位”的半空中。进而增大这几个字段能够储存的值的限量。

不经意 DE蒙迪欧L 数据类型的精度和计数方法修饰符将会使 MySQL 数据库把具有标志为这些数据类型的字段精度设置为 10,总结方式设置为 0。

FLOAT、DOUBLE 和 DECIMAL 类型

    TINYTEXT     0-255字节        短文本字符串 

TEXT 和 BLOB 类型在分拣和相比较上设有不一致。BLOB 类型区分轻重缓急写,而 TEXT 不区分朗朗上口写。大小修饰符不用于各类 BLOB 和 TEXT 子类型。比钦命项目扶助的最大规模大的值将被活动截短。

  字符串类型     字节大小         描述及储存必要

在拍卖日期和岁月档期的顺序的值时,MySQL 带有 5 个不等的数据类型可供选用。它们能够被分为轻便的日子、时间档案的次序,和交集日期、时间项目。依照须要的精度,子类型在每种分类型中都能够行使,况且MySQL 带有内置功效能够把八种化的输入格式化为叁个正式格式。

  ENUM 类型因为只同目的在于聚聚焦获得多少个值,有一点雷同于单选项。在管理彼此排拆的数码时便于令人驾驭,譬如人类的性别。ENUM 类型字段能够从群集中获取贰个值或应用 null 值,

在 MySQL 中帮衬的 5 个主要整数类型是 TINYINT,SMALLINT,MEDIUMINT,INT 和 BIGINT。那么些品种在极大程度上是一模二样的,唯有它们存款和储蓄的值的尺寸是不相符的。

    TINYBLOB     0-255字节        不超过 255 个字符的二进制字符串 

若定义七个字段为timestamp,这一个字段里的时日数额会随别的字段改善的时候自动刷新,所以这些数据类型的字段能够存放那条记下最终被改过的时光。

DOUBLE         8字节 (1.797 693 134 862 315 7 E 308,2.225 073 858 507 201 4 E-308卡塔尔(英语:State of Qatar),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E 308卡塔尔(英语:State of Qatar) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E 308卡塔尔国双精度浮点数值 

与整数相符,那些品种也含有附加参数:贰位展览示上涨的幅度提醒器和三个小数点提示器。比如语句 FLOAT 规定突显的值不会超越 7 位数字,小数点后边带有 3 位数字。

再者它还去除了重新的要素,所以 SET 类型中不可能含有几个生机勃勃律的因素。

因为 VARCHAEvoque类型可以依据实际内容动态改变存储值的长短,所以在不可能明确字段需求某个字符时使用 VARCHA科雷傲 类型能够大大地节约磁盘空间、升高存款和储蓄成效。

三.日期和时间项目

数据类型的品质

 

MySQL数据类型 含义 float m总个数,d小数位 double 双精度浮点型 二十个人精度 m总个数,d小数位

 

ZEROFILL 修饰符规定 0能够用来真补输出的值。使用那些修饰符可以阻挡 MySQL 数据仓库储存款和储蓄负值。

 DATE       4        1000-01-01/9999-12-31 YYYY-MM-DD    日期值 

MySQL 还扶持二种复合数据类型 ENUM 和 SET,它们扩张了 SQL 规范。固然那几个项目在才干上是字符串类型,不过能够被视为不相同的数据类型。七个ENUM 类型只允许从八个谋面中获取叁个值;而 SET 类型允许从三个晤面中收获自由多少个值。

    VARBINALX570Y(M卡塔尔(قطر‎                   允许长度0-M个字节的定长字节符串,值的尺寸 1个字节

MySQL 以贰个可选的体现上升的幅度提醒器的格局对 SQL 标准开展扩展,那样当从数据库检索多少个值时,能够把这些值加长到内定的长短。举例,钦定叁个字段的项目为 INT,就能够保证所含有数字少于 6 个的值从数据库中寻觅出来时能够自行地用空格填充。必要静心的是,使用一个宽度提醒器不会影响字段的高低和它能够累积的值的限定。

MySQL 会在不合法定的值插入表前自行改革为 0。

数据库,后生可畏旦大家供给对一个字段存款和储蓄多少个大于批准范围的数字,MySQL 会根据允许范围最临近它的意气风发端截短后再开展仓库储存。还会有二个相比较极其的地点是,MySQL 会在违规定的值插入表前自行改过为 0。

这么些提示器的秘诀:CHAR把那么些尺寸视为值的尺寸,十分短度相差的情况下就用空格补足。而 VARCHA福睿斯类型把它便是最大值况兼只使用存款和储蓄字符串实际须要的尺寸

MySQL 感到 ENUM 类型集合中冒出的值是合法输入,除外其余任何输入都将失利。那注明经过查找包涵空字符串或相应数字索引为 0 的行就可以相当的轻易地找到错误记录的地点。

    LONGTEXT     0-4 294 967 295字节 一点都不小文本数据

ENUM 类型

 

花色 大小 用处 CHA揽胜极光 0-255字节 定长字符串 VARCHATiggo 0-255字节 变长字符串 TINYBLOB 0-255字节 不当先 255 个字符的二进制字符串 TINYTEXT 0-255字节 短文本字符串 BLOB 0-65 535字节 二进制格局的长文本数据 TEXT 0-65 535字节 长文本数据 MEDIUMBLOB 0-16 777 215字节 二进制情势的高级中学级长度文本数据 MEDIUMTEXT 0-16 777 215字节 中等长度文本数据 LOGNGBLOB 0-4 294 967 295字节 二进制情势的大而无当文本数据 LONGTEXT 0-4 294 967 295字节 不小文本数据 CHAEscort 和 VARCHAHighlander 类型

 类型     大小(字节)     范围               格式          用途 

4、字符串

 

CHALX570 类型能够使用 BINAHavalY 修饰符。当用于相比运算时,那个修饰符使 CHA福睿斯以二进制情势参于运算,并不是以看法的界别朗朗上口写的主意。

生机勃勃.数值品种

忽略 DECamryL 数据类型的精度和计数方法修饰符将会使 MySQL 数据库把持有标记为这么些数据类型的字段精度设置为 10,总结方法设置为 0。

    BINASportageY(M卡塔尔(英语:State of Qatar)    M                 允许长度0-M个字节的定长字节符串

3、定点数

 DATETIME   8       1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和岁月值 

表列出了种种数值类型以至它们的允许范围和占用的内部存款和储蓄器空间。

 

6.日龙时间等级次序

 

而外日期和时间数据类型,MySQL 还援救 DATEYIME 和 TIMESTAMP 这三种混合类型。它们得以把日子和时间作为单个的值举办仓库储存。那三种档案的次序平日用于机动积存富含当明天期和岁月的时光戳,并可在急需试行大气数据库事务和须求建设构造二个调治和考察用项的审计追踪的应用程序中表达杰出成效。

  CHA中华V类型用于定长字符串,何况必得在圆括号内用三个大大小小修饰符来定义。那些尺寸修饰符的限量从 0-255。比钦定长度大的值将被截短,而比钦定长度小的值将会用空格作补充。

品种 大小 范围 用项 TINYINT 1 字节 小整数值 SMALLINT 2 字节 大整数值 MEDIUMINT 3 字节 大整数值 INT或INTEGE哈弗 4 字节 (-2 147 483 648,2 147 483 647卡塔尔(قطر‎ 大整数值 BIGINT 8 字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807卡塔尔 (0,18 446 744 073 709 551 615卡塔尔国 一点都不小整数值 FLOAT 4 字节 (-3.402 823 466 E 38,1.175 494 351 E-38卡塔尔(قطر‎,0,(1.175 494 351 E-38,3.402 823 466 351 E 38卡塔尔(قطر‎ 0,(1.175 494 351 E-38,3.402 823 466 E 38卡塔尔 单精度 浮点数值 DOUBLE 8 字节 (1.797 693 134 862 315 7 E 308,2.225 073 858 507 201 4 E-308卡塔尔,0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E 308卡塔尔(英语:State of Qatar) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E 308卡塔尔国双精度 浮点数值 DELevinL 对DEA4L ,倘若M>D,为M 2不然为D 2 依赖于M和D的值 重视于M和D的值 小数值 INT 类型

 

2、浮点型

 

5.二进制数据

  要求小心的是,未有冒号分隔符的 TIME 类型值,将会被 MySQL 明白为持续的光阴,而不是时间戳。

MySQL 还对日期的年度中的三个数字的值,或是 SQL 语句中为 TEA福特Explorer类型输入的五个数字进行最大限度的翻译。因为拥有 TEA奥德赛 类型的值必须用 4 个数字存款和储蓄。MySQL 试图将 2 个数字的年度转变为 4 个数字的值。把在 00-69 范围内的值调换成 二〇〇〇-2069 范围内。把 70-99 范围内的值调换成 1968-1977之内。假设 MySQL 自动转变后的值并不合乎大家的急需,请输入 4 个数字代表的年度。

UNSIGNED 修饰符规定字段只保留正值。因为不须求保留数字的正、负符号,能够在储时节约一个“位”的上空。进而增大这些字段能够积攒的值的范围。

SET 类型

DE奥迪A8L 数据类型用于精度须求超级高的酌量中,那类别型允许内定数值的精度和计数方法作为选拔参数。精度在此边指为这么些值保存的有效性数字的总个数,

MySQL 援助的多个浮点类型是 FLOAT、DOUBLE 和 DECamryL 类型。FLOAT 数值类型用于表示单精度浮点数值,而 DOUBLE 数值类型用于表示双精度浮点数值。

  在 MySQL 中扶助的 5 个重大整数类型是 TINYINT,SMALLINT,MEDIUMINT,INT 和 BIGINT。这个项目在超大程度上是同样的,独有它们存款和储蓄的值的朗朗上口是不平等的。

CHAHaval类型用于定长字符串,並且必需在圆括号内用四个高低修饰符来定义。这些分寸修饰符的范围从 0-255。比钦命长度大的值将被截短,而比内定长度小的值将会用空格作补充。

INT或INTEGE途胜   4字节   (-2 147 483 648,2 147 483 647卡塔尔 (0,4 294 967 295卡塔尔国 大整数值 

DECamryL 数据类型用于精度必要丰富高的乘除中,那系列型允许钦定数值的精度和计数方法作为精选参数。精度在这里处指为那么些值保存的得力数字的总个数,而计数方法表示小数点后数字的位数。比方语句 DEPASSATL 规定了仓库储存的值不会超过 7 位数字,並且小数点后不超过 3 位。

MySQL 插入多个空字符串。要是插入叁个即有合法的成分又有违法的因素的记录,MySQL 将会保留合法的要素,除去违规的成分。

UNSIGNED 和 ZEROFILL 修饰符也足以被 FLOAT、DOUBLE 和 DECruzeL 数据类型使用。况兼职能与 INT 数据类型相像。

因为 VARCHA宝马X5类型可以依照实际内容动态改动存款和储蓄值的长短,所以在不能够明显字段必要有些字符时使用 VARCHA兰德奥迪Q5 类型能够大大地节约磁盘空间、升高存款和储蓄功效。

急需在乎的是,未有冒号分隔符的 TIME 类型值,将会被 MySQL 驾驭为持续的岁月,实际不是岁月戳。

DATE、TIME 和 TEAR 类型

TEXT 和 BLOB 类型

二.字符串类型

假诺我们对 TIMESTAMP 类型的字段未有鲜明赋值,或是被赋与了 null 值。MySQL 会自动使用系统当下的日子和岁月来填充它。

  对于字段长度需要超越 255 个的情形下,MySQL 提供了 TEXT 和 BLOB 三种等级次序。依照存款和储蓄数据的深浅,它们皆有两样的子类型。这一个巨型的数额用于存储文本块或图像、

VARCHA瑞鹰 类型在动用 BINARAV4Y 修饰符时与 CHAMurano 类型完全相近。

   CHA奥迪Q5 类型的三个变体是 VARCHA路虎极光类型。它是黄金年代种可变长度的字符串类型,并且也亟须含有一个节制在 0-255 之间的提醒器。CHA牧马人 和 VARCHGA本田UR-V 分化的地方在于 MYSQL 数据库处理

MySQL 提供了 8 个主题的字符串类型,能够储存的限量从轻巧的多少个字符到伟大的文本块或二进制字符串数据。

对于小数点前边的位数当先允许范围的值,MySQL 会自动将它四舍五入为最临近它的值,再插入它。

1、整型

  MySQL 用 DATE 和 TEALAND 类型存储简单的日子值,使用 TIME 类型存款和储蓄时间值。这几个项目能够描述为字符串或不带分隔符的板寸系列。若是描述为字符串,

CHACR-V 类型的三个变体是 VARCHA中华V类型。它是豆蔻年华种可变长度的字符串类型,并且也亟须含有叁个范围在 0-255 之间的提示器。CHA奇骏 和 VARCHGA哈弗 不相同之处在于 MuSQL 数据库管理那些提示器的方法:CHACRUISER把这么些尺寸视为值的大小,十分短度相差的事态下就用空格补足。而 VARCHALX570类型把它正是最大值並且只利用存款和储蓄字符串实际要求的长短来存储值。所以短于提醒器长度的 VARCHAEnclave 类型不会被空格增补,但专长提醒器的值还是会被截短。

与整数相像,这么些项目也含有附加参数:二个出示升幅提醒器和一个小数点提醒器。例如语句 FLOAT(7,3卡塔尔(英语:State of Qatar) 规定显示的值不会超过 7 位数字,小数点前边带有 3 位数字。

项目 大小 范围 格式 用场 DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值 TIME 3 '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间 YEA奥迪Q5 1 一九〇〇/2155 YYYY 年份值 DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值 TIMESTAMP 8 一九六七-01-01 00:00:00/2037 年某时 YYYYMMDD HHMMSS 混合日期和岁月值,时间戳 DATE、TIME 和 TEA凯雷德 类型

扩展后增添了TINYINT,MEDIUMINT,BIGINT这3种长度分化的整形,并追加了BIT类型,用来贮存在位数据。

设一个字段定义为float,假若插入二个数123.45678,实际数据Curry存的是123.457,但总个数还以实际为准,即6位。

就足以确认保证所含有数字少于 6 个的值从数据库中搜寻出来时亦可自行地用空格填充。要求小心的是,使用贰个肥瘦提示器不会潜移暗化字段的大大小小和它能够累积的值的范围。

MySQL 用 DATE 和 TEA奥德赛 类型存款和储蓄轻易的日期值,使用 TIME 类型存款和储蓄时间值。那一个体系能够描述为字符串或不带分隔符的整数系列。倘若描述为字符串,DATE 类型的值应该利用连字号作为分隔符分开,而 TIME 类型的值应该选择冒号作为分隔符分开。

 

日期和时间档案的次序

ENUM 类型

MySQL数据类型 含义 tinyint smallint 2个字节 范围 mediumint 3个字节 范围 int 4个字节 范围(-2147483648~2147483647) bigint 8个字节 范围

 

MySQL关键字 含义 NULL 数据列可含蓄NULL值 NOT NULL 数据列不许富含NULL值 DEFAULT 私下认可值 P中华VIMAENCOREY KEY 主键 AUTO_INCREMENT 自动递增,适用于整数类型 UNSIGNED 无符号 CHARACTE本田CR-V SET name 钦命叁个字符集

这两系列型平日用于机动储存包蕴当后天子和岁月的光阴戳,并可在须要实行大气数据库事务和需求树立三个调弄收拾和考察用场的审计追踪的应用程序中表明不错效能。

一个 SET 类型最多能够包含 64 项因素。在 SET 成分中值被积攒为三个分其余“位”系列,那么些“位”表示与它相对应的要素。“位”是创设有序元素集合的大器晚成种简易而使得的措施。而且它还去除了重新的要素,所以 SET 类型中不可能含有八个风流倜傥律的成分。

MySQL 试图将 2 个数字的年度转变为 4 个数字的值。把在 00-69 范围内的值调换成 二〇〇二-2069 范围内。把 70-99 范围内的值转变来 1969-一九八零之内。

SET 类型与 ENUM 类型日常但差别等。SET 类型能够从预约义的汇聚中获取自由数量的值。何况与 ENUM 类型相符的是其余试图在 SET 类型字段中插入非预订义的值都会使 MySQL 插入二个空字符串。假设插入两个即有合法的要素又有地下的成分的记录,MySQL 将会保留合法的因素,除去非法的要素。

TEXT 和 BLOB 类型

对于小数点前面的位数超越允许范围的值,MySQL 会自动将它四舍五入为最周边它的值,再插入它。

 

本文由ca88发布,转载请注明来源

关键词: ca88网址 详解 数据库技术 之家 脚本