当前位置:   article > 正文

mysql基础5 数据类型_unsigined tinyint3

unsigined tinyint3

列类型(字段类型)

Tinyint

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

Smallint

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

MediumInt

中整型,采用三个字节来保存数据

Int

整型(标准整型),采用四个字节来保存数据

Bigint

大整形,采用八个字节来保存数据

注意mysql默认的位整型增加负数,实际表示的区间为-128,127

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

无符号标识设定

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

基本语法:在类型之后加上一个unsigined

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

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

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

显示长度知识代表了数据是否可以达到指定的长度,但是不会自动满足到指定长度。如果想要数据显示的时候,保持最高位显示

长度,那么还需要增加一个zerofill属性才可以,

zerofill:从左侧开始填充0(左侧不会改变数值大小),如果不足位,那么填充到满位,如果本社已经够了或者超出,

那么就不再填充。

小数类型

专门用来存储小数的

在Mysql中将小数类型有分为两类:浮点型和定点型

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

整型:所有位都为1

11111111

 

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

1111111

1

                                             前三位转换成十进制后用作10的指数

浮点型

浮点型有称为京都类型:是哟中有可能丢失精度的数据类型,数据有可能不那么准确(有其是在超出范围的时候)

Float

Float又称位单精度类型:系统提供4个字节用来存储数据,但是能表示的数据范围比整型大的多,大概是10……38;只能保证

大概7个左右的精度(日过数据在7位数一类,那么基本是准确的,但是如果超过7位,那么就是不准确的)

基本语法

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

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

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


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

2.如果插入数据,超出大小,则无法插入数据

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

说明:用户不能擦汗如数据直接超过指定的整数部分长度,但是如果是系统自动仅为导致,系统可以承担。

4.可以用科学计数法存储数据

浮点数的应用:通常用于保存一些数据特别大,达到不用那么精确的数据

Double

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

定点数

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

Decimal

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

基本语法:decimal(M,D):M表示总长度,最大值不能超过65,D代表小数部分长度,最长不能超过30

 

注意:定点数如果整数部分进位超出长度也会报错

定点数应用:涉及到钱的时候有可能使用定点数

日期时间类型

Date

日期类型:系统使用三个字节来存数据,对应的格式为:YYYY-mm-dd,能表示的范围是从1000-01-01到9999-12-12,初始值为0000-00-00

Time

时间类型:能够表示某个指定的时间,但是系统同样是提供3个字节来存储,对应的格式为:HH:ii:ss,但是mysql中的time类型能够表示时间范围要大得多,能表示从-838:59:59~838:59:59,在mysql中具体的用处是用来描述时间段。

Datetime

日期时间类型:就是将前面的date和time合并起来,表示的时间,使用8个字节存储数据,格式为YYYY-mm-dd HH:ii:ss,能表示的区间1000-01-01 00:00:00到9999-12-12 23:59:59,其可以为0值:0000-00-00 00:00:00

Timestamp

时间戳类型:mysql中的时间戳,只是表示从格林威治时间开始,但是其格式依然是,YYYY-mm-dd HH:ii:ss

Year

年类型:占用一个字节来保存,能表示1900-2155年,但是year有两种数据插入方式:0~99和四位数的具体年

注意1:year可以四位插入数据也可以两位插入数据

year插入数据的时候,有一个区分划分,零界点为69和70,当输入69以下,那么系统时间为20+数字,如果是70以上,则匹配为19+;

注意2:timestamp当对应数据被修改的时候,会自动更新(这个修改的数据不是自己)

注意3:time类型特殊性,本质是用来表示时间区间,范围比较大

注意4:在进行时间类型录入的时候(time)还可以使用一个简单的日期代替时间,在时间格式之前加一个空格,然后指定一个数字(可以是负数),系统会自动将该数字转换成天数*24小时,再加上后面的时间。

 

字符串类型

char

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

基本语法:char(L,L代表字符数(中文与英文字母一样,L长度0到255

Varchar

变长字符:指定长度之后,系统会根据实际存储的数据来计算长度,分配适合的长度(数据没有超出长度)

基本语法:Varchar(l),L代表字符数,l的长度理论值位0到255

因为varchar要记录数据长度(系统根据数据长度自动分配空间),所以每个varchar产生数据后,系统都会在数据后面增加1-2个

字节的额外开销,是用来保存数据所占用的空间长度,如果数据本身小于127个字符,额外开销一个字节;如果大于127个,就开销两个字节

char与varchar的区别

1、char一定会使用指定的恐怖附件,varchar是根据数据来定顶空间

2、char的数据查询效率比varchar高,varchar是需要通过后面的记录数来计算

如果数据一定是占指定长度,那么使用char

如果不确定数据到底有多少,那么使用varchar

如果根据长度超过255个字符,不论是否固定长度,都会使用text,不再使用varchar

Text

文本类型:本质上mysql提供了两种文本类型

Text:存储普通的字符文本

Blob:存储二进制文本(图片,文件),一般都不会使用blob来存储文件本身,通常使用一个连接来指向对应的文件本身

Text:系统中提供的四种text

Tinytext:系统使用一个字节来保存,实际能够存储的数据位2……8+1;

Text:使用两个字节保存,实际存储为:2……16+2

Mendiumtext:使用三个字节保存,实际存储为:2……24+3

Longtext:使用四个字节保存,实际存储为:2……32+4

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

Enum

枚举类型:在数据插入之前,先设定几个想,这几个项就是可能最终出现的数据结果

如果确定某个字段的数据只有那么几个值:如性别,男、女保密,系统就可以在设定字段的时候规定当前字段只能存放固定的几个值:使用枚举

基本语法:enum(数据值 1,数据值 2...)

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

数据必须一致,规范数据

注意:枚举enum的存储原理:实际上字段所存储的值并不是真正的字符串,二十字符串对应的下标:当系统设定枚举类型的时候,会给美剧中的每个元素定义一个下标,这个下标规则从1开始

enum(1=>男,2=>女,3=>保密)

特性:在mydsql中系统是自动进行类型转换的:如果数据碰到“+、-、*、/“系统就会自动将数据转换成数值:而普通字符串转换成0;

语法:select 字段名 +0 from 表名

通过数字存储

Set

集合:将多个数据选项可以同时保存的数据类型,本质是将指定的项按照对应的二进制位来进行控制:

1表示该选项被选中,0表示该选项没有被选中。

基本语法:set('值 1','值 2'...)

系统位set提供多个字节进行保存,但是系统会自动计算来选择具体的存储单元

1个字节:set 只能有8个选项

2个字节:set只能有16个选项

set最多存放64个

set和enum一样,最终存到数据字段中的依然是数字而不是字符串

8个字符位一个字节,插入数据

 

 

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/838195
推荐阅读
相关标签
  

闽ICP备14008679号