PHP数据库MySQL字段类型字段属性详解Word格式文档下载.docx

上传人:b****3 文档编号:16580454 上传时间:2022-11-24 格式:DOCX 页数:22 大小:34.42KB
下载 相关 举报
PHP数据库MySQL字段类型字段属性详解Word格式文档下载.docx_第1页
第1页 / 共22页
PHP数据库MySQL字段类型字段属性详解Word格式文档下载.docx_第2页
第2页 / 共22页
PHP数据库MySQL字段类型字段属性详解Word格式文档下载.docx_第3页
第3页 / 共22页
PHP数据库MySQL字段类型字段属性详解Word格式文档下载.docx_第4页
第4页 / 共22页
PHP数据库MySQL字段类型字段属性详解Word格式文档下载.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

PHP数据库MySQL字段类型字段属性详解Word格式文档下载.docx

《PHP数据库MySQL字段类型字段属性详解Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《PHP数据库MySQL字段类型字段属性详解Word格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。

PHP数据库MySQL字段类型字段属性详解Word格式文档下载.docx

标准大小的整数

-2147483648到2147483647(-231到231-1),或者如果为UNSIGNED,则0到4294967295(0到232-1)

如果列为NULL,则为NULL;

如果列为NOTFULL,则为0

同义词:

INTEGER[(M)]

5.BIGINT[(M)]

大整数

-9223372036854775808到9223372036854775807(-263到263-1),或者如果为UNSIGNED,则0到18446744073709551615(0到264-1)

8字节

6.FLOAT[(M,D)]

小浮点数;

单精度(精度小于DOUBLE)

ZEROFILL

最小非零值为±

1.75494351E-38;

最大非零值为±

3.402823466E+38

MySQL3.23版以前,FLOAT(4)为具有缺省M和D值的FLOAT的同义词。

注释:

在MySQL3.23以后,FLOAT(4)为真浮点类型(值存储为硬件所允许的完整精度,而不四舍五入为缺省的小数位数)

7.DOUBLE[(M,D)]

大浮点数;

双精度(比FLOAT更精确)

2.2250738585072014E-308;

1。

79769313-48623157E+308

DOUBLEPRECISION[(M,D)]和REAL[(M,D)]为DOUBLE[(M,D)]的同义词。

MySQL3.23版以前,FLOAT(8)为具有缺省M和D值的FLOAT的同义词。

在MySQL3.23以后,FLOAT(8)为真浮点类型(值存储为硬件所允许的完整精度,而不四舍五入为缺省的小数位数)。

8.DECIMAL(M,D)

存储为串的浮点数(每位数字、小数点或“-”号都占1字节)。

最大取值范围与DOUBLE相同;

给定DECIMAL类型的有效取值范围由M和D决定。

如果D为零,则列值无小数点或小数部分。

如果列可为NULL,则为NULL,如果列为NOTNULL,则为0

对于MySQL3.23前的版本,为M字节,而MySQL3.23以后的版本,为M+2字节。

NUMERIC(M,D)

在MySQL3.23以后,M的值为符合ANSISQL标准,不包括符号字符或小数点所占的字节数。

MYSQL串类型

MySQL的串类型常用来存储文本,它不但是通用的而且还能存储任何数据。

可用串类型来存储最大长度可变的值,而且可以选择在处理值时是否区分大小写。

1.CHAR(M)

0到M字节长的定长字符串。

在MySQL3.23版以前,M应该为一个1到255之间的整数。

而MySQL3.23版以后,M应该为一个0到255之间的整数。

短于M个字符的串存储进右边补空格。

长于M个字符的串存储时剪断为长度是M的串。

在检索值时,去掉后跟的空格。

BINARY

允许的长度:

0到M字节

如果列为NOTNULL,则为“”

M字节

比较:

不区分大小写(如果具有BINARY属性,则区分大小写)

2.VARCHAR(M)

0到M字节长的可变长字符串。

M应该为1到255之间的一个整数,或者自MySQL3.23后为0到255之间的一个整数。

存储时后跟的空格被去掉。

存储时,大于M个字符的串剪断为M个字符。

值的长度,加上1字节用来记录长度

3.TINYBLOB

小BLOB值

除通用属性外无其他属性

0到255(0到28-1)字节

值的长度加上用于记录长度的1个字节

区分大小写

4.BLOB

常规大小的BLOB值

0到65535(0到216-1)字节

值的长度加上用于记录长度的2个字节

5.MEDIUMBLOB

中等大小的BLOB值

0到16777215(0到224-1)字节

值的长度加上用于记录长度的3个字节

6.LONGBLOB

大BLOB值

0到4294967295(0到232-1)字节

值的长度加上用于记录长度的4个字节

7.TINYTEXT

小TEXT值

0到255(0到28-1)字节

不区分大小写

8.TEXT

常规大小的TEXT值

9.MEDIUMTEXT

中等大小的TEXT值

0到16777215(0到224-1)字节

10.LONGTEXT

大TEXT值

11.ENUM(“value1”,“value2”,...)

枚举,列值可赋予值列表中的某个成员

如果列为NOTNULL,则为第一个枚举值

对1到255个成员的枚举1个字节,对255到65535个成员的枚举2个字节

不区分大小写(MySQL3.22.1版以前区分大小写)

12.SET(“value1”,“value2”,...)

集合,列值可赋予值列表中的零个或多个成员

如果列为NOTNULL,则为“”(空集)

1字节(1到8个成员的集合),2字节(9到16个成员的集合),3字节(17到24个成员的集合),4字节(25到32个成员的集合)或8字节(33到64个成员的集合)

MYSQL日期和时间类型

MySQL提供以各种形式表示时间数据的类型。

这些数据有日期和时间类型。

有一种特殊的时间戳类型,它在记录更改时自动更新。

还有一种用于存储年份的类型,在不需要完全的日期时使用。

1.DATE

“YYYY-MM-DD”格式的日期

“1000-01-01”到“9999-12-31”

零值:

“0000-00-00”

如果列为NOTNULL,则为“0000-00-00”

3字节(MySQL3.22版以前为4字节)

2.TIME

“HH:

MM:

SS”格式的时间(负值为“-HH:

MM:

SS”);

表示占用的时间,但也可以作为日常时间

“-838:

59:

59”到“838:

59”

“00:

00:

00”

如果列为NOTNULL,则为“00:

3字节

虽然在非法值插入TIME列时,“00:

00”用作零值,但它也作为一个合法的值出现在正常的取值范围内

3.DATETIME

以“YYYY-MM-DDhh:

mm:

ss”格式表示的日期和时间(两个部分都需要)

“1000-01-0100:

00:

00”到“9999-12-3123:

59:

59”

“0000-00-0000:

00”

如果列为NOTNULL,则为“0000-00-0000:

4.TIMESTAMP[(M)]

以YYYYMMDDHHMMSS格式表示的时间(日期和时间)

19700101000000到2037年的某个时刻

当前日期和时间。

注意DESCRIBE和SHOWCOLLUMNS报告缺省值为NULL

插入NULL到表的第一个TIMESTAMP列将会插入当前日期和时间。

更改行中其他列的值使第一个TIMESTAMP列被更新为这个修改的日期和时间。

在内部计算中存储和使用的值全都为14位字符精度,与显示宽度无关。

如果指定了NOTNULL属性,则此属性不起作用

5.YEAR

YYYY格式表示的年份

1900到2155

0000

如果列为NOTNULL,则为0000

YEAR是在MySQL3.22版中引入的

MySQL支持大量的列类型,它们可以被分为3类:

数字类型、日期和时间类型以及字符串(字符)类型。

这个章节首先给出可用类型的概述,并且总结各类型所需的存储需求,然后提供各类型中的类型范畴更详细的描述。

概述有意地简化了。

更详细的说明应该参考特写列类型的附加信息,例如你能为其指定值的允许格式。

MySQL支持的列类型在下面列出。

下列代码字母用于描述中:

M指出最大的显示尺寸。

最大的显示尺寸长度为255。

D适用于浮点类型。

指出跟随在十进制小数点后的数字数量。

最大可能值为30,但不应大于M-2。

方括号(“[”and“]”)指定可选的类型修饰部份。

注意,如果为一个列指定了ZEROFILL,MySQL将自动为这个列添加UNSIGNED属性。

警告:

你应该知道当在两个整数类型值中使用减法时,如有一个为UNSIGNED类型,那么结果也是无符号的。

查看章节6.3.5Cast函数。

TINYINT[(M)][UNSIGNED][ZEROFILL]-128到127。

无符号的范围是0到255。

BITBOOL它们是TINYINT

(1)的同义词。

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到184********709551615。

你应该知道的有关BIGINT列的一些事情:

∙BIGINT或DOUBLE值来完成的,因此你不应该使用大于9223372036854775807(63bits)的无符号大整数,除了位函数之外!

如果你这样做了,结果中的某些大数字可能会出错,因为将BIGINT转换成DOUBLE时产生了舍入错误。

MySQL4.0在下列情况下可以处理BIGINT:

o在一个BIGINT列中使用整数存储一个大的无符号值。

o在MIN(big_int_column)和MAX(big_int_column)中。

o当两个操作数都是整数时使用操作符(+、-、*、等)。

∙通常你可以在一个BIGINT列中以字符串方式存储的一个精确的整数。

在这种情况下,MySQL将执行一个字符串到数字的转换,包括无intermediate的双精度表示法。

∙当两个参数均是整数值时,“-”、“+”和“*”将使用BIGINT运算!

这就意味着,如果两个大整数的乘积(或函数的结果返回整数)的结果大于9223372036854775807时,你可能会得到意想不到的结果。

FLOAT(precision)[UNSIGNED][ZEROFILL]一个浮点型数字。

precision可以是<

=24作为一个单精度的浮点数字和介于25和53之间作为一个双精度的浮点数字。

这些类型与下面描述的FLOAT和DOUBLE类型相似。

FLOAT(X)有与相应的FLOAT和DOUBLE类型同样的范围,但是显示尺寸和十进制小数位数是未定义的。

在MySQL3.23中,它是一个真实的浮点值。

而在MySQL早期的版本中,FLOAT(precision)通常有2小数位。

注意,由于在MySQL中所有的计算都是以双精度执行的,所以使用FLOAT可能带来一些意想不到的问题。

查看章节A.5.6解决没有匹配行的问题。

FLOAT[(M,D)][UNSIGNED][ZEROFILL]一个小的(单精度)浮点数字。

允许的值是-3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38。

如果UNSIGNED被指定,负值是不允许的。

M是显示宽度,D是小数位数。

FLOAT没有参数或有X<

=24的FLOAT(X)代表一个单精度的浮点数字。

DOUBLE[(M,D)][UNSIGNED][ZEROFILL]一个正常大小的(双精度)浮上数字。

允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到1.7976931348623157E+308。

DOUBLE没胡参数或有25<

=X<

=53的FLOAT(X)代表一个双精度的浮点数字。

DOUBLEPRECISION[(M,D)][UNSIGNED][ZEROFILL]

REAL[(M,D)][UNSIGNED][ZEROFILL]它们是DOUBLE同义词。

DECIMAL[(M[,D])][UNSIGNED][ZEROFILL]一个未压缩(unpacked)的浮点数。

运作如同一个CHAR列:

“unpacked”意味着数字是以一个字符串存储的,值的每一位将使用一个字符。

小数点并且对于负数,“-”符号不在M中计算(但是它们的空间是被保留的)。

如果D是0,值将没有小数点或小数部份。

DECIMAL值的最大范围与DOUBLE一致,但是对于一个给定的DECIMAL列,实际的范围可以被所选择的M和D限制。

如果D被忽略,缺省为0。

如果M被忽略,缺省为10。

在MySQL3.23以前,M参数必须包含符号与小数点所需的空间。

DEC[(M[,D])][UNSIGNED][ZEROFILL]

NUMERIC[(M[,D])][UNSIGNED][ZEROFILL]DECIMAL的同义词。

DATE一个日期。

支持的范围是'

1000-01-01'

到'

9999-12-31'

MySQL以'

YYYY-MM-DD'

格式显示DATE值,但是允许你以字符串或数字给一个DATE列赋值。

查看章节6.2.2.2DATETIME、DATE和TIMESTAMP类型。

DATETIME一个日期和时间的组合。

1000-01-0100:

00'

9999-12-3123:

59'

YYYY-MM-DDHH:

SS'

格式显示DATETIME值,但是允许你以字符串或数字给一个DATETIME列赋值。

TIMESTAMP[(M)]一个时间戳。

范围是'

1970-01-0100:

到2037年间的任意时刻。

MySQL4.0和更早版本中,TIMESTAMP值是以YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD或YYMMDD格式显示的,它取决于M是否是14(或省略)、12、8或6,但是允许你以字符串或数字给一个TIMESTAMP列赋值。

从MySQL4.1开始,TIMESTAMP以'

DD'

格式作为字符返回。

如果你你希望以数字形式返回则必须在该时间戳字段后加上+0。

不同的时间戳长度是不支持的。

从MySQL4.0.12开始,选项--new可以被用来使服务器与4.1一样运作。

TIMESTAMP列有益于记录一个INSERT或UPDATE操作的日期和时间,因为如果你自己没有给它赋值,它将被自动地设置为最近一次操作的日期和时间。

也可以通过给它赋一个NULL而使它设置为当前的日期和时间。

查看章节6.2.2Date和Time类型。

参数M只影响一个TIMESTAMP列的显示格式;

它的值总是占用4个字节存储。

注意,当TIMESTAMP(M)列的M是8或14时,它返回的是数字而其它的TIMESTAMP(M)列返回的是字符串。

这仅仅是为了可以可靠地转储并恢复到其它格式的表中。

TIME一个时间。

-838:

838:

HH:

格式显示TIME值,但是允许你使用字符串或数字来给TIME列赋值。

查看章节6.2.2.3TIME类型。

YEAR[(2|4)]一个2或4位数字格式的年(缺省为4位)。

允许的值是1901到2155、0000(4位年格式)以及使用2位格式的1970-2069(70-69)。

MySQL以YYYY格式显示YEAR值,但是允许你使用字符串或数字

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1