欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

06、MySQL—列类型

程序员文章站 2023-08-12 12:01:01
1、整数类型 I.有符号整型 (1) Tinyint:单字节整形,系统采用一个字节来保存的整形:一个字节 = 8位,最大能表示的数值是0-255. (2) Smallint:双字节整形,系统采用两个字节来保存的整形:能表示0-65535之间 (3) Mediumint:三字节整形,采用三个字节来保存 ......

1、整数类型

i.有符号整型

(1) tinyint:单字节整形,系统采用一个字节来保存的整形:一个字节 = 8位,最大能表示的数值是0-255.

(2) smallint:双字节整形,系统采用两个字节来保存的整形:能表示0-65535之间

(3) mediumint:三字节整形,采用三个字节来保存数据

(4) int:整形(标准整形),采用四个字节来保存数据

(5) bigint:大整形,采用八个字节来保存数据。

① 创建数据表

 06、MySQL—列类型

② 插入合理数据

 06、MySQL—列类型

③ 插入错误数据(超出对应的数据范围)

 06、MySQL—列类型

错误原因:并不是说tinyint没有这么大的空间,而是因为mysql默认的为整形增加负数。

实际表示的区间为-128,127

 

实际应用中,应该根据对应的数据的范围来选定对应的整形类型:通常使用的比较多的tinyint和int。

ii.无符号整型

无符号:表示存储的数据在当前字段中,没有负数(只有正数,区间为0-255)

基本语法:

在类型之后加上一个 unsigned

范例:创建无符号整型数

 06、MySQL—列类型

iii 显示长度

显示长度:指数据(整型)在数据显示的时候,到底可以显示多长位。

tinyint(3): 表示最长可以显示3位,unsigned说明只能是正数,0-255永远不会超过三个长度

tinyint(4):表示最长可以显示4位,-128~127

显示长度只是代表了数据是否可以达到指定的长度,但是不会自动满足到指定长度:如果想要数据显示的时候,保持最高位(显示长度),那么还需要给字段增加一个zerofill属性才可以。

zerofill:从左侧开始填充0(左侧不会改变数值大小),所以负数的时候就不能使用zerofill,一旦使用zerofill就相当于确定该字段为unsigned

范例:使用zerofill创建数据

 06、MySQL—列类型

说明:

数据显示的时候,zerofill会在左侧填充0到指定位:如果不足3位,那么填充到3位,如果本身已经够了或者超出,那么就不在填充。

 06、MySQL—列类型

说明:

显示长度可以自己设定:超出长度(但是不超出范围)不会影响,只会对不够长度的进行补充(显示长度)

 06、MySQL—列类型

2、小数类型

专门用来存储小数的;在mysql中将小数类型又分为两类:浮点型和定点型

i 浮点型

浮点型又称之为精度类型:是一种有可能丢失精度的数据类型,数据有可能不那么准确(由其是在超出范围的时候)

说明:浮点型之所以能够存储较大的数值(不精确),原因就是利用存储数据的位来存储指数

整型:所有位都为1

1

1

1

1

1

1

1

计算结果:

 

浮点型:有部分用于存储数据,有部分用于存指数

1

1

1

1

1

1

1

前三位转换成十进制之后用作10的指数: 10^7 * 数据值

(1) float

float又称之为单精度类型:系统提供4个字节用来存储数据,但是能表示的数据范围比整型大的多,大概是10^38;只能保证大概7个左右的精度(如果数据在7位数以内,那么基本是准确的,但是如果超过7位数,那么就是不准确的)。

基本语法:

float:表示不指定小数位的浮点数

基本语法:

float(m,d):表示一共存储m个有效数字,其中小数部分占d位

基本语法:

float(10,2):整数部分为8位,小数部分为2位

① 创建一个数据表保存浮点数据

 06、MySQL—列类型

② 存入数据:合法数据

 06、MySQL—列类型

注意:如果数据精度丢失,那么浮点型是按照四舍五入的方式进行计算

③ 插入数据,超出大小

 06、MySQL—列类型

④ 数据长度刚好满足条件,但是会超出精度

 06、MySQL—列类型

说明:

用户不能插入数据直接超过指定的整数部分长度,但是如果是系统自动进位导致,系统可以承担。

⑤ 浮点数可以采用科学计数法来存储数据

 06、MySQL—列类型

浮点数的应用:通常是用来保存一些数量特别大,大到可以不用那么精确的数据。

(2) double

double又称之为双精度:系统用8个字节来存储数据,表示的范围更大,10^308次方,但是精度也只有15位左右。

ii 定点数

定点数:能够保证数据精确的小数(小数部分可能不精确,超出长度会四舍五入),整数部分一定精确

(1) decimal

decimal定点数:系统自动根据存储的数据来分配存储空间,每大概9个数就会分配四个字节来进行存储,同时小数和整数部分是分开的。

基本语法:

decimal(m,d):m表示总长度,最大值不能超过65,d代表小数部分长度,最长不能超过30。

① 创建表:与浮点数对比

 06、MySQL—列类型

② 插入正常数据

 06、MySQL—列类型 

③ 插入最大数据

 06、MySQL—列类型

④ 尝试定点数进行四舍五入

 06、MySQL—列类型

定点数的应用:如果涉及到钱的时候有可能使用定点数,涉及到精确度较高的情况下,推荐使用定点数。