大二mysql怎么考 mysql二级考试题库( 三 )


LOGNGBLOB 0-4 294 967 295字节 二进制形式的极大文本数据
LONGTEXT 0-4 294 967 295字节 极大文本数据
CHAR 和 VARCHAR 类型
CHAR 类型用于定长字符串,并且必须在圆括号内用一个大小修饰符来定义 。这个大小修饰符的范围从 0-255 。比指定长度大的值将被截短,而比指定长度小的值将会用空格作填补 。
CHAR 类型可以使用 BINARY 修饰符 。当用于比较运算时,这个修饰符使 CHAR 以二进制方式参于运算,而不是以传统的区分大小写的方式 。
CHAR 类型的一个变体是 VARCHAR 类型 。它是一种可变长度的字符串类型,并且也必须带有一个范围在 0-255 之间的指示器 。CHAR 和 VARCHGAR 不同之处在于 MuSQL 数据库处理这个指示器的方式:CHAR 把这个大小视为值的大小 , 不长度不足的情况下就用空格补足 。而 VARCHAR 类型把它视为最大值并且只使用存储字符串实际需要的长度(增加一个额外字节来存储字符串本身的长度)来存储值 。所以短于指示器长度的 VARCHAR 类型不会被空格填补,但长于指示器的值仍然会被截短 。
因为 VARCHAR 类型可以根据实际内容动态改变存储值的长度 , 所以在不能确定字段需要多少字符时使用 VARCHAR 类型可以大大地节约磁盘空间、提高存储效率 。
VARCHAR 类型在使用 BINARY 修饰符时与 CHAR 类型完全相同 。
TEXT 和 BLOB 类型
对于字段长度要求超过 255 个的情况下,MySQL 提供了 TEXT 和 BLOB 两种类型 。根据存储数据的大小 , 它们都有不同的子类型 。这些大型的数据用于存储文本块或图像、声音文件等二进制数据类型 。
TEXT 和 BLOB 类型在分类和比较上存在区别 。BLOB 类型区分大小写 , 而 TEXT 不区分大小写 。大小修饰符不用于各种 BLOB 和 TEXT 子类型 。比指定类型支持的最大范围大的值将被自动截短 。
日期和时间类型
在处理日期和时间类型的值时,MySQL 带有 5 个不同的数据类型可供选择 。它们可以被分成简单的日期、时间类型,和混合日期、时间类型 。根据要求的精度,子类型在每个分类型中都可以使用,并且 MySQL 带有内置功能可以把多样化的输入格式变为一个标准格式 。
类型 大小
(字节) 范围 格式 用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 ’-838:59:59’/’838:59:59’ HH:MM:SS 时间值或持续时间
YEAR 1 1901/2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP 8 1970-01-01 00:00:00/2037 年某时 YYYYMMDD HHMMSS 混合日期和时间值,时间戳
DATE、TIME 和 TEAR 类型
MySQL 用 DATE 和 TEAR 类型存储简单的日期值 , 使用 TIME 类型存储时间值 。这些类型可以描述为字符串或不带分隔符的整数序列 。如果描述为字符串,DATE 类型的值应该使用连字号作为分隔符分开,而 TIME 类型的值应该使用冒号作为分隔符分开 。
需要注意的是 , 没有冒号分隔符的 TIME 类型值,将会被 MySQL 理解为持续的时间,而不是时间戳 。
MySQL 还对日期的年份中的两个数字的值,或是 SQL 语句中为 TEAR 类型输入的两个数字进行最大限度的通译 。因为所有 TEAR 类型的值必须用 4 个数字存储 。MySQL 试图将 2 个数字的年份转换为 4 个数字的值 。把在 00-69 范围内的值转换到 2000-2069 范围内 。把 70-99 范围内的值转换到 1970-1979 之内 。如果 MySQL 自动转换后的值并不符合我们的需要,请输入 4 个数字表示的年份 。
DATEYIME 和 TIMESTAMP 类型
除了日期和时间数据类型,MySQL 还支持 DATEYIME 和 TIMESTAMP 这两种混合类型 。它们可以把日期和时间作为单个的值进行存储 。这两种类型通常用于自动存储包含当前日期和时间的时间戳,并可在需要执行大量数据库事务和需 要建立一个调试和审查用途的审计跟踪的应用程序中发挥良好作用 。

推荐阅读