目录


  • 类型分类
  • 整数类型
  • 有符号和无符号的区别
  • 除char默认都是有符号
  • 声明
  • 区别
  • Tinyint
  • Smallint
  • Mediumint
  • Int
  • Bigint
  • 浮点数类型
  • Float
  • Double
  • 定点数类型
  • Decimal(M,D)
  • 日期/时间类型
  • Yeay
  • Date
  • Datetime
  • Timestamp
  • 字符串类型
  • Char
  • Varchar
  • Char 与 Varchar的区别
  • Tinytext
  • Text
  • Mediumtext
  • Longtext
  • Enum
  • Set
  • 二进制类型
  • Binary
  • Varbinary
  • TINYBLOB
  • Bolb
  • Mediumblob
  • Longblobl
  • Bit(M)




类型分类

三类六种

  • 数值类型
  • 整数类
  • 浮点数
  • 定点数
  • 日期/时间类型
  • 字符串(字符)类型
  • 字符串
  • 二进制

整数类型

整数类型细分为5种,每种整数类型所占用的字节数和取值范围长度不同;

有符号和无符号的区别

整型的每一种都分为:

  • 无符号(unsigned)
  • 有符号(signed)(float和double总是带符号的)

除char默认都是有符号

在除char以外的数据类型中,默认情况下声明的整型变量都是有符号的类型;

声明

如果需声明无符号类型的话就需要在类型前加上unsigned。

区别

无符号版本和有符号版本的区别就是无符号类型能保存2倍于有符号类型的正整数数据,比如16位系统中一个short能存储的数据的范围为-32768~32767,而unsigned能存储的数据范围则是0~65535。由于在计算机中,整数是以补码形式存放的。根据最高位的不同,如果是1,有符号数的话就是负数;如果是无符号数,则都解释为正数。另外,unsigned若省略后一个关键字,大多数编译器都会认为是unsigned int。

Tinyint

Smallint

Mediumint

Int

Bigint

浮点数类型

存储的小数都用浮点数和定点数类型,浮点数分为单精度和双进度;

Float

Double

定点数类型

Decimal(M,D)

Decimal类型的长度取值范围和Double类型的一样,不同的是Decimal(M,D) M决定数据的长度,D决定小数点后面的长度;

Example:
Decimal(6,2)类型的数据 3.1415插入数据库后,显示结果为3.14

日期/时间类型

细分为5种,每种类型就是字节数、取值范围、日期格式、零值不同;
如果插入的数值不合法,系统会自动将对应的零值插入数据库中;

Yeay

Date

Datetime

Timestamp

字符串类型

存储字符串

Char

默认使用无符号;
适合存储用户姓名这种固定长度的场景;搜索速度比Varchar快;

Varchar

适合存储用户的简介这种可长可短的场景;

Char 与 Varchar的区别

char(n)是定长格式,格式为char(n)的字段固定占用n个字符宽度,如果实际存放的数据长度超过n将被截取多出部分,如果长度小于n就用空字符填充。

varchar(n)是变长格式,这种格式的字段根据实际数据长度分配空间,不浪费对于的空间,但是搜索数据的速度会麻烦一点。

一般地说,只要一个表有一个字段定义为varchar(n)类型,那么其余用char(n)定义的字段实际上也是varchar(n)类型。
如果你的长度本身不长,比如就3~10个字符,那么使用char(n)格式效率比较高,搜索速度快。但是如果有的数据很长,有的数据有比较短,比如注册用户的简介这样的字段,实在没有办法,而且很在乎浪费的空间,那么就用varchar(n)格式。

Tinytext

Text

有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。

Mediumtext

Longtext

Enum

Set

二进制类型

存储图片、声音等多媒体数据;

Binary

Varbinary

TINYBLOB

Bolb

一个二进制大大对象,可以容纳可变数量的数据

Mediumblob

Longblobl

Bit(M)