整型数据类型

MySQL数据类型 含义(有符号)
tinyint 1字节,范围(-128~127)
smallint 2字节,范围(-32768~32767)
mediumint 3字节,范围(-8388608~8388607)
int 4字节,范围(-2147483648~2147483647)
bigint 8字节,范围(+-9.22*10的18次方)

注意事项1:

对于我们的tinyint 类型 在实际情况下:

一种使用方式,比如对于高考成绩,不可能是负数的成绩,这个时候我们刚好使用unsigned 来改变数据的范围,这个时候的范围从 -128 ----127 变成了0---255 这样就可以表示150分的成绩了

然后也不会使用其他的大的数据范围的类型,导致去多占用数据空间。。。。。

从这个实例中,也说明了我们建立一个数据表的时候,对于数据类型的设计也是需要考虑的,而不是任意的将空间开大,从而浪费了空间,并且有时侯会降低查找的效率。。。。。

注意事项2:

对于我们写数据库的时候,会遇到 int后面存在一个(   ) ,括号里面的参数是数据的宽度

所以呢,如果直接就是  int(10) ,int(4), int (2)  这样写是没有什么意义的

需要在后面加一个约束条件就是 zerofill  。。。。

也就是没有达到这个括号里的这个宽度时,就要在前面补零,在上面的例子中宽度为2时,就要前面补0成为两位,宽度为3时,就要前面补0为3位。。。

浮点数据类型

MySQL数据类型 含义
float(m, d) 4字节,单精度浮点型,m总长度,d小数位
double(m, d) 8字节,双精度浮点型,m总长度,d小数位
decimal(m, d) decimal是存储为字符串的浮点数,对应我们java的Bigdecimal

注意事项 3:

浮点类型中 我们需要合理的对数据范围进行考虑,有两个参数

(m,d)  m代表的是这数据的总长度  ,然后d是这个数据的小数点后的数字个数。

例子:

数据类型为float(5, 3)的列,做了以下试验:

5-3 说明 小数点前最大两位,小数点后有三位

插入123.45678,最后查询得到的结果为99.999;

插入12.34567,最后查询结果为12.346;

对于这个数据类型 decimal是存储为字符串的浮点数,对应我们java的Bigdecimal   用于的是我们对于金钱的存取,可以存取高精度的数据,使这个数据不会丢失

字符串数据类型

MySQL数据类型 含义
char(n) 固定长度,最多255个字符
varchar(n) 可变长度,最大容量65535个字节
tinytext 可变长度,最大容量255个字节
text 可变长度,最大容量65535个字节
mediumtext 可变长度,最大容量2的24次方-1个字节 16MB
longtext 可变长度,最大容量2的32次方-1个字节 4GB

注意事项4:

使用类型的选择顺序 char》》varchar》》mediumtext》》longtext

char 的应用场景1:char非常适合存储密码的MD5值,因为这是一个定长的值。

对于我们这些个字符串的数据类型,char类型是固定长度的,如果可以用char的情况下,建议还是使用char类型来存储数据

原因如下:

这个时候我们需要考虑到varchar和char的区别是什么???

char是固定长度,而varchar是可变长度      例如 char(10)  和 varchar(10)  我们在其中存入的数据都是 "abc"这个字符串

对于char来说,就是给这个字符串去分配 10个字符的大小  ,所以对于这个“abc”来说实际上存储的是 3个字符和7个空字符的大小空间

对于varchar来说 就是只要存储 “abc“ 3 个字符的大小 ,但是存储的空间大小不只是3个字节,而是3个字节+几个字节来记录这个varchar 的最大长度

因为我们在mysql中存储它时,还需要使用1或2个额外字节记录字符串的长度,如果列的最大长度小于等于255字节(是定义的最长长度,不是实际长度),则使用1个字节表示长度,否则使用2个字节来表示。

  • char类型每次修改的数据长度相同,效率更高,varchar类型每次修改的数据长度不同,效率更低。

为什么呢?

上面的就是char中的样子,下面的是varchar的样子,对于char中的abc我们修改它需要一次即可,但是对于我们varchar中的abc我们需要完全改变它的值,我们需要三次操作。。。

然后就是text和varchar的区别了:

如果存储的数据大于64K,就必须使用到 mediumtext,longtext,因为 varchar 已经存不下了,所以text存储数据的意义完全在于的就是,可以是存储一个更大的数据。。。

对于长的文本,varchar和text都是采用的溢出存储,溢出存储的好处是我们可以读取数据的一部分到内存中,另外一部分是在磁盘中的,并未将其读取出来,一个原因是数据有时太大,我们无法全部读入,二是增加磁盘的压力去缓解内存的压力。。

日期和时间数据类型

MySQL数据类型 含义
date 3字节,日期,格式:2014-09-18
time 3字节,时间,格式:08:42:30
datetime 8字节,日期时间,格式:2014-09-18 08:42:30
timestamp 4字节,自动存储记录修改的时间
year 1字节,年份

Mysql中的数据类型注意事项的更多相关文章

  1. 存储引擎和表的操作(mysql中的数据类型、完整性约束)

    一.存储引擎 .概念 MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力. 通过选择不同的技术 ...

  2. MySQL中的数据类型及创建

    MySQL创建: 1.创建数据库create database test2; 2.删除数据库drop database test2;3.创建表create table ceshi(    ids in ...

  3. 【个人笔记】《知了堂》MySQL中的数据类型

    MySQL中的数据类型 1.整型 MySQL数据类型 含义(有符号) tinyint(m) 1个字节  范围(-128~127) smallint(m) 2个字节  范围(-32768~32767) ...

  4. MySQL中各种数据类型的长度及在开发中如何选择

    接触MySQL这个数据库大概快要两年了,不过由于没有特别深入系统的去学习,大多也是停留在一知半解的状态.今天在工作中刚好碰到了表设计的问题,顺便写篇博客,把MySQL中数据类型和字段类型选择这方面给弄 ...

  5. Sql Server中的数据类型和Mysql中的数据类型的对应关系(转)

    Sql Server中的数据类型和Mysql中的数据类型的对应关系(转):https://blog.csdn.net/lilong329329/article/details/78899477 一.S ...

  6. MySQL中的数据类型 [数值型、字符串型、时间日期型]

    MySQL中的数据类型 [数值型.字符串型.时间日期型] MySQL中各数据类型 1. 数值类型(整型) 类型 数据大小 类型 (无符号:unsigned) 数据大小 存储空间 tinyint -12 ...

  7. 存储引擎,MySQL中的数据类型及约束

    存储引擎,MySQL中的数据类型及约束 一.存储引擎 1.不同的数据应该有不同的处理机制 2.mysql存储引擎 ​ Innodb:默认的存储引擎,查询速度叫myisam慢,但是更安全 ​ 支持事务, ...

  8. mysql中的数据类型长度

    “mysql中的数据类型长度是固定的 数据类型后面改的只是展示长度 没用的 int就是四个字节 2的31次方减一是最大值 所以改这个长度没用 只能改数据类型”

  9. 抛砖系列之-MySQL中的数据类型JSON

    今天介绍一个MySQL中的数据类型-JSON,相信大家对JSON都不陌生,在日常工作中使用到的频率也很高,话不多说,直接开始. 何谓JSON 看下RFC文档对于JSON的描述 1.基于 JavaScr ...

  10. Java和Mysql中的数据类型

    1.mysql中的基本类型 1.整数: tinyint:1个字节   -128~127 smallint: 2个字节  -32768~32767 int :  4个字节 bigint:  8个字节 2 ...

随机推荐

  1. mmdetection可视化工具-DetVisGUI

    保存数据 执行程序,需要保存输出结果的pkl文件或者json文件 下面以测试faster_rcnn示例: 在执行测试时可以使用下面这条命令,就会将结果保存到一个pkl文件中. python tools ...

  2. remove blank line

    [$ cat all.experiments.csv.clean|sed -r '/^\s*$/d' > all.experiments.csv.clean2

  3. python学习记录(一)-基础

    交换变量值 a,b = 10,20 print(a,b) #10 20 a,b = b,a print(a,b) #20 10 大字符串 str = '''最近在看的动漫: 黑之契约者.咒术回战... ...

  4. 什么是js严格模式?

    (use strict)严格模式是一种将更好的错误检查引入代码中的方法. 在使用严格模式时,无法使用隐式声明的变量.将值赋给只读属性或将属性添加到不可扩展的对象等. 1. 严格模式的目的 1) 消除J ...

  5. 廖雪峰python教程

    来源于廖雪峰博客园python教程 8-25 编程语言分类 机器语言 计算机内部只能接受二进制代码,用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言,用机器语言编程的程 ...

  6. Python 跳动的小球

    一.实验内容:跳动的小球游戏介绍 二.实验对象:<零基础学Python>第13章 Pygame游戏编程 实例01 用以下代码创建一个游戏弹窗: 导入pygame模块并且用init()方法初 ...

  7. LGV算法 CodeForces 348D + 牛客多校 A Monotonic Matrix

    定理(Lindström–Gessel–Viennot lemma)很简单: 学的时候忘了大的行列式怎么算的了.. 然后就可以写题了: 第一道:CodeForces-348D(链接https://vj ...

  8. 操作系统笔记<1>

    操作系统的概念 指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配 以提供给用户和其他软件方便的接口和环境 是计算机系统中最基本的系统软件 操作系统的功能 (系统资源 ...

  9. PicGo+Typora+Github图床配置步骤(一键上传本地图片)

    PicGo+Typora+Github图床配置步骤(一键上传本地图片) 一.配置前的准备 首先你需要有一个Github账号[GitHub]. 然后下载PicGo图片上传工具[PicGo]和Typora ...

  10. 坚叔:让科幻片的概念变成产品丨编程挑战赛 x 嘉宾分享

    前言 本文基于资深创业者@坚叔在「RTE 2022 创新编程挑战赛」宣讲活动中分享内容二次整理. 嘉宾简介:陈坚(坚叔),国内二次元 AR/VR 资深创业者,国内第一批空间虚拟数字化从业人员,获得政府 ...