字节|字符、字段类型长度

2023-04-28 01:23:02 浏览数 (1)

常用的字段数据类型:

int:整型

double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99;

char:固定长度字符串类型; char(10) 如果不足10位则会自动补足10位:'abc '

varchar:可变长度字符串类型;varchar(10) 如果不足10位不会补足:'abc',性能不如char高

text:字符串类型;适用于大文本内容。

blob:字节类型;

date:日期类型,格式为:yyyy-MM-dd;

time:时间类型,格式为:hh:mm:ss

timestamp:时间戳类型 yyyy-MM-dd hh:mm:ss 会自动赋值

datetime:日期时间类型 yyyy-MM-dd hh:mm:ss

mysql字段每个类型长度大小与建表的类型长度:

在创建数据库表时,例如

create table user(

id int(4) primary key ,

name varchar(20),

pwd varchar(20)

);

括号里的数字叫数据的宽度,我们不能一概而论,因为不同的数据类型对宽度的处理也不一样:

1、整数类型,这里显示的宽度和数据类型的取值范围是没有任何关系的,显示宽度只是指明Mysql最大可能显示的数字个数,数值的位数小于指定的宽度时会由空格填充;如果插入了大于显示宽度的值,只要该值不超过该类型的取值范围,数值依然可以插入,而且能够显示出来。

例如上面的udi,显示的宽度是4,但是我向uid中插入100001,也是可以的,保存和显示的都会是100001

如果你不设置宽度,系统将添加默认的宽度 tinyint(4),smallint(6),mediumint(9),int(11),bigint(20),这些默认的宽度是跟该类型的取值范围长度相关。

2、字符串类型,字符串类型这个宽度才真的用上了。不管是char还是varchar,宽度都定义了字符串的最大长度

例如上面的 password varchar(20),如果你输入了一个21个字符的密码,那么保存和显示的只会是前20个字符,你将丢失一个字符信息,char同理。由于varchar是变长存储的,所以实际开发中我们一般都把varchar的宽度设为最长255,反正你没用完它也不会浪费空间。

3、浮点和日期等数据类型对数据的宽度没有要求,一般也不设置,默认是0

字符和字节:

- 字符 :人们使用的记号,抽象意义上的一个符号。一个汉字和英文就是一个字符,如'1', '中', 'a', '$', '¥',……

- 字节 :计算机中存储数据的单元,一个8位的二进制数,是一个很具体的存储空间,如0x01, 0x45, 0xFA,……

mysql中 varchar 字段长度,是按照字符的长度计算, 即,name 保存有 "我是谁" , 这是三个字符。

电脑存储二进制(高、低电位存储):无论任何数据,最终存储的时候都是一段包含多个0和1的串。

例如“00110101”,这里的每一个0或1被称为1位。“位”就是最小的存储单位,然后我们把8位称为1个字节,也就是1个字节等于8位。由于二进制实在太长,不方便展示,所以一般将1个字节(8位)的二进制转换成十六进制进行展示,例如将11010011转换成十六进制就是D3,这就是一个字节。

1、位:数据存储的最小单位。每个二进制数字0或者1就是1个位;

2、字节:8个位构成一个字节;

即:1byte (字节)= 8 bit(位);

1 KB = 1024 B(字节);

1 MB = 1024 KB; (2^10 B)

1 GB = 1024 MB; (2^20 B)

1 TB = 1024 GB; (2^30 B)

3、字符

a、A、中、 、*、の......均表示一个字符;

一般 utf-8 编码下,一个汉字字符 占用 3 个字节;数字属于汉字,和汉字占用一样字节。

一般 gbk 编码下,一个汉字字符 占用 2 个 字节;

sql

0 人点赞