数据类型的分类
数值型(整型、小数)、字符型、日期型,小数分为定点数和浮点数。
一、整型
图片 1
注:①假使不设置无符号,暗许是有号子的,假诺设置为无符号的,供给增多unsigned关键字。
②如若插入的数值超越整型的节制,报out of range 万分,并插入临界点。
③生龙活虎旦不设置长度,会有默许长度。
④尺寸代表展现的最大开间,假若远远不足用0在左侧补充,但一定要搭配zerofill 使用

tinyint、smallint、mediumint、int/integer、bigint

1 数据类型(列类型)

  • 所谓的数据类型:对数据开展联合的归类,从系统的角度出发是为了能够接纳统后生可畏的方法张开保管,更加好的运用有限的长空。
  • SQL中将数据类型分成了三大类:

图片 2

安排临界点:
图片 3

特点:

2 数值类型

  • 数值类型数据:都是数值。
  • 系统将数值型分为整数类型和浮点数类型。

 

暗许长度:
图片 4

①都得以设置无符号和有标识,暗中认可有暗号,通过unsigned设置无符号

2.1 整数类型

  • 在SQL中因为更加多的要寻思怎么节约磁盘空间,所以系统将整数类型又细分成了5类:
    • tinyint   Mini整型,使用三个字节存款和储蓄,表示的气象最多为256种。
    • smallint      小整型,使用2个字节存款和储蓄,表示的事态最多为65536种。
    • mediumint 中整型,使用3个字节存款和储蓄。
    • int              标准整型,使用4个字节存款和储蓄。
    • bigint         大整型,使用8个字节存款和储蓄。  

 

  • 开创一张整型表

    create table my_int(
    int①都能够安装无符号和有号子,4 时光日期类型。_1 tinyint,
    int_2 smallint,
    int_3 mediumint,
    int_4 int,
    int_5 bigint
    )charset utf8;

图片 5

  • 布署数据

    — 插入数据
    insert into my_int(int_1,int_2,int_3,int_4,int_5) values(1,2,3,4,5);

图片 6

  • 翻看数据

    select * from my_int;

图片 7

 

  • SQL中的数值类型全部是默许有标记的:分正负。
  • 生机勃勃部分时候,必要动用无符号数据,须求给数据类型约束为int
    unsigned;–无符号

 

  • 给my_int表增添多少个无符号类型。

    alter table my_int add int_6 int unsigned;

图片 8

  •  插入无符号数据

    insert into my_int (int_6) values (0);

图片 9

  • 假使插入的是负数

图片 10

 

  • 查看表构造的时候,发掘各种字段的数据类型之后都会自带二个括号,里面有内定的数字

图片 11

  • 体现上升的幅度:没有特意的意义,只是私下认可的告知客商可以展现的方式而已,实际上顾客是足以决定展现上升的幅度,不过这种调节不会转移多少笔者的大大小小。

 

  • 充实叁个int_7 int(1) 的字段

    alter table my_int add int_7 int(1) unsigned ;

图片 12

  • 插入数据

图片 13

 

  • 突显上升的幅度的含义:在于当数码非常不够突显升幅的时候,会活动让多少产生对应的显得上升的幅度,经常需求搭配一个前导0(zerofill:零填充,零填充会引致数值形成无符号卡塔尔(英语:State of Qatar)来增加幅度,不改换值大小。

    alter table my_int add int_8 int(2) zerofill;

图片 14

 

  • 零填充+突显升幅的效应

图片 15

 

  • 零填充的意义:保障数据格式。

 

安装无符号类型:
图片 16

②生机勃勃旦过量了节制,会报out or range卓殊,插入临界点

3 小数类型

  • 小数型:带有小数点也许约束超过整数类型的数值类型。

 

  • SQL中:将小数类型划分为三种:浮点型和定点型。
    • 浮点型:小数点浮动,精度有限,会舍弃精度。
    • 定点型:小数点固定,精度固定,不会放弃精度。  

 

设置0填充,会活动将unsigned增加:
图片 17

③长短能够不钦命,默许会有二个长度

3.1 浮点型

  • 浮点型数据会因为超过范围之后,错过精度(自动四舍五入)。
  • 浮点型:理论上有二种精度。
    • float:单精度,占用4个字节存款和储蓄数据,精度范围大概在7位左右。
    • double:双精度,占用8个字节存款和储蓄和数据,精度范围大约在十五人左右。  

 

  • 创设浮点数表:浮点的运用格局,直接float表示一贯相当的大数部分;float(M,D卡塔尔:M代表总参谋长度,D代表小数部分长度,整数部分长度为M-D。

    — 浮点数表
    create table my_float(

    f1 float,
    f2 float(10,2),--10位在精度范围之外
    f3 float(6,2)--6位在精度范围之内
    

    );

图片 18

  • 安插数据:能够间接小数,也能够科学计数法

图片 19

 

0填充的情景:
图片 20

长度代表展现的最大开间,假使缺乏则左侧用0填充,但须要搭配zerofill,並且暗中同意变为无符号整型

3.2 定点型

  • 定点型:绝没有错作保整数部分不会被四舍五入(不会甩掉精度),小数部分有望。

 

二、小数
图片 21
float(M,D) double(M,D)和dec(M,D) decimal(M,D)
注:
①M:范围是整数片段+小数部分
②D:是指小数部分
③假使超过范围,则插入临界角
④M和D均可省略,假如是DEC,则暗中认可值10,D私下认可是0
⑤float和double,会基于插入的数值的精度来支配精度
⑥定点型的精度较高,假如必要插入数值的精度较高如货币运算等则虚构使用

定点数:decimal

4 时间日期类型

图片 22

 

Dec 的默许值:
图片 23

浮点数:float 4、double 8

5 字符串类型

  • 在SQL中,将字符串类型分成了6类:char,varchar,text,blob,enum和set。

 

  • 定长字符串
    • char:磁盘(二维表)在概念构造的时候,就曾经分明了最终数额的存放长度。
    • char(L卡塔尔(قطر‎:L代表length,可以积累的尺寸,单位为字符。最大尺寸值可感觉255。char(4卡塔尔(英语:State of Qatar):在utf8情状下,须求4 *
      3 = 12 个字节。  

 

  • 变长字符串
    • varchar:在分配空间的时候,依据最大的空间分配,不过实际最后用了多少,是依附现实的数目来鲜明。
    • varchar(L卡塔尔(英语:State of Qatar):L代表length,理论长度是655四19个字符,不过会出处1到2个字节来规定期存款款和储蓄的莫过于尺寸。varchar(10卡塔尔国:在utf8情状下,存款和储蓄拾贰个汉字,供给10 *
      3 + 1 = 31 字节。
    • 专一的是,在骨子里成本中,假使字符的长短当先2伍12个,大家会利用text或blob来代表varchar。  

 

  • 什么筛选定长或变长字符串?
    • 定长的磁盘空间相比较浪费,不过作用高;换言之,假设数额差不离鲜明长度都豆蔻梢头律,就利用定长,如居民身份证编号,电话号码,手提式有线电话机号码等。
    • 变长的磁盘空间比较节省,然而功效低;换言之,要是数量不可能鲜明长度(分歧的数码,长度有转移),如姓名,地址等。  

 

  • 文本字符串
    • 借使数据量超级大,日常超过2五10个字符,就能动用文本字符串。
    • 文本字符串遵照存款和储蓄的格式实行分拣:text和blob。
      • text:存款和储蓄文字。
      • blob:存款和储蓄二进制数据(经常并不是)。    

 

  • 枚举字符串
    • 枚举:enum,达成将全数希望现身的结果都安顿好,实际上存款和储蓄的数码必得是分明好的数额中的二个。
    • 枚举的使用办法:
      • 概念:enum(大概现身的因素列表卡塔尔(قطر‎;
        • 如:enum(‘男’,’女’,’不男不女’,’妖’卡塔尔国。
      • 使用:存款和储蓄数据,只好存款和储蓄方面定义好的数目。          

 

  • 集结字符串
    • 集结和枚举很周边:实际存款和储蓄的是数值,实际不是字符串。
    • 集合的应用要素:
      • 采取:set(成分列表卡塔尔(قطر‎;
      • 行使:能够动用要素列表中的成分(三个),使用逗号分隔。      

 

暗许长度和精度:
图片 24
三、字符型
短的公文:
char(M)、varchar(M)
Binary和varbinary 用于保存极短的文本
Enum用于保存枚举类型
Set用于保存集结
长文本:
text blob(相当的大的二进制卡塔尔(英语:State of Qatar)

特点:

6 MySQL记下长度

  • MySQL中规定:任何一条记下最长不能够超过655三十五个字节。(varchar永久达不到理论值)

 

char和varchar的区别:
图片 25
图片 26
图片 27

①M表示整数部位+小数部位的个数,D代表小数部位

7 列属性

  • 列属性:真正约束字段的是数据类型,可是数据类型的节制很单纯。必要有局地额外的束缚,来有限支撑数据的合法性。

 

  • 列属性有许多:null/not null;default;primary key;unique
    key,auto_increment,comment等

 

四、日期类型
图片 28
注:
①date只保留日期、time只保留时间、year值保存年
②datetime 保存日期+时间,timestamp保存日期+时间
图片 29
图片 30

②借使超过范围,则报out or range极度,何况插入临界角

7.1 空属性

  • 两个值:null(默认的)和not null(不为空)

 

  • 数据库基本上字段默以为null,可是在实际支付的时候,尽或许的要确认保障具有的数据不该为null,因为①空数据还毫无意义,②空数据无法参预运算。

 

③M和D都能够回顾,但对于定点数,M暗中认可为10,D默认为0

7.2 描述属性

  • 列描述:comment,描述:未有实际意义,是专程用来陈述字段的,会根据表制造语句保存。

 

④黄金时代旦精度供给较高,则优先考虑采用定点数

7.3 默认值

  • 私下认可值:
    某意气风发种数据会日常性的产出某些具体的值,能够在一发端就钦定好,在必要实际数据的时候,客户能够选用性的应用暗许值。
  • 用法:default 默认值;

 

char、varchar、binary、varbinary、enum、set、text、blob

char:固定长度的字符,写法为char,最大尺寸不可能超越M,当中M能够省略,默以为1

varchar:可变长度的字符,写法为varchar,最大尺寸不能够抢先M,个中M不得以回顾

year年

date日期

time时间

datetime 日期+时间 8

timestamp 日期+时间 4
比较简单熬时区、语法形式、版本的震慑,更能呈现当前时区的实在时间

关切民众号:Java后端生活,干货作品第一时间送达!

图片 31

相关文章