=============

MySQL数据类型

=============

整数类型

========

整数类型 字节数 无符号范围 有符号的范围

TINYINT 1 0~255 -128~127

SMALLLINT 2 0~65535 -32768~32767

MEDIUMINT 3 0~16777215 -8388608~8388607

INT 4 0~4294967295 -2147483648~2147483647

BIGINT 8 0~18446744073709551615 -9223372036854775808~9223372036854775808

MySQL支持数据类型的后面指定该类型的显示宽度。其基本形式如下:

数据类型(显示宽度)

默认显示宽度:可以理解为,一个数据类型的默认显示宽度正好是能显示该数据类型的所有值的宽度。

TINYINT 4

SMALLINT 6

MEDIUMINT 9

INT 11 无符号则10

BIGINT 20

在整数类型使用时,可以搭配zerofill参数,zerofill参数表示数字不足的显示空间由0来填充。

注意:使用zerofill时,MySQL会自动加上UNSIGNED属性。那么,该整数类型只能表示无符号数,其显示宽度比默认显示宽度小1。

在设置了显示宽度时,如果插入的数据宽度大小设置的显示宽度时,数据依然可以插入,且能够显示。该设置的宽度失效。

注意:数据的宽度不能大于默认宽度。如果大于默认宽度,那该数据已经超过了该类型的最大值。因为最大值的宽度必须是小于等于默认宽度。如果一个值大于最大值,将不可能插入。

整数类型还有一个AUTO_INCREMENT属性。自增。

浮点数和定点数

==============

MySQL中使用浮点数和定点数来表示小数。

浮点数:单精度浮点数(FLOAT)和双精度浮点数(DOUBLE)。

定义数:DECIMAL

浮点类型 字节数 负数的取值范围 非负数的取值范围

FLOAT 4 -3.402823466E+38~-1.175494351E-38 0和-1.175494351E-38~3.402823466E+38

DOUBLE 8 -1.79769313486223157E+308~-2.2250738585072014E-308 0和-2.2250738585072014E-308~1.79769313486223157E+308

DECIMAL M+2 同DOUBLE 同DOUBLE

定点数的存储空间是根据其精度来决定的。

MySQL中可以指定浮点数的精度: 数据类型(M,D)

M-精度,是数据的总长度,小数点占位置 1000.01

D-标度,小数点后的长度

如果插入的值的精度高于实际定义的精度,系统会自动进行四舍五入处理。float double不会报错,decimal会报一个警告

在存储小数时,建议使用decimal类型,定点数以字符串形式储存。因此,精度要比浮点数要高。而且,浮点数会出现误差,这是浮点数一直存在的缺陷。如果对数据的精度要求比较高,还是选择定点数(DECIMAL)比较安全。

日期与时间类型

==============

数据类型 字节数 取值范围 零值

YEAR 1 1901~2155 0000

DATE 4 1000-01-01~9999-12-31 0000:00:00

TIME 3 -838:59:59~838:59:59 00:00:00

DATETIME 8 1000-01-01 00:00:00~9999-12-31 23:59:59 0000-00-00 00:00:00

TIMESTAMP 4 19700101080001~20380119111417 00000000000000

YEAR:

超出范围就会插入0000

使用2位字符串表示,'00'~'69'转换为2000~2069,'70'~'99'转换为1970~1999

使用2位数字表示,00~69转换为2000~2069,70~99转换为1970~1999。

注意两位的数字和两位的字符串是不一样的:0-0000 '0''00'-2000

DATE:

4个字节来表示日期。以YYYY-MM-DD的形式来显示DATE类型的值。

1)'YYYY-MM-DD'或'YYYYMMDD'格式的字符串表示。

2)MySQL中还支持一些不严格的语法格式:'YYYYMMDD' 'YYYY@MM@DD' 'YYYY.MM.DD'

3)'YY-MM-DD'或'YYMMDD'格式的字符串表示。

4)YY取值同YEAR类型中的两位字符串的表示一致。

5)YYYYMMDD或YYMMDD格式的数字表示。YY取值同上。

虽然MySQL支持DATE类型的一些不严格的语法格式。但是,实际运用中,最好还是选择标准形式。日期中使用-做分隔符,时间用:做分隔符。如果有特殊需要也可以使用@、* 等特殊字符做分隔符。

使用CURRENT_DATE和NOW()转换为当前系统日期。

字符串类型

==========

字符串类型是MySQL中用来存储字符串的数据类型。字符串类型包括CHAR VARCHAR BLOB TEXT ENUM SET。

CHAR和VARCHAR类型

=================

字符串类型(M) M-该字符串的最大长度为M

CHAR 定长字符类型 0~255

VARCHAR 可变长字符类型 5.0版本以前0~255 5.0版本以后0~65535

CHAR(5)和VARCHAR(5)的区别

插入值 CHAR占用字节数 VARCHAR占用字节数

'' 5 1

'1' 5 2

'123' 5 4

'1234' 5 5

'12345' 5 6

如果插入值的长度大于M,则插入失败。

TEXT类型

========

类型 范围 占用空间

TINYTEXT 0~255 长度+2个字节

TEXT 0~65535 长度+2个字节

MEDIUMTEXT 0~167772150 长度+3个字节

LONGTEXT 0~4294967295 长度+4个字节

ENUM类型

========

又称枚举类型。

ENUM('值1','值2',...,'值n')

n-代表参数列表中的第n个值,这些值末尾的空格会被系统直接删除。

ENUM类型的值只能取列表中的一个元素。

取值列表中最多能有65535成员。

列表中的每一个值都有一个顺序排列的编号,MySQL存入的是这个编号,而不是值。

SET类型

=======

在创建表时,SET类型的取值范围就以列表的形式指定了。

SET('值1','值2',...,'值n')

SET类型的值最多只以是有64个元素构成的组合。取值可以是其中的一个或多个。其它特性,与ENUM类似。

二进制类型

==========

二进制类型是在数据库中存储二进制数据的数据类型。

类型 取值范围

BINARY(M) 字节数为M,允许长度为0~M的定长二进制字符串

VARBINARY(M) 允许长度为0~M的变长二进制字符串,字节数为值的长度加1

BIT(M) M位二进制数,M最大值为64

TINYBLOB 可变长二进制数据,最多255个字节

BLOB 可变长二进制数据,最多2e16-1个字节

MEDIUMBLOB 可变长二进制数据,最多2e24-1个字节

LONGBLOB 可变长二进制数据,最多2e32-1个字节

mysql字符类型_MYSQL字符类型大全相关推荐

  1. MYSQL的字符序_mysql字符序核心概念

    mysql中的字符集与排序规则 二话不说,先来看一张图 想必这张图大家在建立数据库的时候都见到过,而且见到的时候可能对字符集还有一点熟悉,但是对这个排序规则不是很熟,不知道是干嘛用的,我今天建立数据库 ...

  2. mysql字段说明_mysql 字段类型说明

    MySQL支持大量的列类型,它可以被分为3类:数字类型.日期和时间类型以及字符串(字符)类型.本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述.概 ...

  3. mysql取得列类型_Mysql列类型

    数值型 整型: tinyint:微小的列类型,1个字节,默认有符号,存储范围:-128--127 可选属性:tingyint(M) unsigned zerofill M:宽度(在0填充(zerofi ...

  4. mysql密码字段类型_MySQL 字段类型

    数值 MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数. 许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 MySQL 允许我们指定 ...

  5. mysql密码字段类型_MySQL字段类型最全解析

    **前言:** 要了解一个数据库,我们必须了解其支持的数据类型.MySQL 支持大量的字段类型,其中常用的也有很多.前面文章我们也讲过 int 及 varchar 类型的用法,但一直没有全面讲过字段类 ...

  6. mysql基本数据长度_MySQL的类型与数据长度

    之前遇到一个问题"怎么评估一行MySQL记录占据了多少字节?".自己当时也不是特别清楚.当时只是简单的知道,具体的长度跟编码相关.前几天系统研究了一下MySQL中的编码问题,铺垫已 ...

  7. mysql 空间 类型_MySQL空间类型测试

    Mysql空间类型介绍: MySQL支持空间扩展,允许生成.保存和分析地理特征.这些特征可用于MyISAM.InnoDB.NDB.BDB和ARCHIVE表(但是,ARCHIVE引擎不支持索引功能,因此 ...

  8. mysql连接校对_mysql字符集和校对规则(Mysql校对集)

    字符集的概念大家都清楚,校对规则很多人不了解,一般数据库开发中也用不到这个概念,mysql在这方便貌似很先进,大概介绍一下 简要说明 字符集和校对规则 字符集是一套符号和编码.校对规则是在字符集内用于 ...

  9. mysql 大二进制类型_MySql 二进制类型

    MySQL二进制类型 二进制类型是在数据库中存储二进制数据的数据类型.二进制类型包括BINARY.VARBINARY.BIT.TINYBLOB.BLOB.MEDIUMBLOB和LONGBLOB等. M ...

最新文章

  1. FMDB使用SQLite事务Save Point
  2. Basic Sorting Algorithms
  3. unity3d与eclipse协同工作环境
  4. Spring Batch 专题
  5. Google Chrome v48.0.2564.
  6. 【软件开发底层知识修炼】六 Binutils辅助工具之- addr2line与strip工具
  7. 50道Java集合经典面试题
  8. 漫画:学习中台,看这篇就够了
  9. python笔记-标准库unittest
  10. [HAOI2010]软件安装(树形背包,tarjan缩点)
  11. linux系统管理命令使用,Linux系统管理命令使用说明
  12. PHP-CGI进程占用过多CPU
  13. java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory的解决(转)
  14. 廖雪峰git教程中的git命令汇总
  15. C#Winform使用Chrome内核WebKitBrowser
  16. [转载]PS各个工具的字母快捷键和英文全名
  17. 第十一届“蓝狐网络杯”湖南省大学生计算机程序设计竞赛
  18. 记录一下向npmjs上发布包遇到的坑
  19. 视频存储空间计算公式
  20. 淘淘商城——展示购物车商品列表

热门文章

  1. 【愚公系列】2023年06月 网络安全(交通银行杯)-神秘的字符串
  2. Line还没上市 股价已经在黑市上溢价15%了
  3. windows命令行下用netsh实现端口转发(端口映射)
  4. 仿VeryCD上的动态title
  5. 两招教你苹果12隐藏主界面应用图标「iphone技巧」
  6. Python爬取网页所有小说
  7. Javascript之旅——第二站:对象和数组
  8. Android管理系统
  9. NeurIPS 2018首日:阿里霸气演示全中文Demo,谷歌发布“找新娘”图片识别竞赛
  10. JSTL标签库不起作用的解决方案 .