Mysql_字段类型介绍


类型分类

三类六种

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

整数类型

整数类型细分为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)

转载于:https://www.cnblogs.com/mysticbinary/articles/11329383.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值