首页 | 注册 | 登陆
首页 >> 技术专栏 >> 数据库 >> mysql基础 

MySQL数据库技术(07)


作者Mysql教程 来源Mysql教程 加入时间:2006年04月30日
摘要:
MySQL数据库技术(07)

  根据定义,
转载:转载请保留本信息,本文来自
http://www.51dibs.com
/html/2006/article/info22/a_035f146cec6919e9.htm





MySQL数据库技术(07)


站点:爱心种子小博士 关键字:MySQL数据库技术(07)




MySQL数据库技术(07)

  根据定义,数据库管理系统的目的就是管理数据。即使一条简单的SELECT 1 语句也涉及表达式求值以产生一个整型数据值。MySQL 中的每个数据值都有类型。例如, 37.4 是一个数,而 a b c是一个串。有时,数据的类型是明显的,因为在使用C R E ATE TABLE 语句时指定了作为表的组成部分定义的每个列的类型,如:

    而有时,数据类型是不明确的,如在一个表达式中引用直接值时,将值传送给一个函数,或使用从该函数返回的值,如:

   I N S E RT 语句完成下列操作,这些操作全都涉及数据类型:
   ■ 将整数值14 赋给整数列i n t _ c o l。
   ■ 将串值 a和b传递给函数C O N C AT( )。C O N C AT( ) 返回串值a b,这个串值被赋予串列s t r _ c o l。
   ■ 将整数值1 9 9 9 0 115 赋给日期列d a t e _ c o l。而这是不匹配的,因此, MySQL 将自动进行数据类型转换。要有效地利用M y S Q L,必须理解其怎样处理数据。本章描述了MySQL 能够处理的数据类型,并讨论了在处理这些数据类型时所出现的问题,主要内容如下:
   ■ 通用数据类型,包括NULL 值。
   ■ 特殊数据类型,以及描述每种列类型的属性。有些列类型是相当常见的,如CHAR 串类型。而有的如A U TO_INCREMENT 整型和T I M E S TAMP 日期类型,其性能很特殊,应该加以理解以免出错。
   ■ 恰当地选择表的列类型。在创建表时,重要的是要了解怎样为自己的目的选择最好的类型,以及在几种类型都可以用于想要存储的值时选择一种类型。
   ■ 表达式求值规则。MySQL 提供了许多可用于表达式的运算符和函数,以便对数据进行检索、显示和处理。表达式求值的规则包括类型转换规则,在一种类型的值用于另一类型的值的情况时需用到类型转换规则。理解何时进行类型转换以及怎样进行转换很重要;有的转换没有意义而且会产生错误值。将串1 3赋给整数列结果为值1 3,但是将串a b c 赋给该列得到0 值,因为a b c不是一个数。更坏的是,如果进行比较而不了解值的转换,可能会带来很大的危险,如在打算只对几行进行操作时,可能会更新或删除了表中的所有行。附录B和附录C提供了MySQL 列类型、运算和函数的更多信息。
   2.1 MySQL 数据类型
   MySQL 有几种数据类型,下面分别进行介绍。
   1. 数值值
   数值是诸如48 或193.62 这样的值。MySQL 支持说明为整数(无小数部分)或浮点数(有小数部分)的值。整数可按十进制形式或十六进制形式表示。整数由数字序列组成。以十六进制形式表示的整数由 0 x后跟一个或多个十六进制数字( 0到9及a到f)组成。例如, 0x0a 为十进制的1 0,而0 x ffff 为十进制的6 5 5 3 5。十六进制数字不区分大小写,但其前缀 0 x不能为 0 X。即0x0a 和0x0A 都是合法的,但0X0a 和0X0A 不是合法的。浮点数由一个阿拉伯数字序列、一个小数点和另一个阿拉伯数字序列组成。两个阿拉伯数字序列可以分别为空,但不能同时为空。MySQL 支持科学表示法。科学表示法由整数或浮点数后跟 e或E、一个符号(+或-)和一个整数指数来表示。1.34E+12 和43.27e-1 都是合法的科学表示法表示的数。而1.34E12 不是合法的,因为指数前的符号未给出。指数前的 e也是一个合法的十六进制数字,因此有可能会弄错。数值前可放一个负号 -以表示负值。
  2. (字符)串值 串是诸如Madison, Wi s c o n s i n或patient shows improvement这样的值。既可用单引号也可用双引号将串值括起来。串中可使用几个转义序列,它们用来表示特殊的字符,见表2 - 1。每个序列以一个反斜杠(\)开始,指出临时不同于通常的字符解释。注意NUL 字节与NULL 值不同;NUL 为一个零值字节,而NULL 为没有值。

    要在串中包括一个引号,可有如下三种选择:
    ■ 如果串是用相同的引号括起来的,那么在串中需要引号的地方双写引号即可。如:

    ■ 如果串是用另外的引号括起来的,则不需要双写相应引号。如:

    ■ 用反斜杠方式表示;这种方法不去管用来将串括起的是单引号还是双引号。如:

    在串的环境中,可用十六进制常数来指定串值。其语法与前面描述的数值值相同,但是每对十六进制的数字都被看作ASCII 代码并转换为字符,其结果用于串。例如, 0 x 6 1 6 2 6 3作为串时为 a b c。
    3. 日期和时间值
    日期和时间是一些诸如 1 9 9 9 - 0 6 - 1 7或1 2 : 3 0 : 4 3这样的值。MySQL 还支持日期/时间的组合,如 1999-06-17 12:30:43。要特别注意这样一个事实,即MySQL 是按年-月-日的顺序表示日期的。MySQL 的初学者通常对这一点很惊奇,其实这是ANSI SQL 的标准格式。可以利用D AT E _ F O R M AT( ) 函数以任意形式显示日期值,但是缺省显示格式首先显示年,而且输入值也必须首先给出年。
    4. NULL 值
    NULL 是一种无类型的值。它过去惯常表示的意思是无值、未知值、丢失的值、溢出值以及没有上述值等。可将NULL 值插入表中、从表中检索它们,测试某个值是否是N U L L,但不能对NULL 值进行算术运算(如果对NULL 进行算术运算,其结果为N U L L)。




发布人:Mysql教程
→ 推荐给我的好友 → 报告错误链接
上篇文章:MySQL数据库技术(06)
下篇文章:MySQL数据库技术(11)
〖文章打印〗
〖关闭窗口〗
发表评论
查看评论
中“MySQL数据库技术(07)”相关内容 中“MySQL数据库技术(07)”相关内容
中“MySQL数据库技术(07)”相关内容 中“MySQL数据库技术(07)”相关内容
中“MySQL数据库技术(07)”相关内容 中“MySQL数据库技术(07)”相关内容

关于我们网站留言友情链接与我在线与我聊天领取红包管理TOP