mysql中text,longtext,mediumtext字段类型及区别

mysql中text,longtext,mediumtext字段类型及区别 在Hibernate的配置中,我目前是采用Annotation的方式,不过原理应该都一样。对于如下的属性:Java代码private String dtaContent;    @Lob(type = LobType.CLOB, fetch = FetchType.LAZY)  

大家好,又见面了,我是你们的朋友全栈君。

 在Hibernate的配置中,我目前是采用Annotation的方式,不过原理应该都一样。

对于如下的属性:

Java代码 复制代码

  1. private  String dtaContent;   
  2.   
  3. @Lob (type = LobType.CLOB, fetch = FetchType.LAZY)   
  4. @Column   
  5. public  String getDtaContent() {   
  6.   return  dtaContent;   
  7. }  
  private String dtaContent;

  @Lob(type = LobType.CLOB, fetch = FetchType.LAZY)
  @Column
  public String getDtaContent() {
    return dtaContent;
  }


Hibernate会默认对应到MySQL的Text上去。Text是有65535字节限制的。

改成:

Java代码 复制代码

  1. private  String dtaContent;   
  2.   
  3. @Lob (type = LobType.CLOB, fetch = FetchType.LAZY)   
  4. @Column (length = 16777215 )   
  5. public  String getDtaContent() {   
  6.   return  dtaContent;   
  7. }  
  private String dtaContent;

  @Lob(type = LobType.CLOB, fetch = FetchType.LAZY)
  @Column(length = 16777215)
  public String getDtaContent() {
    return dtaContent;
  }


Hibernate会对应到MySQL的MeduimText上去。MedumnText最大16777215字节。

改成:

Java代码 复制代码

  1. private  String dtaContent;   
  2.   
  3. @Lob (type = LobType.CLOB, fetch = FetchType.LAZY)   
  4. @Column (length = 16777216 )   
  5. public  String getDtaContent() {   
  6.   return  dtaContent;   
  7. }  
  private String dtaContent;

  @Lob(type = LobType.CLOB, fetch = FetchType.LAZY)
  @Column(length = 16777216)
  public String getDtaContent() {
    return dtaContent;
  }


Hibernate会对应到MySQL的LongText上去。LongText最大2147483647字节。

MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述。概述有意简化,更详细的说明应该考虑到有关特定列类型的附加信息,例如你能为其指定值的允许格式。

由MySQL支持的列类型列在下面。下列代码字母用于描述中:

M
指出最大的显示尺寸。最大的合法的显示尺寸是 255 。
D
适用于浮点类型并且指出跟随在十进制小数点后的数码的数量。最大可能的值是30,但是应该不大于M-2。
方括号(“[”和“]”)指出可选的类型修饰符的部分。

注意,如果你指定一个了为ZEROFILL,MySQL将为该列自动地增加UNSIGNED属性。

TINYINT[(M)] [UNSIGNED] [ZEROFILL]
一个很小的整数。有符号的范围是-128到127,无符号的范围是0到255。

SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
一个小整数。有符号的范围是-32768到32767,无符号的范围是0到65535。

MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
一个中等大小整数。有符号的范围是-8388608到8388607,无符号的范围是0到16777215。

INT[(M)] [UNSIGNED] [ZEROFILL]
一个正常大小整数。有符号的范围是-2147483648到2147483647,无符号的范围是0到4294967295。

INTEGER[(M)] [UNSIGNED] [ZEROFILL]
这是INT的一个同义词。

BIGINT[(M)] [UNSIGNED] [ZEROFILL]

一个大整数。有符号的范围是-9223372036854775808到9223372036854775807,无符号的范围是0到

18446744073709551615。注意,所有算术运算用有符号的BIGINT或DOUBLE值完成,因此你不应该使用大于9223372036854775807(63位)的有符号大整数,除了位函数!注意,当两个参数是INTEGER值时,-、+和*将使用BIGINT运算!这意味着如果你乘2个大整数(或来自于返回整数的函数),如果结果大于9223372036854775807,你可以得到意外的结果。一个浮点数字,不能是无符号的,对一个单精度浮点数,其精度可以是<=24,对一个双精度浮点数,是在25 和53之间,这些类型如FLOAT和DOUBLE类型马上在下面描述。FLOAT(X)有对应的FLOAT和DOUBLE相同的范围,但是显示尺寸和小数位数是未定义的。在MySQL3.23中,这是一个真正的浮点值。在更早的MySQL版本中,FLOAT(precision)总是有2位小数。该句法为了ODBC兼容性而提供。

FLOAT[(M,D)] [ZEROFILL]
一个小(单精密)浮点数字。不能无符号。允许的值是-3.402823466E+38到-1.175494351E-38,0 和1.175494351E-38到3.402823466E+38。M是显示宽度而D是小数的位数。没有参数的FLOAT或有<24 的一个参数表示一个单精密浮点数字。

DOUBLE[(M,D)] [ZEROFILL]
一个正常大小(双精密)浮点数字。不能无符号。允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308、 0和2.2250738585072014E-308到1.7976931348623157E+308。M是显示宽度而D是小数位数。没有一个参数的DOUBLE或FLOAT(X)(25 < = X < = 53)代表一个双精密浮点数字。

DOUBLE PRECISION[(M,D)] [ZEROFILL]

REAL[(M,D)] [ZEROFILL]
这些是DOUBLE同义词。

DECIMAL[(M[,D])] [ZEROFILL]
一个未压缩(unpack)的浮点数字。不能无符号。行为如同一个CHAR列:“未压缩”意味着数字作为一个字符串被存储,值的每一位使用一个字符。小数点,并且对于负数,“-”符号不在M中计算。如果D是0,值将没有小数点或小数部分。DECIMAL值的最大范围与DOUBLE相同,但是对一个给定的DECIMAL列,实际的范围可以通过M和D的选择被限制。如果D被省略,它被设置为0。如果M被省掉,它被设置为10。注意,在MySQL3.22里,M参数包括符号和小数点。

NUMERIC(M,D) [ZEROFILL]
这是DECIMAL的一个同义词。

DATE
一个日期。支持的范围是’1000-01-01’到’9999-12-31’。MySQL以’YYYY-MM-DD’格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列。

DATETIME
一个日期和时间组合。支持的范围是’1000-01-01 00:00:00’到’9999-12-31 23:59:59’。MySQL以’YYYY-MM-DD HH:MM:SS’格式来显示DATETIME值,但是允许你使用字符串或数字把值赋给DATETIME的列。

TIMESTAMP[(M)]
一个时间戳记。范围是’1970-01-01 00:00:00’到2037年的某时。MySQL以YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD或YYMMDD格式来显示TIMESTAMP值,取决于是否M是14(或省略)、12、8或6,但是允许你使用字符串或数字把值赋给TIMESTAMP列。一个TIMESTAMP列对于记录一个INSERT或UPDATE操作的日期和时间是有用的,因为如果你不自己给它赋值,它自动地被设置为最近操作的日期和时间。你以可以通过赋给它一个NULL值设置它为当前的日期和时间。
TIME
一个时间。范围是’-838:59:59’到’838:59:59’。MySQL以’HH:MM:SS’格式来显示TIME值,但是允许你使用字符串或数字把值赋给TIME列。

YEAR[(2|4)]
一个2或4位数字格式的年(缺省是4位)。允许的值是1901到2155,和0000(4位年格式),如果你使用2位,1970-2069( 70-69)。MySQL以YYYY格式来显示YEAR值,但是允许你把使用字符串或数字值赋给YEAR列。(YEAR类型在MySQL3.22中是新类型。)

CHAR(M) [BINARY]
一个定长字符串,当存储时,总是是用空格填满右边到指定的长度。M的范围是1 ~ 255个字符。当值被检索时,空格尾部被删除。CHAR值根据缺省字符集以大小写不区分的方式排序和比较,除非给出BINARY关键词。NATIONAL CHAR(短形式NCHAR)是ANSI SQL的方式来定义CHAR列应该使用缺省字符集。这是MySQL的缺省。CHAR是CHARACTER的一个缩写。

[NATIONAL] VARCHAR(M) [BINARY]
一个变长字符串。注意:当值被存储时,尾部的空格被删除(这不同于ANSI SQL规范)。M的范围是1 ~ 255个字符。 VARCHAR值根据缺省字符集以大小写不区分的方式排序和比较,除非给出BINARY关键词值。 VARCHAR是CHARACTER VARYING一个缩写。

TINYBLOB

TINYTEXT
一个BLOB或TEXT列,最大长度为255(2^8-1)个字符。
BLOB

TEXT
一个BLOB或TEXT列,最大长度为65535(2^16-1)个字符。

MEDIUMBLOB

MEDIUMTEXT
一个BLOB或TEXT列,最大长度为16777215(2^24-1)个字符。
LONGBLOB

LONGTEXT
一个BLOB或TEXT列,最大长度为4294967295(2^32-1)个字符。

ENUM(‘value1′,’value2’,…)
枚举。一个仅有一个值的字符串对象,这个值式选自与值列表’value1’、’value2′, …,或NULL。一个ENUM最多能有65535不同的值。

SET(‘value1′,’value2’,…)
一个集合。能有零个或多个值的一个字符串对象,其中每一个必须从值列表’value1′, ‘value2’, …选出。一个SET最多能有64个成员。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146727.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java高级工程师常见面试题(答案)[通俗易懂]

    Java高级工程师常见面试题(答案)[通俗易懂]Java高级工程师常见面试题2017年02月17日12:46:00阅读数:17280一、Java基础1.String类为什么是final的。   1.线程安全2.支持字符串常量池数据共享,节省资源,提高效率(因为如果已经存在这个常量便不会再创建,直接拿来用)  2.HashMap的源码,实现…

    2022年6月12日
    34
  • redis主从复制原理是同步还是异步_kubernetes高可用架构

    redis主从复制原理是同步还是异步_kubernetes高可用架构史上最全的MySQL高可用架构之【主从复制】【故障转移】【读写分离】【负载均衡】

    2022年8月13日
    7
  • 麦克风阵列声源定位实现[通俗易懂]

    麦克风阵列声源定位实现[通俗易懂]麥克風陣列音源定位系統是利用麥克風陣列接收音訊,然後經由適當的演算法估算出音源入射麥克風陣列的方向角,即判斷出音源的位置方向。本專題著重於此演算法的程式撰寫,並實際測試二維及三維空間中單一音源入射的方向角,期望於演算速度及準確度上能有最好的效果。此系統完成後可搭配攝影機應用於視訊會議,隨時定位出發言者;也可應用於監視系統、玩具等。

    2025年12月11日
    2
  • Java的几个版本

    Java的几个版本一、JavaSE(JavaPlatform,StandardEdition)JavaSE以前称为J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java应用程序。JavaSE包含了支持 JavaWeb服务开发的类,并为JavaPlatform,EnterpriseEdition(JavaEE)提供基础。二、JavaEE(JavaPlatform,EnterpriseEdition) 这个版本以前称为J2EE。企业版本帮助开发和部署可移植

    2022年7月8日
    26
  • pycharm正则替换小技巧

    pycharm正则替换小技巧在 django 开发过程中 可能遇到需要把 HTML 文件中的静态文件的路径全部替换为 django 模板引用路径的格式例如将 lt linkrel stylesheet type text css href static css reset css gt 中的 static css reset css 替换为 static css reset css 可以用到 pycharm 的

    2026年1月22日
    1
  • RewriteCond和13个mod_rewrite应用举例Apache伪静态

    RewriteCond和13个mod_rewrite应用举例Apache伪静态1.给子域名加www标记RewriteCond%{HTTP_HOST}^([a-z.]+)?example.com$[NC]RewriteCond%{HTTP_HOST}!^www.[NC]RewriteRule.?http://www.xample.com%{REQUEST_URI}[R=301,L]这个规则抓取二级域名的%1变量,如果不是以www开始,

    2022年6月6日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号