首页 > 数据库 > MySQL > 正文

MYSQL列类型参考

2024-07-24 12:55:22
字体:
来源:转载
供稿:网友

商业源码热门下载www.html.org.cn

   本附录介绍mysql提供的每种列类型。关于利用每种类型的详细说明请参阅第2 章。除非另有说明,否则所列出的类型早在mysql3.21.0 中就已经有了。
    按下列约定给出类型名说明:
    方括号( [ ]) 可选信息。
    m 最大显示宽度。除非另有说明,否则m 应该是一个1到255 之间的整数。
    d 有小数部分的类型的小数位数。d 为一个0 到30 之间的整数。d 应该小于等于m - 2。否则,m 的值将调整为d + 2。
    在odbc 术语中,m 和d 称为“精度”和“小数位数”。
    为了描述每种类型,提供下列一个或多个信息:
    说明 该类型的简短说明。
    允许的属性 在create table 或alter table 语句中与该类型相关的可选属性关键字。属性按字母顺序列出,但这个顺序并不一定与create table 或alte r table 中使用的顺序相对应。关于这些语句的语法请参阅附录d。每种列类型在说明中列出的属性为通用属性之外的属性。
    允许的长度 串类型的列值所允许的最大长度。
    取值范围 对于数值或日期与时间类型,该类型可表示的值的范围。对于整数数值类型,给出两个取值范围,因为整数列可以是有符号或无符号的,有符号或无符号的取值范围是不同的。
    零值 对于日期和时间类型,如果将非法值插入该列,则存入一个“零”值。
    缺省值 类型说明中不明确给出d e fa u lt 属性时的缺省值。
    存储需求 存储该类型的值所需的字节数。对于有的类型,这个值是固字的。而这个值在有些类型中根据存放在列中的值的不同是可变的。
    比较 对于串类型,比较是否是区分大小写的。这对排序和索引有效,因为这些操作根据比较进行的。
    同义词 该类型名的同义词。
    注释 关于该类型的一些杂项说明。
    通用属性 有的属性对所有类型或对于几乎所有类型都适用。它们列在这里,而不是列在每种类型的说明中。可对任何类型指定null 或not null 属性。还可对所有类型指定d e fa u lt default_value。

mysql数值类型

    mysql提供了整数和浮点数的数值类型。可根据所要表示的值的范围选择相应的类型。
    对于整数类型,如果指定了auto_increment 属性,则列必须为primary key 或unique 索引。将null 插入auto_increment 列将会插入一个大于该列中当前最大值的值。如果指定了unsigned 属性,则相应的整数类型不允许取负值。
    如果指定了zerofill 属性,则用前导零填充数值类型值以达到列的显示宽度。
    1. tinyint[(m)]
    说明:非常小的整数
    允许的属性:auto _ i n c r e m e n t, unsigned, zerofill
    取值范围:-128 到127(-27 到27-1),或者如果为u n s i g n e d,则0 到2 5 5(0 到2 8-1)
    缺省值:如果列可为null;则为null;如果列为not null,则为0
    存储需求:1字节
    2. smallint[(m)]
    说明:小整数
    允许的属性:auto _ i n c r e m e n t, unsigned, zerofill
    取值范围:-32768 到3 27 6 7(-215 到215-1),或者如果为u n s i g n e d,则0 到6 5 5 3 5 (0 到216-1)
    缺省值:如果列可为null;则为null;如果列为not null,则为0
    存储需求:2 字节
    3. mediumint[(m)]
    说明:中等大小的整数
    允许的属性:auto _ i n c r e m e n t, unsigned, zerofill
    取值范围:-8388608 到8 3 8 8 6 07(-22 3 到22 3-1),或者如果为u n s i g n e d,则0 到16 7 7 2 15(0 到22 4-1)
    缺省值:如果列可为null,则为null;如果列为not null,则为0
    存储需求:4 字节
    4. int[(m)]
    说明:标准大小的整数
    允许的属性:auto _ i n c r e m e n t, unsigned, zerofill
    取值范围:-2147483648 到2 14 7 4 8 3 6 4 7(-231到2 3 1-1),或者如果为u n s i g n e d,则0 到4 2 9 4 9 6 7 2 9 5(0 到2 3 2-1)
    缺省值:如果列为null,则为null;如果列为not full,则为0
    存储需求:4 字节
    同义词:i n t e g e r [(m)]
    5. bigint[(m)]
    说明:大整数
    允许的属性:auto _ i n c r e m e n t, unsigned, zerofill
    取值范围:-9223372036854775808 到9 2 2 3 3 7 2 0 3 6 8 5 4 7 7 5 8 07(-263 到2 6 3-1),或者如果为u n s i g n e d,则0 到18 4 4 6 7 4 4 07 3 7 0 9 5 5 16 15(0 到26 4 -1)
    缺省值:如果列可为null,则为null;如果列为not null,则为0
    存储需求:8 字节
    6. float [(m, d)]
    说明:小浮点数;单精度(精度小于d o u b l e)
    允许的属性:z e r o f i l l
    取值范围:最小非零值为±1.75494351e -38; 最大非零值为±3 . 4 0 2 8 2 3 4 6 6 e + 3 8
    缺省值:如果列可为null,则为null;如果列为not null,则为0
    存储需求:4 字节
    同义词:mysql3.23 版以前,float(4) 为具有缺省m 和d 值的float的同义词。
    注释:在mysql3.23 以后,float(4) 为真浮点类型(值存储为硬件所允许的完整精度,而不四舍五入为缺省的小数位数)
    7. double[(m, d)]
    说明:大浮点数;双精度(比float更精确)
    允许的属性:z e r o f i l l
    取值范围:最小非零值为±2 . 2 2 5 07 3 8 5 8 5 07 2 0 14 e -308; 最大非零值为±1。7 9 7 6 9 3 13 - 4 8 6 2 3 15 7 e + 3 0 8
    缺省值:如果列可为null,则为null;如果列为not null,则为0
    存储需求:8 字节
    同义词:double precision[(m, d)] 和r e a l [ (m, d)] 为d o u b l e [(m, d)] 的同义词。mysql3.23 版以前,float(8) 为具有缺省m 和d 值的float的同义词。
    注释:在mysql3.23 以后,float(8) 为真浮点类型(值存储为硬件所允许的完整精度,而不四舍五入为缺省的小数位数)。
    8. decimal(m, d)
    说明:存储为串的浮点数(每位数字、小数点或“-”号都占1字节)。
    允许的属性:z e r o f i l l
    取值范围:最大取值范围与double 相同;给定decimal 类型的有效取值范围由m和d 决定。如果d 为零,则列值无小数点或小数部分。
    缺省值:如果列可为null,则为null,如果列为not null,则为0
    存储需求:对于mysql3.23 前的版本,为m 字节,而mysql3.23 以后的版本,为m + 2 字节。
    同义词:n u m e r i c (m, d)
    注释:在mysql3.23 以后,m 的值为符合ansi sql 标准,不包括符号字符或小数点所占的字节数。

mysql串类型

    mysql的串类型常用来存储文本,它不但是通用的而且还能存储任何数据。可用串类型来存储最大长度可变的值,而且可以选择在处理值时是否区分大小写。
    1. char(m)
    说明:0 到m 字节长的定长字符串。在mysql3.23 版以前,m 应该为一个1到255 之间的整数。而mysql3.23 版以后,m 应该为一个0 到255 之间的整数。短于m 个字符的串存储进右边补空格。长于m 个字符的串存储时剪断为长度是m 的串。在检索值时,去掉后跟的空格。
    允许的属性:b i n a ry
    允许的长度:0 到m 字节
    缺省值:如果列可为null,则为null;如果列为not null,则为“”
    存储需求:m 字节
    比较:不区分大小写(如果具有b i n a ry 属性,则区分大小写)
    2. varchar(m)
    说明:0 到m 字节长的可变长字符串。m 应该为1到255 之间的一个整数,或者自mysql3.23 后为0 到255 之间的一个整数。存储时后跟的空格被去掉。存储时,大于m 个字符的串剪断为m 个字符。
    允许的属性:b i n a ry
    允许的长度:0 到m 字节
    缺省值:如果列可为null,则为null;如果列为not null,则为“”
    存储需求:值的长度,加上1字节用来记录长度
    比较:不区分大小写(如果具有b i n a ry 属性,则区分大小写)
    3. tinyblob
    说明:小blob 值
    允许的属性:除通用属性外无其他属性
    允许的长度:0 到2 5 5(0 到28-1)字节
    缺省值:如果列可为null,则为null;如果列为not null,则为“”
    存储需求:值的长度加上用于记录长度的1个字节
    比较:区分大小写
    4. blob
    说明:常规大小的blob 值
    允许的属性:除通用属性外无其他属性
    允许的长度:0 到6 5 5 3 5(0 到216-1)字节
    缺省值:如果列可为null,则为null;如果列为not null,则为“”
    存储需求:值的长度加上用于记录长度的2 个字节
    比较:区分大小写
    5. mediumblob
    说明:中等大小的blob 值
    允许的属性:除通用属性外无其他属性
    允许的长度:0 到16 7 7 7 2 15(0 到224 -1)字节
    缺省值:如果列可为null,则为null;如果列为not null,则为“”
    存储需求:值的长度加上用于记录长度的3 个字节
    比较:区分大小写
    6. longblob
    说明:大blob 值
    允许的属性:除通用属性外无其他属性
    允许的长度:0 到4 2 9 4 9 6 7 2 9 5(0 到23 2-1)字节
    缺省值:如果列可为null,则为null;如果列为not null,则为“”
    存储需求:值的长度加上用于记录长度的4 个字节
    比较:区分大小写
    7. tinytext
    说明:小text 值
    允许的属性:除通用属性外无其他属性
    允许的长度:0 到2 5 5(0 到2 8 -1)字节
    缺省值:如果列可为null,则为null;如果列为not null,则为“”
    存储需求:值的长度加上用于记录长度的2 个字节
    比较:不区分大小写
    8. text
    说明:常规大小的text 值
    允许的属性:除通用属性外无其他属性
    允许的长度:0 到6 5 5 3 5(0 到216-1)字节
    缺省值:如果列可为null,则为null;如果列为not null,则为“”
    存储需求:值的长度加上用于记录长度的2 个字节
    比较:不区分大小写
    9. mediumtext
    说明:中等大小的text 值
    允许的属性:除通用属性外无其他属性
    允许的长度:0 到16 7 7 7 2 15(0 到22 4-1)字节
    缺省值:如果列可为null,则为null;如果列为not null,则为“”
    存储需求:值的长度加上用于记录长度的3 个字节
    比较:不区分大小写
    10. longtext
    说明:大text 值
    允许的属性:除通用属性外无其他属性
    允许的长度:0 到4 2 9 4 9 6 7 2 9 5(0 到23 2-1)字节
    缺省值:如果列可为null,则为null;如果列为not null,则为“”
    存储需求:值的长度加上用于记录长度的4 个字节
    比较:不区分大小写
    11. enum(“v a l ue 1”, “v a l ue 2”, ...)
    说明:枚举,列值可赋予值列表中的某个成员
    允许的属性:除通用属性外无其他属性
    缺省值:如果列可为null,则为null;如果列为not null,则为第一个枚举值
    存储需求:对1到255 个成员的枚举1个字节,对255 到65535 个成员的枚举2 个字节
    比较:不区分大小写(mysql3.22.1版以前区分大小写)
    12. set(“v a l ue 1”,“v a l ue 2”, ...)
    说明:集合,列值可赋予值列表中的零个或多个成员
    允许的属性:除通用属性外无其他属性
    缺省值:如果列可为null,则为null;如果列为not null,则为“”(空集)
    存储需求:1字节(1到8个成员的集合),2字节(9 到16个成员的集合),3字节(17到2 4个成员的集合),4 字节(2 5到3 2个成员的集合)或8字节(3 3到6 4个成员的集合)
    比较:不区分大小写(mysql3.22.1版以前区分大小写)

mysql日期和时间类型

    mysql提供以各种形式表示时间数据的类型。这些数据有日期和时间类型。有一种特殊的时间戳类型,它在记录更改时自动更新。还有一种用于存储年份的类型,在不需要完全的日期时使用。
    1. dat e
    说明:“y y y y- m m - d d”格式的日期
    允许的属性:除通用属性外无其他属性
    取值范围:“10 0 0 - 0 1- 0 1”到“9 9 9 9 - 12 - 3 1”
    零值:“0 0 0 0 - 0 0 - 0 0”
    缺省值:如果列可为null,则为null;如果列为not null,则为“0 0 0 0 - 0 0 - 0 0”
    存储需求:3 字节(mysql3.22 版以前为4 字节)
    2. time
    说明:“h h : m m : s s”格式的时间(负值为“ - hh:mm:ss”);表示占用的时间,但也可以作为日常时间
    允许的属性:除通用属性外无其他属性
    取值范围:“- 8 3 8 : 5 9 : 5 9”到“8 3 8 : 5 9 : 5 9”
    零值:“0 0 : 0 0 : 0 0”
    缺省值:如果列可为null,则为null;如果列为not null,则为“0 0 : 0 0 : 0 0”
    存储需求:3 字节
    注释:虽然在非法值插入time 列时,“0 0 : 0 0 : 0 0”用作零值,但它也作为一个合法的值出现在正常的取值范围内
    3. dat e t i m e
    说明:以“y y y y-mm-dd hh:mm:ss”格式表示的日期和时间(两个部分都需要)
    允许的属性:除通用属性外无其他属性
    取值范围:“1000-01-0100:00:00”到“9999-12-3123:59:59”
    零值:“0000-00-00 00:00:00”
    缺省值:如果列可为null,则为null;如果列为not null,则为“ 0 0 0 0 - 0 0 - 0 0 0 0 : 0 0 : 0 0”
    存储需求:8 字节
    4. timesta m p [ (m) ]
    说明:以yyyymmddhhmmss 格式表示的时间(日期和时间)
    允许的属性:除通用属性外无其他属性
    取值范围:19700101000000 到2037 年的某个时刻
    缺省值:当前日期和时间。注意describe 和show collumns 报告缺省值为null
    存储需求:4 字节
    注释:插入null 到表的第一个t i m e s tamp 列将会插入当前日期和时间。更改行中其他列的值使第一个t i m e s tamp 列被更新为这个修改的日期和时间。在内部计算中存储和使用的值全都为14 位字符精度,与显示宽度无关。如果指定了not null属性,则此属性不起作用
    5. year
    说明:yyyy 格式表示的年份
    允许的属性:除通用属性外无其他属性
    取值范围:1900 到2 15 5
    零值:0 0 0 0
    缺省值:如果列可为null,则为null;如果列为not null,则为0 0 0 0
    存储需求:1字节
    注释:year 是在mysql3.22 版中引入的
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表