【MySQL】建表(一):数据类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【MySQL】建表(一):数据类型相关的知识,希望对你有一定的参考价值。

参考技术A 建表过程就是一个画表头的过程(声明字段过程)
存储同样的数据,不同的lie类型所占的空间和效率是不一样的,这就是我们建表前要列类型的意义
所以,列类型的存储与占据的字节关系是学习的重点

一般而言,设某类型N字节
N字节,8N位
0 --> 2^8N-1
-2^(8N-1) ---> 2^(8N-1)-1
对于int类型:占的字节越多,存储的范围也越大

添加一个学分 列
alter table class add score tinyint unsigned not null default 0;

(M)unsigned zerofill
zerofill: zero是零,fill是填充,代表0填充
M表示补0宽度,即位数不够,用0填充没有补齐的宽度,并不改变其大小
M必须和zerofill配合才有意义
用zerofill表示属性,则该属性也默认为unsigned类型

char、varchar分别称为定长、变长类型
char(100)是存储0~100个长度
varchar(100)也是存储0~100个长度

char为定长,当输入长度不足设定的长度时,会用空格去补,而取出来时,会将空格去掉,所以,用concat连接时,char的空格被自动删除了

【注】char(M),varchar(M)限制的是字符,不是字节
即char(2) charset utf8, 储存2 个utf8字符,比如中国
utf8一个字符占3个字节

一般用来存储文章内容、新闻内容等
声明text时,不必使用默认值

所以不必加上 not null default '' ,而是直接使用 artice text

用来存储图像、音频等二进制信息
意义:blob防止因为字符集的问题,导致信息丢失
比如一张图中有0xFF字节,这个在ASCII字符集默认 非法,在入库的时候,被过滤了

超出范围,year类型只占1字节,最多能存256种变化
范围:1901~2155
year能简写成两位,但不推荐这样写(但现在的版本不支持了)

以上是关于【MySQL】建表(一):数据类型的主要内容,如果未能解决你的问题,请参考以下文章

MySQL几种常用的建表语句

MySQL用程序代码建表

MySQL学习4 - 数据类型一

mysql建表时怎样设置datetime类型的字段默认值为不自动更新的系统当前时间

小贝_mysql建表以及列属性

oracle建表语句