SQL——数据类型

环境

  DBMS:MySQL 8.0.17

  工具:Navicat Premium 11.2.16

整数类型

数据类型 说明 字节 范围
tinyint[(n)] n表示数据长度,与范围无关 1

带符号:-27~27-1

无符号:0~28-1

smallint[(n)] n表示数据长度,与范围无关 2

带符号:-215~215-1

无符号:0~216-1

mediumint[(n)] n表示数据长度,与范围无关 3

带符号:-223~223-1

无符号:0~224-1

int / integer[(n)] n表示数据长度,与范围无关 4

带符号:-231~231-1

无符号:0~232-1

bigint[(n)] n表示数据长度,与范围无关 8

带符号:-263~263-1

无符号:0~264-1

  创建基本表test并添加列n:

  

  插入数据“128”(tinyint的范围为:-128~127),发现报错:

  

  也就是说,数据不能超出数据类型的范围


  指定整数类型时默认情况为带符号整数,若要表示无符号整数,则需在整数类型后添加关键字unsigned。

整数类型 UNSIGNED

  修改列n的类型为无符号的tinyint型:

  

  插入数据“-1”,发现报错:

  

  也就是说,无符号整数不能有负数数据


  0填充会在当前数据长度小于显示长度时,在数据前用0填充。

  可以在整数类型后添加关键字zerofill,表示0填充。定义0填充需要定义数据长度。

整数类型(长度) ZEROFILL

  0填充效果在Navicat下无法看到,需要在命令行下才能看到。

  为列n定义0填充,并定义数据长度为5:

  

  使用命令行,插入数据“1”,再查询test表:

  

小数类型

数据类型 含义 字节 范围
decimal[(m,d)] m位数字组成,小数点后有d位数字的定点数。默认m=10,d=0。 m+2 依赖于m和d的取值
float[(m,d)] m位数字组成,小数点后有d位数字的单精度浮点数。默认无限制位数。 4 最小非零值:±1.175494351e–38
double[(m,d)] m位数字组成,小数点后有d位数字的双精度浮点数。默认无限制位数。 8 最小非零值:±2.2250738585072014e–308

  创建基本表test,定义字段de、f、d,三个字段都是取m=5,d=2:

  

  向三个字段都插入值“123.456”(小数位超出),发现没有报错:

  

  查看基本表test的记录,可以看到三个字段都对数据进行四舍五入,最后保留2位小数:

  

  也就是说,保存的数据小数位数大于d时会进行四舍五入,保留d位小数处理


  向三个字段都插入值“1234.56”(整数位超出),发现报错:

  

  也就是说,保存的数据整数位数大于m-d时会报错

字符类型

数据类型 说明
char(n) 长度为n的定长字符串,n最大取255
varchar(n) 最大长度为n的不定长字符串,n最大取255
tinytext 文本,最大长度为28
mediumtext 文本,最大长度为214
text 文本,最大长度为216
longtext 文本,最大长度为222

日期时间类型

数据类型 字节 范围
timestamp 4 19700101080001~20380119111407
datetime 8 1000-01-01 00:00:00~9999-12-31 23:59:59

二进制数据类型

数据类型 说明
tinyblob 最大长度为256B
blob 最大长度为64KB
mediumblob 最大长度为16MB
longblob 最大长度为4GB

其他类型

枚举类型

ENUM(字符串1,字符串2,...)

  创建基本表test,定义字段e为枚举类型:

  

  插入数据“e”(枚举类型中没有预定义的字符串),发现报错:

  

  插入数据“a,b,c,d”(枚举类型中多个预定义字符串),发现报错:

  

  也就是说,枚举类型的数据必须是预定义的字符串,而且只能取其中之一

集合类型

SET(字符串1,字符串2,...)

  创建基本表test,定义字段s为集合类型:

  

  插入数据“e”(集合类型中没有预定义的字符串),发现报错:

  

  插入数据“a,b,c,d”(集合类型中多个预定义字符串):

  

  也就是说,集合类型的数据必须是预定义的字符串,但是可以取多个预定义字符串

posted on 2019-09-04 23:51  寇德·坡特  阅读(176)  评论(0编辑  收藏  举报

导航