来自 澳门金莎娱乐手机版 2019-12-07 00:01 的文章
当前位置: 金沙澳门官网网址 > 澳门金莎娱乐手机版 > 正文

MySQL数据类型

卡尺头连串

图片 1

Int(N)中N的涵义

概念了 init(5)zerofill 当和int(10)join时展现上涨的幅度对不上有十分的大可能率现身不常表

N表示显示升幅为N,但仍占4字节囤积,存款和储蓄范围不改变;

>create table int_test(a int zerofill NOT NULL auto_increment, PRIMARY KEY (a));
>createtable int_test_4(a int(4) zerofill NOT NULL auto_increment, PRIMARY KEY (a));
>select * from int_test_4;
+------------+
|a          |
+------------+
|       0001 |
|       0002 |
|2147483648 |
+------------+
>select * from int_test;
+------------+
|a          |
+------------+
|0000000001 |
|0000000002 |
|2147483648 |
+------------+

至于浮点数类型:1)能不用到尽量不要用,2)浮点数不可能用在等号相比较的现象

建议TINYINT替换enum

 字符串类型

字符串类型指CHA福睿斯、VARCHAKoleos、BINA牧马人Y、VARBINAHavalY、BLOB、TEXT、ENUM和SET。该节描述了这几个品种如何行事甚至哪些在查询中采用这几个种类;

字符型

图片 2

varchar与char的区别

图片 3

char是意气风发种恒久长度的等级次序,varchar则是生机勃勃种可变长度的类别,它们的区别是: char(M卡塔尔国类型的多寡列里,每种值都占用M个字节,借使有个别长度小于M,MySQL就能在它的左侧用空格字符补足.(在查究操作中那个增加补充出来的空格字符将被去掉)在varchar(M卡塔尔(英语:State of Qatar)类型的数码列里,每一个值只占用无独有偶够用的字节再拉长贰个用来记录其尺寸的字节(即总参谋长度为L+1字节)varchar存款和储蓄可变长字符串,小于255字节时要求1个额外字节(大于255急需2个额外字节卡塔尔(قطر‎存储长度,最大尺寸为65532字节(全部列总和卡塔尔国;

char存款和储蓄定长,读取时会截断末尾空格,长度最大为255字符;

1)CHAR(M)的涵义:

实际分配的长短是:M*字符编码长度=存款和储蓄空间

比如:存款和储蓄了2五15个字符 汉语汉字是挤占3个字节

255*3 = 765  一共是765字节

2)varchar(N)中N的涵义
最大存款和储蓄N个字符;varchar(5卡塔尔国和varchar(200卡塔尔国存款和储蓄hello所占空间相通,但前面一个在排序时会消耗越来越多内部存款和储蓄器,因为order by col接纳fixed_length总结col长度(memory引擎也同等卡塔尔国
例如:

varchar(200卡塔尔(قطر‎utf8上面占用多少字节

200*3+ 2

varchar(64)  utf8 

64*3=192<255
192+1=193

建议:

万般接受MySQL是innodb引擎 innodb引擎本来就是变长存款和储蓄

行存储着:

trx_id, row-id,rollback, filed_pointer, null-flag, filed1,....

innodb存款和储蓄引擎推荐varchar

char更加快是照准MyISAM这种堆表 char 定长分配会更快一些

算算例子

举五个例说美赞臣(Meadjohnson卡塔尔(英语:State of Qatar)下实际尺寸的推测。

a卡塔尔若贰个表唯有一个varchar类型,如定义为

createtable t4(c varchar(N)) charset=gbk;

则此处N的最大值为(65535-1-2卡塔尔(英语:State of Qatar)/2= 32766。

减1的原故是事实上行存款和储蓄从首个字节起初’;

减2的因由是varchar尾部的2个字节表示长度;

除2的由来是字符编码是gbk。

b卡塔尔若三个表定义为

createtable t4(c int, c2 char(30), c3 varchar(N)) charset=utf8;

则此处N的最大值为 (65535-1-2-4-30*3)/3=21812

减1和减2与上例相近;

减4的来由是int类型的c占4个字节;

减30*3的案由是char(30卡塔尔占用九十几个字节,编码是utf8。

 

MySQL中定义数据字段的项目对您数据库的优化是丰富关键的; MySQL支持多样类型,差没有多少能够分成三类:数值...

MySQL数据类型,mysql数据类型大全

MySQL中定义数据字段的门类对你数据库的优化是万分关键的;

MySQL援救七种类型,大概能够分为三类:数值、日期/时间和字符串(字符卡塔尔(قطر‎类型;

日期和时间等级次序

表示时间值的日子和岁月项目为DATETIME、DATE、TIMESTAMP、TIME和YEAHaval。

图片 4

MySQL5.6不支持year(2)
日期类型注意事项

Timestamp,datatime从MySQL5.6.5支撑自动更新为当下的年华:current timestamp

日期转变:cast(datatime_col as DATE)

>select now()+0;

5.6的us支持

>select now(4),MICROSECOND(now(4));

+--------------------------+---------------------+

|now(4)                   |MICROSECOND(now(4)) |

+--------------------------+---------------------+

|2016-04-16 08:50:01.6589 |             658900 |

+--------------------------+---------------------+

timestamp3.6.6之后帮忙 null

建议datetime 来替换timestamp 

本文由金沙澳门官网网址发布于澳门金莎娱乐手机版,转载请注明出处:MySQL数据类型

关键词: