MySQL中数据类型的长度
2009-12-08 下午 - PHP - longtext - mysql
最近一直在为涂鸦板涂鸦数据的存储而困扰,到底是存在数据库里还是写到文件里,一直拿捏不定,查了一下MySQL的Longtext,数据应该不会超过这个长度,纠结。
在网上查到的MySQL的数据长度的相关信息,发上来方便以后查看
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个成员。
转于
http://compig.net/blog/?p=60
分享到:
相关推荐
### MySQL所有字段类型及长度范围详解 在数据库设计与应用开发过程中,选择合适的字段类型对于确保数据的准确存储和高效处理至关重要。MySQL提供了丰富的数据类型,涵盖了数字、字符串、日期时间等多种类别,满足了...
在MySQL中,`VARCHAR`是一种用于存储可变长度字符串的数据类型,它的长度设置是非常关键的,因为它直接影响到存储空间的使用效率和数据的正确性。`VARCHAR`的长度设置方法是通过在类型名后面括号内指定最大字符数,...
其中,VARCHAR 类型用于存储可变长度的字符串,NVARCHAR 类型用于存储 Unicode 字符串,CHAR 类型用于存储固定长度的字符串,NCHAR 类型用于存储 Unicode 字符串。 数字类型 在 Java 中,数字类型对应的是 java....
### MySQL与Java数据类型对应详解 #### 概述 在进行数据库操作时,尤其是在使用Java进行MySQL数据库开发的过程中,正确地映射数据类型是至关重要的一步。本文将详细介绍MySQL中的各种数据类型及其在Java中的对应...
- **二进制类型** (`BINARY`):表示固定长度的二进制字符串。 - **字符类型** (`CHAR()`):表示定长的字符串。 - **日期类型** (`DATE`):表示日期值。 - **时间类型** (`TIME`):表示时间值。 - **日期时间类型** ...
Java 数据类型和 MySql 数据类型对应表 在 Java 编程中,了解 Java 数据类型和 MySql 数据类型的对应关系非常重要。这是因为在 Java 应用程序中,我们经常需要与数据库进行交互,而 MySql 是一种常用的关系数据库...
Mysql 中插入多 text 类型问题解决方案 在 MySQL 中,插入多个 text 类型字段时,可能会遇到 "Row size too large" 的错误,这是因为 MySQL 的行大小限制所致。在这种情况下,我们可以通过修改 MySQL 的配置文件和...
### MySQL数据类型全掌握 #### 一、概述 在数据库设计和开发过程中,正确选择数据类型对于确保数据的准确性和优化存储空间至关重要。MySQL作为一款广泛使用的开源关系型数据库管理系统,提供了丰富的数据类型来...
MySQL 数据类型详细介绍 MySQL 数据类型是 MySQL 中最基本的组成部分,也是 MySQL 的核心组成部分。 MySQL 数据类型主要有六大类,即整型、浮点型、定点数浮点型、字符串、日期时间类型和二进制数据类型。 整型 ...
MySQL 数据类型详解 MySQL 数据类型是指在 MySQL 数据库中存储数据的方式,它决定了数据的存储格式、大小和范围。了解 MySQL 数据类型非常重要,因为它直接影响数据库的性能、可维护性和安全性。本篇文章将详细介绍...
Java 和 MySQL 数据类型之间的对比是理解数据库操作和应用程序开发中数据处理的关键。这两种语言的数据类型在功能和使用上都有所不同,尽管它们都用于存储和处理数据,但各自有着特定的适用场景和特点。 首先,Java...
本文将深入探讨在不同数据库系统间进行表结构转换,特别是针对varchar类型的字段长度处理,这在Oracle到Greenplum(GP)、Oracle到MySQL的数据迁移过程中尤为重要。 首先,让我们关注标题提到的“GP数据库表结构转...
MySQL 数据类型详解 MySQL 数据类型是指在 MySQL 中存储数据的格式,包括整型、浮点型、定点型、字符串、日期时间型、枚举型等多种类型。下面将对 MySQL 数据类型进行详细的介绍。 整型 MySQL 中的整型包括 ...
MySQL是世界上最受欢迎的关系型数据库管理系统之一,其字段类型设计得非常灵活,以适应各种数据存储需求。在MySQL中,字段类型决定了数据的存储方式、大小和格式。以下是对MySQL5中常见字段类型的详细说明: 1. **...
MySQL是一种广泛使用的开源关系型数据库管理系统,其数据类型是数据库设计的基础,理解并熟练掌握MySQL的数据类型对于数据库的高效管理至关重要。以下是对MySQL数据类型的详细阐述。 1. 整数类型: - TINYINT:...
### MySQL 数据类型详解 在学习 MySQL 的过程中,了解并掌握其数据类型是非常重要的一步。不同的数据类型用于存储不同类型的信息,并且对于确保数据的准确性和优化数据库性能至关重要。下面将详细介绍几种常用的 ...
MySQL 字段类型说明 MySQL 是一个功能强大且广泛使用的关系型数据库管理系统,它支持大量的列类型,可以被分为数字类型、日期和时间类型以及字符串(字符)类型。本节对 MySQL 字段类型进行了详细的说明,包括每个...
MySQL中的VARCHAR类型是一种可变长度的字符串数据类型,它在存储空间上相比固定长度的CHAR类型更为节省。本文将深入探讨VARCHAR类型的大小长度问题及其在不同版本和编码下的限制。 首先,VARCHAR字段的长度限制主要...
但对于某些特定场景,例如需要主键包含日期信息或具有固定长度和格式时,CHAR类型则显得更为适用。为了实现CHAR类型的自增长,我们可以借助MySQL的触发器机制,在每次插入新记录前动态生成一个新的、唯一的主键值。 ...
MySQL是一个广泛使用的开源关系型数据库管理系统,其支持多种数据类型来满足各种数据存储需求。以下是MySQL中一些主要的基本数据类型的详细说明: 1. **SMALLINT**: 这是一种整数类型,占用2个字节,可以存储从-32,...