php开源嘛
首页 | English | MySql数据库 | Php编程 | 建站杂烩 | 系统服务器 | 资源共享 | 专题 | 才桀网 | 支持论坛
  当前位置:主页>MySql数据库>文章内容
用于SELECT和WHERE子句的SQL函数
来源:网络 作者:本站整理 发布时间:2007-06-18  


6.3.2.2 字母大小写敏感性

BINARY
BINARY 操作符将跟在它后面的字符串强制作为一个二进制字符串。这可以很容易地强制一个列的比较以字母大小写敏感方式进行,即使该列没有定义为 BINARY 或 BLOB?

mysql> SELECT "a" = "A";
-> 1
mysql> SELECT BINARY "a" = "A";
-> 0

BINARY string 是 CAST(string AS BINARY) 的缩写。查看章节 6.3.5 Cast 函数。BINARY 在 MySQL 3.23.0 中被加入。 注意,当将一个索引列强制为 BINARY 时,在某些语境中,MySQL 将不能有效地使用索引。

如果希望对一个 blob 进行忽略字母大小的比较时,你通常可以在比较前将它转换到大写:

SELECT 'A' LIKE UPPER(blob_col) FROM table_name;

我们计划不久推出在不同字符集间的转化,以使字符串比较有更好的伸缩性。
6.3.3 数字函数
6.3.3.1 算术运算

常用的算术操作符均是可用的。注意,如果两个参数均是整型,`-', `+' 和 `*' 以 BIGINT (64 位)精度运算并返回结果!如果一个参数是一个无符号的整数,另一个参数也是一个整数,结果也将是一个无符号整数。查看章节 6.3.5 Cast 函数。

+
加法:

mysql> SELECT 3+5;
-> 8

-
减法:

mysql> SELECT 3-5;
-> -2

*
乘法:

mysql> SELECT 3*5;
-> 15
mysql> SELECT 18014398509481984*18014398509481984.0;
-> 324518553658426726783156020576256.0
mysql> SELECT 18014398509481984*18014398509481984;
-> 0

最后一个表达式的结果是错误的,这是因为乘法结果超过了 64 位 BIGINT 计算范围。
/
除法:

mysql> SELECT 3/5;
-> 0.60

被 0 除将返回一个 NULL 结果:

mysql> SELECT 102/(1-1);
-> NULL

只有当在一个结果被转换到一个整数的语境中执行时,除法将会以 BIGINT 进行算术计算。

6.3.3.2 数学函数

所有的数学函数在发生错误的情况下,均返回 NULL。

-
一元减。 改变参数的符号:

mysql> SELECT - 2;
-> -2

注意,如果这个操作符被用于一个 BIGINT,返回值也是一个 BIGINT!这就意味着,应该避免在一个可能有值 -2^63 的整数上使用 - 操作符!

ABS(X)
返回 X 的绝对值:

mysql> SELECT ABS(2);
-> 2
mysql> SELECT ABS(-32);
-> 32

这个函数可安全地使用于 BIGINT 值。

SIGN(X)
以 -1、0 或 1 方式返回参数的符号,它取决于参数 X 是负数、0 或正数。

mysql> SELECT SIGN(-32);
-> -1
mysql> SELECT SIGN(0);
-> 0
mysql> SELECT SIGN(234);
-> 1

MOD(N,M)
%
取模 (就如 C 中的 % 操作符)。返回 N 被 M 除后的余数:

mysql> SELECT MOD(234, 10);
-> 4
mysql> SELECT 253 % 7;
-> 1
mysql> SELECT MOD(29,9);
-> 2
mysql> SELECT 29 MOD 9;
-> 2

这个函数可安全地使用于 BIGINT 值。最后一个示例可在 MySQL 4.1 中工作。

FLOOR(X)
返回不大于 X 的最大整数值:

mysql> SELECT FLOOR(1.23);
-> 1
mysql> SELECT FLOOR(-1.23);
-> -2

注意,返回值被转换为一个 BIGINT!

CEILING(X)
返回不小于 X 的最小整数:

mysql> SELECT CEILING(1.23);
-> 2
mysql> SELECT CEILING(-1.23);
-> -1

注意,返回值被转换为一个 BIGINT!

ROUND(X)
ROUND(X,D)
将参数 X 四舍五入到最近的整数,然后返回。两个参数的形式是将一个数字四舍五入到 D 个小数后返回。

mysql> SELECT ROUND(-1.23);
-> -1
mysql> SELECT ROUND(-1.58);
-> -2
mysql> SELECT ROUND(1.58);
-> 2
mysql> SELECT ROUND(1.298, 1);
-> 1.3
mysql> SELECT ROUND(1.298, 0);
-> 1

注意,当参数在两个整数之间时, ROUND() 的行为取决于 C 库的实现。某些取整到最近的偶数,总是向下取,总是向上取,也可能总是接近于零。如果你需要某种取整类型,应该使用一个明确定义的函数比如 TRUNCATE() 或 FLOOR() 代替。

DIV
整除。类似于 FLOOR(),但是它可安全地用于 BIGINT 值。

mysql> SELECT 5 DIV 2
-> 2

DIV 在 MySQL 4.1.0 中新加入。

EXP(X)
返回值 e (自然对数的底) 的 X 次方:

mysql> SELECT EXP(2);
-> 7.389056
mysql> SELECT EXP(-2);
-> 0.135335

LN(X)
返回 X 的自然对数:

mysql> SELECT LN(2);
-> 0.693147
mysql> SELECT LN(-2);
-> NULL

这个函数在 MySQL 4.0.3 被新加入。在 MySQL 中,它是 LOG(X) 的同义词。

LOG(X)
LOG(B,X)
如果以一个参数调用,它返回 X 的自然对数:

mysql> SELECT LOG(2);
-> 0.693147
mysql> SELECT LOG(-2);
-> NULL

如果以两个参数调用,这个函数返回 X 任意底 B 的对数:

mysql> SELECT LOG(2,65536);
-> 16.000000
mysql> SELECT LOG(1,100);
-> NULL

任意底选项在 MySQL 4.0.3 中被加入。LOG(B,X) 等价于 LOG(X)/LOG(B)。

LOG2(X)
返回 X 的以 2 为底的对数:

mysql> SELECT LOG2(65536);
-> 16.000000
mysql> SELECT LOG2(-100);
-> NULL

LOG2() 通常可以用于计数出一个数字需要多少个比特位用于存储它。这个函数在 MySQL 4.0.3 中被添加。在更早的版本中,可以使用 LOG(X)/LOG(2) 来代替它。

LOG10(X)
返回 X 以 10 为底的对数:

mysql> SELECT LOG10(2);
-> 0.301030
mysql> SELECT LOG10(100);
-> 2.000000
mysql> SELECT LOG10(-100);
-> NULL

POW(X,Y)
POWER(X,Y)
返回 X 的 Y 幂:

mysql> SELECT POW(2,2);
-> 4.000000
mysql> SELECT POW(2,-2);
-> 0.250000

SQRT(X)
返回 X 的非否平方根:

mysql> SELECT SQRT(4);
-> 2.000000
mysql> SELECT SQRT(20);
-> 4.472136

PI()
返回 PI 值(圆周率)。缺少显示 5 位小数,但是在 MySQL 内部,为 PI 使用全部的双精度。

mysql> SELECT PI();
-> 3.141593
mysql> SELECT PI()+0.000000000000000000;
-> 3.141592653589793116

COS(X)
返回 X 的余弦,在这里,X 以弧度给出:

mysql> SELECT COS(PI());
-> -1.000000

SIN(X)
返回 X 的正弦,在这里,X 以弧度给出:
(阅读次数:
共12页: 上一页 [1] [2] [3] [4] [5] 6 [7] [8] [9] [10] [11] [12] 下一页
上一篇:Linux/Unix下ODBC的安装、配置与编程   下一篇:怎么备份MySQL数据库
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·MySQL索引分析和优化
·MySQL数据库下.frm .MYD .MYI损
·怎么删除MySQL数据库中的重复数
·MySQL数据导入与导出
·MySQL数据库中SQL查询语句精华
·如何优化MySQL数据库性能
·MySQL查询优化之查询优化器
·怎么备份MySQL数据库
·如何导入导出*.sql文件到MySQL数
·MySQL数据导入导出方法与工具介
·MySQL索引分析和优化加速网站访
·SQL Server执行SQL语句时内存占
  相关文章
·怎么备份MySQL数据库
·MySQL索引分析和优化
·小技巧:怎样在Mysql中直接储存
·MySQL数据导入与导出
·各种MySQL客户环境变量程序概述
·mysql常用经典操作
·MySQL优化简明指南
·MySQL高级特性之一事务处理
·MySQL创建数据库和数据库表
·MySQL数据库学习笔记
·Mysql日期和时间函数不求人
·MySQL ODBC进行MySQL和SQL Serve

关于我们 | 本站声明 | 友情连接 | 诚邀加盟 | 网站地图
版权Power by DedeCms   技术支持QQ =>> 罗江游鱼   Jacking  后台登陆
Copyright @ 2007 公司地址:柳州市东环路268号 邮编:545006 电话:15920389818 桂ICP备07006725号