数据库列类型

一、整型

tinyint(迷你整型)

迷你整型,系统采用一个字节来保存的整型,一个字节=8位,最大表示的值为0-255

smallint(小整型)

小整型,系统采用两个字节来保存的整型,能表示0-65535之间

mediumint(中整型)

中整型,系统采用三个字节来保存的整型。

int(整型,标准整型)

整型,标准整型,采用4个字节来保存的整型。

bigint(大整型)

大整型,采用8个字节来保存数据。

1、无符号设定

无符号:表示存储的数据在当前字段中,没有负数,只有正数。

基本语法:在类型之后增加一个  unsigned

2、显示长度

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

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

Tinyint(4): 表示最长可以显示4位   -127—128

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

Zerofill:

1、从左侧开始填充0,所以负数的时候就不能使用zerofill,一旦使用了zerofill,就相当于确定该字段为unsigned。

2、如果不足3位,那么填充到3位,如果本身已经够了或者超出,那么就不再填充。

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


二、小数类型

1、浮点型

浮点型又称为精度类型,是一种有可能丢失精度的数据类型,数据有可能不那么准确,尤其是超出范围的时候,不是大小范围,而是精度范围。

1、1  单精度浮点型——float

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

基本语法:

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

 Float(M,D):表示一共存储M个有效数字,其中小数部分占D位

Float(10,2):表示整数部分8位,小数部分有2位

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

1、2  多精度浮点型——double

双精度:系统采用8个字节来存储数据,表示的范围更大,大概是10^308次方,但是精度也只有15位左右。基本语法与单精度浮点型类似

2、定点型——decimal

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

基本语法:

Decimal(M,D): M表示总长度,最大值不能超过65,d代表小数部分长度,最长不能超过30.

定点数的应用:如果涉及到钱的时候使用定点数。


三、时间日期类型

1、Date

日期类型:

1、系统使用三个字节来存储数据,对应的格式为:yyyy-MM-dd

2、能表示的范围从1000-01-01 到9999-12-31 初始值为0000-00-00

2、time

时间类型:

1、能表示某个指定的时间,系统同样提供3个字节来存储,对应的格式为HH:mm:ss.

2、mysql中的time类型能够表示的时间范围要大的多,能表示从-838:59:59—838:59:59。

3、在mysql中具体的用处是描述时间段。

4、在时间按格式之前加一个空格,然后指定一个数字(可以为负数)系统会自动将数字转换为该数字*24小时, 再加上后面的时间

3、datetime

时间日期类型:

1、就是将前面的date和time的结合,表示的是年月日时分秒,使用8个字节来存储数据,格式为:yyyy-MM-dd HH:mm:ss。

2、能表示的区间1000-01-01 00:00:00----9999-12-31 23:59:59。

3、可以为0值   0000-00-00 00:00:00

4、timestamp

时间戳类型:

1、mysql中的时间戳只是表示从格林威治时间开始,但是其格式仍然是yyyy-MM-dd HH:mm:ss

2、时间戳类型不能为空,有默认值为当前时间对应的时间戳;当数据被更新时,这个字段自动更新为当前最新的时间

5、year

年类型:

1、占用一个字节来保存,能表示1900-2155年,但是year有两种数据插入方式 0-99或者是四位数的具体年。

2、year的特殊性:

(1)可以采用2位数的数据插入也可以采用4位年份的插入,year进行2位数的数据插入时,有一个区间划分,临界点就是69和70。

(2)当输入69以下的数字,系统时间为20+

(3)当输入70以上,那么系统时间为19+


四、字符

1、char

1、 定长字符类型:

指定长度之后,系统一定会分配指定的空间用于存储数据

 2、基本语法:

char(L) 代表字符数,中文与英文字母一样L长度方位是0-255

2、varchar

 1、变长字符类型:

指定长度后,系统会根据实际的数据来计算长度,分配合适的长度,数据没有超出长度。

2、基本语法:

varchar(L) L代表长度,理论值为0-65535

3、因为varchar要记录数据长度,系统会根据数据长度自动分配存储空间,所以每个varchar数据产生后系统都会再数据后面增加1-2个字节的额外开销,用来保存数据所占空间长度,如果数据本身小于127个字符,额外开销1个,如果大于127个,额外开销2个。

char与varchar的区别比较

存储数据char(2)varchar(2)char所占字符varchar所占字符
AAA2*3=61*3+1=4
AAAAAA2*3=62*3+1=7

1、Char一定会使用指定的空间,varchar是根据数据的长度来指定空间

2、Char的数据查询效率比varchar高,varchar需要通过后面的记录数来计算。所以当确定某个字段一定会填写固定长度的数据的时候,推荐使用char,因为效率高;如果不确定,使用varchar。

3、如果数据长度超过255个字符了,不论是否固定长度,都会使用text,不会再使用char或者varchar


五、text

文本类型:

mysql中提供了两种文本类型

1、Text:存储普通的字符文本

2、Blob:存储二进制文本(图片、文件)

一般不会使用blob来存文件本身,通常使用url路径来指向对应的文件本身。

3、分类:mysql提供了4种test类型

tinytext

系统使用一个字节来保存,实际能够存储的数据为2^8+1

text

使用2个字节来保存,实际存储  2^16+2

mediumtext

使用3个字节来保存,实际存储  2^24+3

longtext

使用4个字节来保存,实际存储2^32+4

4、注意:

1、在选择对应的存储文件的时候,不用刻意的去选择text的类型,系统会自动根据存储的数据的长度来选择合适的文本类型

2、在选择字符存储的时候,如果超过255个字符,那么一定选择text存储,效率高。


六、enum

1、枚举类型:

在数据插入之前,先设定几个项,这几个项是可能最终出现的数据结果。

如果确定某个字段的数据只有那么几个值,例如男、女、保密,系统就可以在设定字段的时候规定当前字段只能存储固定的几个值。

2、基本语法:

 enum (数据值1,数据值2……..)

3、系统提供了1-2个字节来存储枚举数据

通过计算enum列举的具体值来选择实际的存储空间,如果数据值列表在255以内,那么一个字节就够,超过255但是小于65535,系统采用2个字节保存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值