校园学生学习娱乐资源第一门户 校园第一站 源于校园 服务于校园 分享资源和快乐 网站地图 高级搜索 RSS订阅 收藏本站 设为首页
首页 | 校园 | 教育 | 考试 | 电脑 | 英语 | 读书 | 就业 | 论文 | 体育 | 健康 | 图片 | 分类信息
Q Q | 下载 | 游戏 | 音乐 | 影视 | 专题 | 祝福 | 百科 | 问答 | 博客 | 会员 | 社区 | 校园论坛
·偶像剧免费在线收看
·DEDECMS免费模板规则下载
·
·全能空间、网站建设仅200
文章搜索:
  当前位置: 主页>电脑>数 据 库>MySQL> 文章正文

MySQL语言三:SELECT和WHERE子句的函数

http://www.xydyz.com 来源:校园第一站 2007-11-30 阅读: 评论


3 用于 SELECTWHERE 子句的函数

一个 SQL 语句中的 select_expressionwhere_definition 可由任何使用了下面所描述函数的表达式组成。

包含 NULL 的表达式总是得出一个 NULL 值结果,除非表达式中的操作和函数在文档中有另外的说明。

注意:在一个函数名和跟随它的括号之间必须不存在空格。这有助于 MySQL 语法分析程序区分函数调用和对恰巧与函数同名表或列的引用。然而,参数左右两边的空格却是允许的。

你可以强制 MySQL 接受函数名后存在空格的形式,这需要通过以 --ansi 选项启动 mysqld,或在 mysql_connect() 中使用 CLIENT_IGNORE_SPACE,但是,在这种情况下,所有的函数名均将成为保留字。查看章节 1.8.2 以 ANSI 模式运行 MySQL.

为了简洁,从 mysql 程序输出的例子以缩写的形式显示。因此:

mysql> SELECT MOD(29,9);
1 rows in set (0.00 sec)

+-----------+
| mod(29,9) |
+-----------+
|         2 |
+-----------+

将被显示为这样:

mysql> SELECT MOD(29,9);
        -> 2

3.1 无类型的特殊运算符和函数

3.1.1 圆括号

( ... )

括号,使用它来强制一个表达式的计算顺序。

mysql> SELECT 1+2*3;
        -> 7
mysql> SELECT (1+2)*3;
        -> 9

3.1.2 比较运算符

比较运算符的结果是 1 (TRUE)、0 (FALSE) 或 NULL。这些函数可工作于数字和字符串上。根据需要,字符串将会自动地被转换到数字,以及数字被转换成字符串(比如在 Perl 中)。

MySQL 使用下列规则进行比较:

  • 如果一个或两个参数是 NULL,比较的结果是 NULL,除了 <=> 运算符。
  • 如果在一个比较操作中两个参数均是字符串,他们将作为字符串被比较。
  • 如果两个参数均是整数,他们作为整数被比较。
  • 十六进制值如果不与一个数字进行比较,那么它将当作一个二进制字符串。
  • 如果参数之一是一个 TIMESTAMPDATETIME 列,而另一参数是一个常数,在比较执行之前,这个常数被转换为一个时间戳。这样做是为了对 ODBC 更友好。
  • 在所有其它情况下,参数作为浮点(real)数字被比较。

缺省地,字符串使用当前字符集以忽略字母大小写的方式进行比较(缺省的字符集为 ISO-8859-1 Latin1,它对英语处理得很出色)。

下面的例子演示了对于比较操作字符串到数字的转换:

mysql> SELECT 1 > '6x';
         -> 0
mysql> SELECT 7 > '6x';
         -> 1
mysql> SELECT 0 > 'x6';
         -> 0
mysql> SELECT 0 = 'x6';
         -> 1
=
等于:
mysql> SELECT 1 = 0;
        -> 0
mysql> SELECT '0' = 0;
        -> 1
mysql> SELECT '0.0' = 0;
        -> 1
mysql> SELECT '0.01' = 0;
        -> 0
mysql> SELECT '.01' = 0.01;
        -> 1
<>
!=
不等于:
mysql> SELECT '.01' <> '0.01';
        -> 1
mysql> SELECT .01 <> '0.01';
        -> 0
mysql> SELECT 'zapp' <> 'zappp';
        -> 1
<=
小于或等于:
mysql> SELECT 0.1 <= 2;
        -> 1
<
小于:
mysql> SELECT 2 < 2;
        -> 0
>=
大于或等于:
mysql> SELECT 2 >= 2;
        -> 1
>
大于:
mysql> SELECT 2 > 2;
        -> 0
<=>
NULL 值安全等于:
mysql> SELECT 1 <=> 1, NULL <=> NULL, 1 <=> NULL;
        -> 1 1 0
IS NULL
IS NOT NULL
测试一个值是或不是 NULL:
mysql> SELECT 1 IS NULL, 0 IS NULL, NULL IS NULL;
        -> 0 0 1
mysql> SELECT 1 IS NOT NULL, 0 IS NOT NULL, NULL IS NOT NULL;
        -> 1 1 0
为了能够与其它程序更好的工作,在使用 IS NULL 是 MySQL 支持下列额外选择性:
  • 通过它,你可以找到最后插入的记录行:
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    
    这个操作可以通过设置



【责任编辑:admin 】




评论
用户名: 新注册) 密码: 匿名评论
评论内容:不能超过250字,请自觉遵守互联网相关政策法规。
  相关文章
MySQL语言二:列类型
MySQL语言四:数据操纵
MySQL语言一:语言结构
MySQL语言五:数据定义
Win2K下安装IIS asp+cgi+php+mysql配置
  最新图片
如何安全的远程使用MySQL GUI工具
如何安全的远程使用My
24小时TOP
   
·MySQL语言二:列类型
·MySQL语言五:数据定义
·MySQL语言四:数据操纵
·MySQL语言一:语言结构
·MySQL语言九:MySQL 查询缓存
·MySQL语言八:MySQL 全文搜索
·MySQL语言七:MySQL 事务与锁定命令
·MySQL语言六:基本的MySQL用户实用命令
热门图片
  更多>>>
如何安全的远程使用MySQL GUI工具
如何安全的远程使用
焦点聚焦
  更多>>>
·MySQL语言一:语言结构
论坛精华
  更多>>>
·真钱斗地主轧金花龙虎板玖和百家乐http://c
·22岁女大学生要嫁48岁乞丐(图)
·一条短信毁了一种水果 “蛆橘”传言流变调
·蒙古风情十四怪 (一)
·《中国高新技术企业》--www.txrb.com--科信
·东莞大金空调官方介绍 13559702882卢生
·乐众国际最新博彩游戏!真实!新鲜!刺激!
·快国庆了大家怎么安排
最新图片
  更多>>>
如何安全的远程使用MySQL GUI工具
如何安全的远程使用
推荐文章
  更多>>>
·如何安全的远程使用MySQL GUI工具
关于我们 - 版权声明 - 免责声明 - 欢迎投稿 - 广告服务 - 友情链接 - 网站建设 - 诚聘英才 - 联系我们 - -
Copyright @2007-2009 www.xydyz.com © All rights reserved.
校园第一站 版权所有 客服E-Mail:hyperblue@163.comn 点击这里给我发消息
Site design by hyperblue 鄂ICP备07009403号 Powered by DedeCms