`
天梯梦
  • 浏览: 13630242 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

MySQL入门 (三) : 运算式与函式

阅读更多

运算式(expressions)已经在查询叙述中使用过,例如算数运算与「WHERE」子句中的条件判断。 虽然目前只有讨论查询资料的部份,不过你在任何地方都有可能使用运算式来完成你的工作。 一个运算式中可以包含值(literal values)、运算子和函式,都会在这里讨论它们的细节与应用。

 

 

1 值与运算式

不论在执行查询或资料异动的时候,你都可能会使用各种不同种类的值(literal values)来完成你的工作:

 

mysql_04_snap_01

 

不同种类的值会有不同的用法与规定,可以搭配使用的运算子和函式也不一样。 根据资料类型可以分为下列几种:

  • 数值:可以用来执行算数运算的数值,包含整数与小数,分为 精确值与近似值两种
  • 字串:使用单引号或双引号包围的文字
  • 日期/时间:使用单引号或双引号包围的日期或时间
  • 空值:使用「NULL」表示的值
  • 布林值:「TRUE」或「1」表示「真」,「FALSE」或「0」表示「假」

 

 

1.1 数值

数值分为「精确值(exact-value)」与「近似值(approximate-value)」两种。 精确值在使用时不会因为进位而产生差异;使用近似值的时候,可能会因为进位而产生些微的差异。 精确值使用一个明确的数字来表示一个整数或小数数值:

  • 整数:没有小数的数字,范围从-9223372036854775808到9223372036854775807
  • 小数:包含小数的数字,整数范围与上面一样,小数位数最多可以有30个

一般来说,使用精确值在执行各种算数运算的时候,所得到的结果都不会有误差的问题,你只要特别注意范围就可以了。 例如下列这个比较奇怪的查询需求:

 

mysql_04_snap_02

 

包含小数的数字,在整数部份的限制与整数相同,小数位数会有这样的限制:

 

mysql_04_snap_03

 

近似值的的数字通常称为「科学表示法」,它使用下列的方式来表示一个数值:

 

mysql_04_snap_04

 

这两种表示方式所代表的数值是这样计算的:

  • XE+Y,X * 10Y,例如5E+3,代表的数字为5000
  • XE-Y,X * 10-Y,例如5E-3,代表的数字为0.005

注:「XE+Y」格式中的「+」可以省略,例如「5E+3」与「5E3」是一样的。

使用近似值来表示一个数值的时候,你一定要牢记它是一个「近似值」,也就是它真正储存的数值可能不是你所看到的。 下列的情况是你比较容易理解的:

 

mysql_04_snap_05

 

不过下列的状况就会有不一样的结果:

 

mysql_04_snap_06

 

第一个运算值采用精确值的方式,所以它们一定会相等;第二个运算使用近似值的方式,所以它们不一定相等。

 

 

点击阅读全文

 

 

更多参考:

MySQL 超新手入门教程系列

MySQL入门 (一) : 资料库概论与MySQL的安装

MySQL入门 (二) : SELECT 基础查询

MySQL入门 (四) : JOIN 与UNION 查询

 

 

本文转自: MySQL入门 (三) : 运算式与函式

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics