mysql修饰_mysql之数据类型和修饰属性

数据类型的作用:

1.指定值的类型

2.指定占用的空间

3.指定了是定长(fixed-length)还是变长(variable-length)

4.mysql如何比较和排序值的类型

5.定义的类型是否能被创建索引

数据类型:

字符

CHAR(LENGTH)   以字符格式存放,不区分大小写,定长。最大255字节。

VARCHAR(LENGTH) 变长。最大65535个字节 。但是会额外占用1(255个字符以内)或2(超出255个字符)个字节,额外占用的是结束符。

BINARY(LENGTH) 以二级制格式存放,区分大小写,定长。最大255字节。

VARBINARY(LENGTH) 变长。最大65532字节。额外开销1或2个字节。

BLOB(LENGTH) 二进制大对象。区分大小写,最大64K,2个字节的额外开销

TINYBLOB 最大255个字节,1个字节的额外开销

MEDIUNMBLOB  最大16M,3个字节的额外开销

LONGBLIOB 最大4G,4个字节的额外开销

TEXT(LENGTH) 文本格式。不区分大小写

TINYTEXT

MEDIUMTEXT

LONGTEXT

ENUM 枚举,给定一些值,取值的范围必须是这些值当中的1个。最多可以给65535个值。即有65535个选择。

SET 集合,给定一些值,取值的范围必须是这些值当中的0个或多个,可以随意组合,但是不能超出。最多给给64个值。储存的方式为储存值的索引。而不是值本身。

例如:

RRtype CHAR(5)

A,PTR,CNAME,AAAA,MX,NS,SOA,SRV

RRtype ENUM(‘A‘,‘MX‘)

例如:

集合的储存是值的索引而不是值本身。

SET(a,b,c)

a 100

ac 101

bc 011

修饰属性:

NOT NULL 不为空

NULL 为空,默认

DEFAULT CAHR和VARCHAR特有,默认值

CHARACTER SET 字符集

COLLATION 排序规则,字段从表继承,表从数据库继承,库从默认配置继承。

数值

精确数值

整形

TINYINT 1个字节

SMALLINT 2个字节

MEDIUMINIT 3个字节

INT 4个字节

BIGINT 8个字节

修饰属性:

AUTO_INCREMENT 自动增长。在字段中插入新数据的时候自动生成数据序列,完成数据增长。增长的步长可以自定义。默认从1开始,步长为1。使用SELECT LAST_INSERT_ID()函数可以显示最近一次的值。

定义字段为AUTO_INCREMENT的要求:

1.字段必须为整数类型。

2.只能包含正数,不能包含负数,只能定义为UNSIGNED

3.必须定义为PRIMARY KEY或者UNIQUE index

4.必须定义为NOT NULL

例如:

mysql>CREATE TABLE test (ID INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,Name CHAR(20))

mysql>SELECT LAST_INSERT_ID()

UNSIGNED 无符号 只有正数和0。

NOT NULL非空

DECIMAL 精确定点数,总长度和精度都是固定的。如1.11等

NUMERIC 精确定点数。

BIT 按位存储

近似数值

浮点型

FLOAT(LENGTH,NUM) 单精度 4个字节

DOUBLE(LENGTH,NUM) 双精度 8个字节

注意:LENGTH表示数值长度,NUM表示小数位个数,例如FLOAT(7,3)表示总长为7,小数位为3,例如1234.567。

修饰属性:

NOT NULL

NULL

DEFAULT

ZEROFILL 多余位用0填充

UNSIGNED

日期时间

DATE 日期 YYYY-MM-DD 3个字节

TIME 时间 hh:mm:ss 3个字节

DATETIME 日期时间 YYYY-MM-DD hh:mm:ss 8个字节

TIMESTAMP 时间戳 YYYY-MM-DD hh:mm:ss,是从1970-01-01到现在的秒数转换的。4个字节

YEAR 年 YYYY或YY 1个字节

修饰属性:

NOT NULL

NULL

DEFAULT

布尔

BOOLEAN或BOOL

0

1

原文:http://ggvylf.blog.51cto.com/784661/1679324

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值