Mysql data type(数据类型)

MySQL 数据类型

MySQL中定义数据字段的类型对你数据库的优化是非常重要的。

MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。


数值类型

MySQL支持所有标准SQL数值数据类型。

这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。

关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。

BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、InnoDB和BDB表。

作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINT和BIGINT。下面的表显示了需要的每个整数类型的存储和范围。

类型大小范围(有符号)范围(无符号)用途
TINYINT1 字节(-128,127)(0,255)小整数值
SMALLINT2 字节(-32 768,32 767)(0,65 535)大整数值
MEDIUMINT3 字节(-8 388 608,8 388 607)(0,16 777 215)大整数值
INT或INTEGER4 字节(-2 147 483 648,2 147 483 647)(0,4 294 967 295)大整数值
BIGINT8 字节(-9,223,372,036,854,775,808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615)极大整数值
FLOAT4 字节(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)0,(1.175 494 351 E-38,3.402 823 466 E+38)单精度
浮点数值
DOUBLE8 字节(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)双精度
浮点数值
DECIMAL对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2依赖于M和D的值依赖于M和D的值小数值

日期和时间类型

表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。

每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。

TIMESTAMP类型有专有的自动更新特性,将在后面描述。

类型大小
(字节)
范围格式用途
DATE31000-01-01/9999-12-31YYYY-MM-DD日期值
TIME3'-838:59:59'/'838:59:59'HH:MM:SS时间值或持续时间
YEAR11901/2155YYYY年份值
DATETIME81000-01-01 00:00:00/9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP4

1970-01-01 00:00:00/2038

结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07

YYYYMMDD HHMMSS混合日期和时间值,时间戳

字符串类型

字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何工作以及如何在查询中使用这些类型。

类型大小用途
CHAR0-255字节定长字符串
VARCHAR0-65535 字节变长字符串
TINYBLOB0-255字节不超过 255 个字符的二进制字符串
TINYTEXT0-255字节短文本字符串
BLOB0-65 535字节二进制形式的长文本数据
TEXT0-65 535字节长文本数据
MEDIUMBLOB0-16 777 215字节二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215字节中等长度文本数据
LONGBLOB0-4 294 967 295字节二进制形式的极大文本数据
LONGTEXT0-4 294 967 295字节极大文本数据

CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。

BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。

BLOB 是一个二进制大对象,可以容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们区别在于可容纳存储范围不同。

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

 

另:

  1. MySQL 5.0 以上的版本:

    1、一个汉字占多少长度与编码有关:

    UTF-8:一个汉字=3个字节

    GBK:一个汉字=2个字节

    2、varchar(n) 表示 n 个字符,无论汉字和英文,Mysql 都能存入 n 个字符,仅是实际字节长度有所区别

  2. 1、整型

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

    取值范围如果加了 unsigned,则最大值翻倍,如 tinyint unsigned 的取值范围为(0~255)。

    int(m) 里的 m 是表示 SELECT 查询结果集中的显示宽度,并不影响实际的取值范围,没有影响到显示的宽度,不知道这个 m 有什么用。

    2、浮点型(float 和 double)

    MySQL数据类型含义
    float(m,d)单精度浮点型    8位精度(4字节)     m总个数,d小数位
    double(m,d)双精度浮点型    16位精度(8字节)    m总个数,d小数位

    设一个字段定义为 float(5,3),如果插入一个数 123.45678,实际数据库里存的是 123.457,但总个数还以实际为准,即 6 位。

    3、定点数

    浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。

    decimal(m,d) 参数 m<65 是总个数,d<30 且 d<m 是小数位。

    4、字符串(char,varchar,_text)

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

    char 和 varchar:

    •  1.char(n) 若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。所以 char 类型存储的字符串末尾不能有空格,varchar 不限于此。
    •  2.char(n) 固定长度,char(4) 不管是存入几个字符,都将占用 4 个字节,varchar 是存入的实际字符数 +1 个字节(n<=255)或2个字节(n>255),所以 varchar(4),存入 3 个字符将占用 4 个字节。
    •  3.char 类型的字符串检索速度要比 varchar 类型的快。

    varchar 和 text:

    •  1.varchar 可指定 n,text 不能指定,内部存储 varchar 是存入的实际字符数 +1 个字节(n<=255)或 2 个字节(n>255),text 是实际字符数 +2 个字节。
    •  2.text 类型不能有默认值。
    •  3.varchar 可直接创建索引,text 创建索引要指定前多少个字符。varchar 查询速度快于 text, 在都创建索引的情况下,text 的索引似乎不起作用。

    5.二进制数据(_Blob)

    •  1._BLOB和_text存储方式不同,_TEXT以文本方式存储,英文存储区分大小写,而_Blob是以二进制方式存储,不分大小写。
    •  2._BLOB存储的数据只能整体读出。
    •  3._TEXT可以指定字符集,_BLO不用指定字符集。

    6.日期时间类型

    MySQL数据类型含义
    date日期 '2008-12-2'
    time时间 '12:25:36'
    datetime日期时间 '2008-12-2 22:06:44'
    timestamp自动存储记录修改时间

    若定义一个字段为timestamp,这个字段里的时间数据会随其他字段修改的时候自动刷新,所以这个数据类型的字段可以存放这条记录最后被修改的时间。

    数据类型的属性

    MySQL关键字含义
    NULL数据列可包含NULL值
    NOT NULL数据列不允许包含NULL值
    DEFAULT默认值
    PRIMARY KEY主键
    AUTO_INCREMENT自动递增,适用于整数类型
    UNSIGNED无符号
    CHARACTER SET name指定一个字符集

转自:http://www.runoob.com/mysql/mysql-data-types.html

转载于:https://www.cnblogs.com/TomFord/p/10834188.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/483446.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

王道计算机网络 应用层整理 超详细版

应用层概述 应用层对应用程序的通信提供服务。 应用层协议定义&#xff1a; 应用进程交换的报文类型&#xff08;请求/响应&#xff09; 各种报文类型的语法&#xff0c;如报文中的各个字段及其详细描述。 字段的语义&#xff0c;即包含在字段中的信息的含义。 进程何时、…

Facebook正式改名Meta,一个元宇宙新纪元由此开始

All in Metaverse&#xff0c;扎克伯格豪赌一个未来。来源&#xff1a;硅星人文&#xff1a;Juny 编辑&#xff1a;Lianzi美西时间早上7点&#xff0c;硅谷的天刚蒙蒙亮。Facebook硅谷总部前公司标志牌被蒙上了一层幕布。工作人员在标志牌前拉起了屏障&#xff0c;静静等待着…

计算机网络——标准化工作及相关组织

1.标准的分类 \qquad法定标准&#xff1a;由权威机构制定的&#xff0c;正式的&#xff0c;合法的标准&#xff0c;比如OSI标准&#xff1b;事实标准&#xff1a;某些强势产品在经过时间之后&#xff0c;这些产品的协议和技术就成为了标准&#xff0c;比如TCP/IP协议。 2.标准…

使用 Blender* 重新拓扑 VR 和游戏素材

本文介绍如何将网格重新拓扑成一个整洁的低密度模型&#xff0c;然后 UV 解包该网格&#xff0c;以便将纹理贴添加至新模型。本文还将探讨如何使用免费工具&#xff0c;比如 Blender* 及其 Bsurface 插件&#xff0c;重新拓扑雕塑的 3D 网格。查看详情转载于:https://www.cnblo…

中缀表达式转换为前缀或后缀表达式的手工做法

以 a/b ( c*d - e*f) / g 为例&#xff1a; 步骤1&#xff1a;按照运算符的优先级对所有的运算单元加括号。 ((a/b) (( (c*d) - (e*f)) / g)) 步骤2&#xff1a;转换为前缀或后缀表达式。 前缀&#xff1a;把运算符号移动到对应的括号前面&#xff0c;式子变为 (/(ab)/(-(*(…

AI学会灌水和造假!Google新研究揭露了AI现实应用的陷阱

来源&#xff1a;Google AI、新智元作者&#xff1a;Alex DAmour、atherine Heller今天&#xff0c;机器学习&#xff08;ML&#xff09;模型得到了大规模的使用&#xff0c;而且影响力也越来越大。然而&#xff0c;当它们被用于现实世界的领域时&#xff0c;往往表现出意想不到…

计算机网络——速率相关的性能指标

1.什么是速率&#xff1f; \qquad速率即数据率或称数据传输率或比特率。比特是数据传输的单位&#xff0c;从比特的角度看&#xff0c;速率就是在计算机网络上的主机在数字信道上传送数据位数的速率&#xff0c;单位有b/s&#xff0c;kb/s千&#xff0c;Mb/s兆&#xff0c;Gb/s…

Vue封装下拉框组件时,为document绑定原生事件addEventlistener(click“),切换页面之后事件还未被摧毁...

1 <script>2 export default {3 props: ["lists"],4 data() {5 return {6 isactive: false,7 actveName: "",8 selContent: "请选择"9 }; 10 }, 11 mounted() { 12 console.log("我被创建了&q…

查找算法详解

1、查找的基本概念 查找也即检索。 文件&#xff1a;由记录组成的集合&#xff0c;即含有大量数据的元素线性组合而成。 记录&#xff1a;由若干数据项组成的数据元素&#xff0c;这些数据项也常称作记录中的数据域&#xff0c;用以表示某个状态的物理意义。 关键字&#xff1…

高文院士:中国在AI领域有哪些长板和短板

10月25日&#xff0c;在第四届世界声博会暨2021科大讯飞全球1024开发者节上&#xff0c;中国工程院院士高文通过线上方式发表演讲来源&#xff1a;笑看国际风云、央广网、集微网、中国科学报10月25日&#xff0c;第四届世界声博会暨2021科大讯飞全球1024开发者节在安徽合肥开幕…

linux的基础知识——信号的四要素和kill

1.信号的四要素 \qquad信号的名字&#xff1b;信号的编号&#xff1b;信号的默认处理动作&#xff1b;信号的事件 2.信号相关命令 \qquad查看linux下的所有信号&#xff1a;kill -l&#xff1b;查看信号文档&#xff1a;man 7 signal。一共有64个信号。linux常规信号一览表 1)…

SpringBoot学习笔记(16)----SpringBoot整合Swagger2

Swagger 是一个规范和完整的框架&#xff0c;用于生成&#xff0c;描述&#xff0c;调用和可视化RESTful风格的web服务 http://swagger.io Springfox的前身是swagger-springmvc,是一个开源的API doc框架&#xff0c;可以将我们的Controller接口的方法以文档的形式展现&#xff…

Jeff Dean亲自揭秘谷歌下一代AI架构:通用、稀疏且高效,网友不买帐:毫无新意...

来源&#xff1a;机器之心在这波 AI 浪潮中&#xff0c;人工智能技术经过十几年的爆发式发展&#xff0c;已经在各个领域有着极为广泛的应用&#xff0c;如医疗、科学研究、汽车等。但是随着技术发展的缓慢&#xff0c;以深度学习为代表的人工智能技术瓶颈开始凸显。今年 8 月份…

排序算法笔记(Java)

package datastructure;import java.util.Arrays; import java.util.Scanner;public class Sort {static int len; //声明全局变量&#xff0c;用于记录arr的长度public static void main(String[] args) {Scanner sc new Scanner(System.in);String str sc.nextLine();Strin…

冲刺进度条05

昨天&#xff1a;获取当日天气 今天&#xff1a;继续编写获取当日天气 遇到的困难&#xff1a;解析的json数据转载于:https://www.cnblogs.com/leity/p/10874283.html

计算机网络——时延、时延带宽积、RTT和利用率

1.什么是时延 \qquad数据&#xff08;报文/分组/比特流&#xff09;从网络的一端传送到网络另外一端所需的时间。也叫延迟或者迟延&#xff0c;单位是s 2.时延的种类 2.1 发送时延&#xff08;传输时延&#xff09; \qquad从发送分组的第一个比特算起&#xff0c;到该分组的最…

强人工智能与泛心论

来源&#xff1a;哲社院后台原载于《科学经济社会》2021年第39卷第3期第52~59页作者简介&#xff1a;陈敬坤&#xff0c;1981年1月生。哲学博士&#xff0c;山西大学哲学社会学学院副教授&#xff0c;曾赴比利时布鲁塞尔自由大学、美国匹兹堡大学等作学术访问。研究领域主要为心…

开通博客园

https://www.cnblogs.com/XiaoJ-cs/ 这两天开通了博客园&#xff0c;换了个主题很舒服。 CSDN也会继续更新。

第一章 Linux是什么

Linux是核心与系统调用接口两层中间的操作系统不同硬件的功能函数并不相同&#xff0c;IBM的Power CPU与Inter的x86架构不同&#xff0c;所以同一套操作系统是不能在不同的硬件平台上面运行的。也就是说&#xff0c;每种操作系统都是在他专门的硬件机器上面运行的。不过&#x…

计算机网络——分层结构,协议,接口和服务

1.为什么要分层&#xff1f; \qquad当有两台主机&#xff0c;A向B通过网络发送文件&#xff0c;在发送文件前需要完成这么几件事情&#xff1a;1&#xff09;A必须将数据通信的通路进行激活&#xff1b;2&#xff09;要告诉网络如何识别目的主机B&#xff1b;3&#xff09;A要查…