2025年MySQL燕十八老师课程笔记:第三课:列类型-字符型和字符串型

MySQL燕十八老师课程笔记:第三课:列类型-字符型和字符串型怎么建表 只要把第一行表头建好了 这张表也完成了 至于其他的数据 已经不是表的概念了 而只是表中的数据 因此 建表的过程 就是一个画表头的过程 即 建表的过程就是一个声明字段的过程 建表和列类型的关系 存储同样的数据

大家好,我是讯享网,很高兴认识大家。

重点:学习列类型的存储范围和占据的字节关系。

MySQL三大列类型:
数值型
1.整型
1.1 Tinyint:占一个字节,存储范围:有符号数:-128 ~ 127,无符号数:0~255,
(这里,燕十八老师的网课,深刻理解了反码原码补码的关系,详见: https://www.bilibili.com/video/av/?p=9 时间:大概13分左右)
一般而言:设某类型N字节,则:8N位
对于int型,占据的字节越多,存储的范围也越大。
(M) unsigned zerofill
int系列,不加特殊说明时,默认为有符号系列。

#加一个学分列; alter table class add score tinyint unsigned not null default 0; #在列类型后加unsigned表示其为无符号类型 desc class; 

讯享网

在这里插入图片描述
讯享网
zerofill:代表0填充,M必须和zerofill配合才有意义

讯享网#例:给class表增加一个类:学号 #1.学号不能为负,2.学号一般位数相同,即使不同,也有:00013/01235 #即,不够位数,用0填充 alter table class add snum smallint(5) zerofill not null default 0; 

2.浮点型
小数大小的定义:小数点左边,能大到多少?/小数点右边,又能大到多少?
float(M,D) decimal(M,D)::M叫“精度”,代表“总位数”;D叫“标度”,代表小数位。
例如:float(6,2)代表:-9999.99~9999.99

create table salary( sname varchar(20) not null default '', gongzi float(6,2) )engine myisam charset utf8; insert into salary values('张三',-9999.99); insert into salary values('李四',9999.99); 

在这里插入图片描述

讯享网alter table salary add bonus float(5,2) unsigned not null default 0.00; 

在这里插入图片描述

insert into salary(sname,bonus) values ('王五',888.88); 

在这里插入图片描述

讯享网insert into salary(sname,bonus) values ('王五',-0.88); #这个句子不允许,因为bonus是unsigned类型,不能为负 

浮点数占多大的空间?
float能存1038~10-38,如果M<=24,则占4个字节,否则占8字节。
还有一种叫 定点 decimal,定点是把整数部分和小数部分分开存储的,比float更精确。

create table account( id int not null default 0, acc1 float(9,2) not null default 0.00, acc2 decimal(9,2) not null default 0.00 )engine myisam charset utf8; insert into account values (1,.23,.23); 

在这里插入图片描述观察上例,可以看出,float的精度有时会损失
(像银行这种需要高精度的存储,一般用int存——存到单位为 “分”)

字符串型 :char varchar text blob
char(6) : 定长字符串

对于定长N,不论存储的数据到底是不是N个长度,都存为N个长度。如果不够N个长度,用空格在末尾补至N个长度。

varchar(100):变长类型。存储0-100个字符。

区别:对于char(N),不够N个长度,用空格在尾部补够N个长度,浪费了尾部。而对于varchar(N ),不够用空格补齐,但列内容前,有1-2个字节来标志该列的内容长。

text:文本类型,可以存比较大的文本段,搜索速度稍慢,因此,如果不是特别大的内容,建议用char、varchar来代替。 且text不用加默认值(加了也没用)

小讯
上一篇 2025-01-04 19:15
下一篇 2025-04-11 17:28

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/21045.html