基础知识:MySQL数据类型及列类型 (2)
2008-01-02 13:31
721 查看
下表给出了MySQL 定义串值列的类型,以及每种类型的最大尺寸和存储需求。对于可变长的列类型,各行的值所占的存储量是不同的,这撒于实际存放在列中的值的长度。这个长度在表中用L 表示。
类型说明
最大尺寸
存储需求
CHAR( M)
M 字节
M 字节
VARCHAR(M)
M 字节
L + 1字节
TINYBLOB, TINYTEXT
28- 1字节
L + 1字节
BLOB, TEXT
216 - 1 字节
L + 2字节
MEDIUMBLOB, MEDIUMTEXT
224- 1字节
L + 3字节
LONGBLOB, LONGTEXT
232- 1字节
L + 4字节
ENUM(“value1”, “value2”, ...)
65535 个成员
1 或2字节
SET (“value1”, “value2”, ...)
64个成员
1、2、3、4 或8字节
表5:串列类型最大尺寸及存储需求
L 以外所需的额外字节为存放该值的长度所需的字节数。MySQL 通过存储值的内容及其长度来处理可变长度的值。这些额外的字节是无符号整数。请注意,可变长类型的最大长度、此类型所需的额外字节数以及占用相同字节数的无符号整数之间的对应关系。例如,MEDIUMBLOB 值可能最多224 - 1字节长并需要3 个字节记录其结果。3 个字节的整数类型MEDIUMINT 的最大无符号值为224 - 1。这并非偶然。
2.3日期时间列类型
MySQL 提供了几种时间值的列类型,它们分别是: DATE、DATETIME、TIME、TIMESTAMP和YEAR。下表给出了MySQL 为定义存储日期和时间值所提供的这些类型,并给出了每种类型的合法取值范围。
类型名
说明
DATE
“YYYY-MM-DD”格式表示的日期值
TIME
“hh:mm:ss”格式表示的时间值
DATETIME
“YYYY-MM-DD hh:mm:ss”格式
TIMESTAMP
“YYYYMMDDhhmmss”格式表示的时间戳值
YEAR
“YYYY”格式的年份值
表6:日期时间列类型
类型名
取值范围
存储需求
DATE
“1000-01-01”到“9999-12-31”
3字节
TIME
“-838:59:59”到“838:59:59”
3字节
DATETIME
“1000-01-01 00:00:00” 到“9999-12-31 23:59:59”
8字节
TIMESTAMP
19700101000000 到2037 年的某个时刻
a29c
4字节
YEAR
1901 到2155
1字节
表7: 日前时间列类型的取值范围和存储需求
下面举个例子:
这个例子创建一个student表,这个表中有name字段,字符类型列,不允许NULL(空值)。有Chinese、Maths和English三个整数类型列。还有个Birthday日期类型列。
类型说明
最大尺寸
存储需求
CHAR( M)
M 字节
M 字节
VARCHAR(M)
M 字节
L + 1字节
TINYBLOB, TINYTEXT
28- 1字节
L + 1字节
BLOB, TEXT
216 - 1 字节
L + 2字节
MEDIUMBLOB, MEDIUMTEXT
224- 1字节
L + 3字节
LONGBLOB, LONGTEXT
232- 1字节
L + 4字节
ENUM(“value1”, “value2”, ...)
65535 个成员
1 或2字节
SET (“value1”, “value2”, ...)
64个成员
1、2、3、4 或8字节
表5:串列类型最大尺寸及存储需求
L 以外所需的额外字节为存放该值的长度所需的字节数。MySQL 通过存储值的内容及其长度来处理可变长度的值。这些额外的字节是无符号整数。请注意,可变长类型的最大长度、此类型所需的额外字节数以及占用相同字节数的无符号整数之间的对应关系。例如,MEDIUMBLOB 值可能最多224 - 1字节长并需要3 个字节记录其结果。3 个字节的整数类型MEDIUMINT 的最大无符号值为224 - 1。这并非偶然。
2.3日期时间列类型
MySQL 提供了几种时间值的列类型,它们分别是: DATE、DATETIME、TIME、TIMESTAMP和YEAR。下表给出了MySQL 为定义存储日期和时间值所提供的这些类型,并给出了每种类型的合法取值范围。
类型名
说明
DATE
“YYYY-MM-DD”格式表示的日期值
TIME
“hh:mm:ss”格式表示的时间值
DATETIME
“YYYY-MM-DD hh:mm:ss”格式
TIMESTAMP
“YYYYMMDDhhmmss”格式表示的时间戳值
YEAR
“YYYY”格式的年份值
表6:日期时间列类型
类型名
取值范围
存储需求
DATE
“1000-01-01”到“9999-12-31”
3字节
TIME
“-838:59:59”到“838:59:59”
3字节
DATETIME
“1000-01-01 00:00:00” 到“9999-12-31 23:59:59”
8字节
TIMESTAMP
19700101000000 到2037 年的某个时刻
a29c
4字节
YEAR
1901 到2155
1字节
表7: 日前时间列类型的取值范围和存储需求
下面举个例子:
这个例子创建一个student表,这个表中有name字段,字符类型列,不允许NULL(空值)。有Chinese、Maths和English三个整数类型列。还有个Birthday日期类型列。
CREATE TABLE student ( Name varchar(20) NOT NULL, Chinese TINYINT(3), Maths TINYINT(3), English TINYINT(3), Birthday DATE ) |
相关文章推荐
- Mysql学习总结(4)——MySql基础知识、存储引擎与常用数据类型
- MySql基础知识、存储引擎与常用数据类型
- Mysql学习总结(4)——MySql基础知识、存储引擎与常用数据类型
- MySql基础知识、存储引擎与常用数据类型
- Mysql学习总结(4)——MySql基础知识、存储引擎与常用数据类型
- 基础知识:MySQL数据类型及列类型
- Mysql学习总结(4)——MySql基础知识、存储引擎与常用数据类型
- Mysql基础知识:数据类型
- MySQL+PHP,从最基础的知识开始(mysql数据类型)
- 基础知识:MySQL数据类型及列类型 (1)
- 基础知识:MySQL数据类型及列类型
- 基础知识:MySQL数据类型及列类型 (1)
- 【Java基础知识】数据类型与运算符
- mysql基础总结 数据类型
- Java基础入门-关键字、数据类型相关知识
- H5基础知识第八课时(JS数据类型和输出方法)
- Java基础语法知识之数据类型
- javascipt——基础知识——基本数据类型和逻辑运算
- 基础知识整理-数据类型和控制语句
- 一段小学信息技术基础知识的C++源程序: 函数,输入输出,数据类型,循环