Mysql入门系列:MYSQL列类型参考

2016-02-19 15:09 8 1 收藏

下面是个Mysql入门系列:MYSQL列类型参考教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!

【 tulaoshi.com - 编程语言 】

  本附录介绍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 字节

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  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 字节

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  同义词: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 字节

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  同义词: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)字节

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  缺省值:如果列可为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 值

来源:http://www.tulaoshi.com/n/20160219/1609029.html

延伸阅读
3.7 加注释 MySQL允许在SQL 代码中使用注释。这对于说明存放在文件中的查询很有用处。可用两个方式编写注释。以 #号开头直到行尾的所有内容都认为是注释。另一种为C 风格的注释。即,以/ *开始,以* /结束的所有内容都认为是注释。C 风格的注释可跨多行,如: 自MySQL3.23 版以来,可在C 风格的注释中隐藏 MySQL特有的关...
6.8 其他主题 本节包括几个主题,这些主题不完全适合于本章从client1到client5 的开发中的任一小节的内容: ■ 在使用结果集元数据帮助验证这些数据适合于计算之后,使用结果集数据计算结果。 ■ 如何处理很难插入到查询中的数据。 ■ 如何处理图形数据。 ■ 如何获得表结构的信息。 ■ 常见的MySQL程序设计...
3.2 MySQL的命名规则 几乎每条SQL 语句都在某种程度上涉及一个数据库或其组成成分。本节介绍引用数据库、表、列、索引和别名的语法规则。名称是区分大小写的,这里也对其进行了介绍。 3.2.1引用数据库的成分 在用名称引用数据库的成分时,受到可使用的字符以及名称可具有的长度的限制。名称的形式还依赖于使用它们的上下文...
5.1MySQL可用的API 为了方便应用程序的开发,MySQL提供了用C 编程语言编写的客户机库,它允许从任何C 程序的内部访问MySQL数据库。客户机库实现应用程序编程接口( A P I),API 定义客户机程序如何建立和执行与服务器的通信。 然而,使用C 来编写MySQL程序并不受限制。许多其他语言处理器本身也是由C 编写的,或具有使用C库的...
可得到几种版本的MySQL分发包。当前稳定的发行版有3.22 版本系列。当前正在开发的版本为3.23 系列。一般,应该使用系列中最高编号的版本。 MySQL分发包可以以二进制代码、RPM 和源代码的格式得到。二进制代码和RPM 分发包容易安装,但必须接受建立在分发包内的安装设计和缺省配置。源代码分发包安装很困难,因为必须对软件进行编译,...

经验教程

342

收藏

92
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部