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

【MySQL】建表(一):数据类型,第1张

建表过程就是一个画表头的过程(声明字段过程)

存储同样的数据,不同的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能简写成两位,但不推荐这样写(但现在的版本不支持了)

和创建英文字段一样

CREATE TABLE `tbleName`.`user` (

`身份z号` INT NOT NULL ,

`名字` VARCHAR( 50 ) NOT NULL ,

PRIMARY KEY ( `身份z号` )

) ENGINE = InnoDB


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5901036.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-07
下一篇 2023-03-07

发表评论

登录后才能评论

评论列表(0条)

保存