MySQL数据类型(DATA Type)与数据恢复与备份方法
一、数据类型(DATA Type)概述
MySQL支持多种类型的SQL数据类型:数字类型,日期和时间类型,字符串(字符和字节)类型以及空间类型
数据类型描述使用以下约定:
- M表示整数类型的最大显示宽度。对于浮点和定点类型, M是可以存储的总位数(精度)。对于字符串类型, M是最大长度。允许的最大值M取决于数据类型
- D适用于浮点和定点类型,并指示小数点后面的位数(刻度)。最大可能值为30,但不应大于 M-2。
- 方括号([和])表示类型定义的可选部分
1.1、数字类型
M表示整数类型的最大显示宽度。最大显示宽度为255.显示宽度与类型可包含的值范围无关,对于浮点和定点类型,M是可以存储的总位数。
如果指定ZEROFILL数字列,MySQL会自动将该UNSIGNED 属性添加到列中。
允许该UNSIGNED 属性的数字数据类型也允许SIGNED。但是,默认情况下SIGNED会对这些数据类型进行签名,因此该 属性不起作用。
SERIAL是别名BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE。
SERIAL DEFAULT VALUE在整数列的定义中是别名NOT NULL AUTO_INCREMENT UNIQUE。
- BIT[(M)]
位值类型。M表示每个值的位数,从1到64.如果M省略,则默认值为1 TINYINT[(M)] [UNSIGNED] [ZEROFILL]
一个非常小的整数。签署的范围是 -128到127。无符号的范围是0到 255。BOOLEAN
这些类型是同义词 TINYINT(1)。值为零被视为false。非零值被认为是真的:
| 数字类型 | 描述 |
|---|---|
| TINYINT | 一个非常小的整数 |
| SMALLINT | 一个小整数 |
| MEDIUMINT | 一个中等大小的整数 |
| INT | 标准整数 |
| BIGINT | 一个大整数 |
| DECIMAL | 定点数 |
| FLOAT | 单精度浮点数 |
| DOUBLE | 双精度浮点数 |
1.2、MySQL布尔数据类型
MySQL没有内置 BOOLEAN或BOOL数据类型。为了表示布尔值,MySQL使用最小的整数类型TINYINT(1)。换句话说,是 BOOLEAN和BOOL的同义词TINYINT(1).
1.3、MySQL String数据类型
在MySQL中,字符串可以包含从纯文本到二进制数据(如图像或文件)的任何内容。通过使用LIKE运算符, 正则表达式和全文搜索,可以基于模式匹配来比较和搜索字符串
| 字符串类型 | 描述 |
|---|---|
| CHAR | 固定长度的非二进制(字符)字符串 |
| VARCHAR | 可变长度的非二进制字符串 |
| BINARY | 固定长度的二进制字符串 |
| VARBINARY | 可变长度的二进制字符串 |
| TINYBLOB | 一个非常小的BLOB(二进制大对象) |
| BLOB | 一个小BLOB |
| MEDIUMBLOB | 一个中等大小的BLOB |
| LONGBLOB | 一个大BLOB |
| TINYTEXT | 一个非常小的非二进制字符串 |
| TEXT | 一个小的非二进制字符串 |
| MEDIUMTEXT | 中等大小的非二进制字符串 |
| LONGTEXT | 一个很大的非二进制字符串 |
| ENUM | 枚举; 可以为每个列值分配一个枚举成员 |
| SET | 一套; 可以为每个列值分配零个或多个SET成员 |
MySQL日期和时间数据类型
MySQL提供日期和时间类型以及日期和时间的组合。此外,MySQL支持 时间戳数据类型,用于跟踪表中一行的更改。如果您只想存储没有日期和月份的年份,则可以使用YEAR数据类型。日期和时间类型代表的时间值 DATE, TIME, DATETIME, TIMESTAMP,和 YEAR。每个时间类型都有一系列有效值,以及当您指定MySQL无法表示的无效值时可以使用的“ 零 ”值。该TIMESTAMP类型具有特殊的自动更新行为
| 日期和时间类型 | 描述 |
|---|---|
| DATE | CCYY-MM-DD格式的日期值 |
| TIME | hh:mm:ss格式的时间值 |
| DATETIME | CCYY-MM-DD hh:mm:ss格式的日期和时间值 |
| TIMESTAMP | CCYY-MM-DD hh:mm:ss 格式化的时间戳值 |
| YEAR | 年份CCYY或YY 格式 |
MySQL空间数据类型
| 空间数据类型 | 描述 |
|---|---|
| GEOMETRY | 任何类型的空间值 |
| POINT | 一个点(一对XY坐标) |
| LINESTRING | 曲线(一个或多个POINT 值) |
| POLYGON | 一个多边形 |
| GEOMETRYCOLLECTION | 一组GEOMETRY value |
| MULTILINESTRING | 一组LINESTRING value |
| MULTIPOINT | 一组POINT value |
| MULTIPOLYGON | 一组POLYGON Value |
JSON数据类型
JSON自5.7.8版本以来,MySQL支持本机数据类型,允许您更有效地存储和管理JSON文档。本机JSON数据类型提供JSON文档和最佳存储格式的自动验证
二、MySQL备份和恢复
备份数据库非常重要,这样您就可以恢复数据,并在发生问题时重新启动并运行,例如系统崩溃,硬件故障或用户错误地删除数据。在升级MySQL安装之前,备份也是必不可少的保护措施,它们可用于将MySQL安装转移到另一个系统或设置复制从属服务器。
2.1、备份和恢复类型
- 物理与逻辑备份
物理备份由目录的原始副本和存储数据库内容的文件组成。此类备份适用于需要在出现问题时快速恢复的大型重要数据库。
逻辑备份保存表示为逻辑数据库结构(CREATE DATABASE, CREATE TABLE语句)和内容(INSERT语句或分隔文本文件)的信息。此类备份适用于较少量的数据,您可以在其中编辑数据值或表结构,或在不同的计算机体系结构上重新创建数据。 - 在线与离线备份
在MySQL服务器运行时进行联机备份,以便可以从服务器获取数据库信息。服务器停止时会发生脱机备份。这种区别也可以描述为“ 热 ”与 “ 冷 ”备份; 一个“ 温暖 ”的备份是一个在服务器保持运行,但锁定,以防止当你从外部访问数据库文件修改数据。 - 本地与远程备份
本地备份在运行MySQL服务器的同一主机上执行,而远程备份则从其他主机完成。对于某些类型的备份,即使输出是在服务器上本地写入的,也可以从远程主机启动备份。 - 快照备份
某些文件系统实现可以执行“ 快照 ” 。它们在给定时间点提供文件系统的逻辑副本,而不需要整个文件系统的物理副本。(例如,实现可能使用写时复制技术,因此只需要复制快照时间之后修改的部分文件系统。)MySQL本身不提供获取文件系统快照的功能。它可通过Veritas,LVM或ZFS等第三方解决方案获得。 - 完全与增量备份
完整备份包括MySQL服务器在给定时间点管理的所有数据。增量备份包括在给定时间跨度内(从一个时间点到另一个时间点)对数据所做的更改。MySQL有不同的方法来执行完整备份,例如本节前面所述的那些。通过启用服务器的二进制日志(服务器用于记录数据更改),可以实现增量备份 - 完全与时间点恢复
完全恢复可从完整备份中恢复所有数据。这会将服务器实例还原到备份时的状态。如果该状态不够充分,则可以在完全恢复之后恢复自完全备份以来所做的增量备份,以使服务器处于更新状态。
增量恢复是恢复在给定时间跨度内所做的更改。这也称为时间点恢复,因为它使服务器的状态达到给定时间。时间点恢复基于二进制日志,通常在备份文件完全恢复之后,将备份文件还原到备份时的状态。然后,在二进制日志文件中写入的数据更改将作为增量恢复应用于重做数据修改,并使服务器达到所需的时间点。
- 表维护
如果表损坏,数据完整性可能会受到影响。对于 InnoDB表格,这不是典型问题。MyISAM 如果程序检查表并在发现问题时进行修复 - 备份调度,压缩和加密
备份计划对于自动化备份过程很有价值。压缩备份输出可减少空间需求,输出加密可提供更好的安全性,防止未经授权访问备份数据。MySQL本身不提供这些功能。MySQL Enterprise Backup产品可以压缩InnoDB备份,并且可以使用文件系统实用程序实现备份输出的压缩或加密。
2.2、数据库备份方法
- 使用MySQL Enterprise Backup进行热备份
- 使用mysqldump或mysqlhotcopy进行备份
- 通过复制表文件进行备份
- 制作分隔文本文件备份
- 通过启用二进制日志进行增量备份
- 使用复制从站进行备份
- 恢复损坏的表
- 使用文件系统快照进行备份
MySQL数据类型(DATA Type)与数据恢复与备份方法的更多相关文章
- Symfony中Doctrine对应的Mongodb数据类型 data type
1. hash 就是 json对象 2. collection 就是 数组 3. 若要知道如何使用referenceOne, referenceMany, embbedDocument等 主要查看: ...
- MySQL中 Data truncated for column 'xxx'解决方法
DATA truncated FOR COLUMN 'description' AT ROW 1 1.错误再现 表中存在null字段 此时,修改表中某字段为主键 2.解决方法 不允许数据库中出现nul ...
- python——获取数据类型:type()、isinstance()的使用方法:
python——获取数据类型 在python中,可使用type()和isinstance()内置函数获取数据类型 如: (1)type()的使用方法: >>> a = '230' ...
- MySQL数据库(7)_MySQL 数据备份与还原
一.数据备份 1.使用mysqldump命令备份 mysqldump命令将数据库中的数据备份成一个文本文件.表的结构和表中的数据将存储在生成的文本文件中. mysqldump命令的工作原理很简单.它先 ...
- JAVA 1.2(原生数据类型 Primitive Data Type)
1. Java的数据类型分为2类 >> 原生数据类型(primitive data type) >> 引用数据类型(reference data type) 3. 常量和变量 ...
- mysql load data infile的使用 和 SELECT into outfile备份数据库数据
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE] INTO TABLE t ...
- 数据类型(data type)
基本数据类型(primitive data type):字符型(2个字节),布尔型(一位),byte(1个字节),short(两个字节),int(4个字节),long(8个字节),float(2个字节 ...
- mysql data type <----> java data type (数值)
https://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html +----------------------------+---- ...
- mysql学习笔记三 —— 数据恢复与备份
要点: 1.存储引擎2.导入导出3.备份与恢复 查看当前数据库中的所有表use db1:show tables: 1.存储引擎 不同的发动机(引擎)适用的汽车类型不一样. 存储和处理的不同方式.不同的 ...
随机推荐
- JavaSE--类加载器
参考:http://www.importnew.com/6581.html Java 编译器会为虚拟机转换源指令.虚拟机代码存储在以 .class 为扩展名的类文件中,每个类文件都包含某个类或者接口的 ...
- tif图片压缩
tif图片在ImageIo.read获取时,返回为空,导致无法使用,百度了很久,很多人说jai可以,便去看了下,总结如下: public static void CompressPic(String ...
- 【转】 java类的加载和执行顺序
1.先执行Test类的静态代码块后执行Test类的main方法,说明要执行类的方法需要先加载这个类. 2.在创建ClassB的对象时,先去加载了父类ClassA.说明加载子类时如果没有加载父类,会先加 ...
- ServletUtils
package com.ruoyi.common.utils; import java.io.IOException; import javax.servlet.http.HttpServletReq ...
- CF1137C Museums Tour(tarjan+DP)
由于d很小,所以可以把每个点拆成d个点,然后对于边(x,y),连边时连接((x,i),(y,i+1))及((x,d),(y,1)).然后可以对这样连的边跑一遍tarjan缩点.然后直接暴力DP即可.不 ...
- 上传excel文件,读取内容,增加事务写入数据库
package com.inspur.icpmg.itss.asset.dao.impl; import com.inspur.icpmg.util.DBHelper; import org.apac ...
- idea新建maven项目后生成web.xml方法和添加到tomcat方法
idea新建maven项目后生成web.xml方法和添加到tomcat方法 参考:https://www.cnblogs.com/Liang-Haishan216/p/9302141.html 1.首 ...
- VirtualBox虚拟机安装
目录 安装前准备 1.开始安装,安装很简单,直接上图 2.设置全局路径,这里主要是方便以后创建虚拟机的时候不用每次都去选择存放位置,默认是存放到C盘 安装前准备 系统:Windows 10 专业版 软 ...
- sin之舞---蓝桥杯练习
问题描述 最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功.所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力. 不妨设 An=s ...
- Pay Back(模拟)
链接:https://ac.nowcoder.com/acm/contest/1086/C 题目描述 "Never a borrower nor a lender be." O h ...