教程学院
图像设计 多媒体类 机械制图 办公软件 操作系统 系统编程 网站编程 网页制作 数据库类 网络路由 网络工程 网络安全 考试认证
firefox火狐浏览器下载
酷网学院
CAD
AutoCad Cam350 ProEngineer GCcam MATLAB Unigraphics SolidWorks CAXA Solid3000 Cimatron EdgeCAM
系统
安全 防火墙 病毒 WinXP Win2003 Vista
数据库
编程
网络
精彩图库
  当前位置: 库库中文网 · 数据库类教程 · Mysql教程

MySQL教程

学院最新推荐文章
教程推荐
『MySQL教程』如果文章有大量图片,显示会较慢,请等待图片下载完成
 
点击数: 更新时间:2006-3-25 

 



   在用表达式表示一个需要逻辑运算的查询时,要注意别混淆逻辑与运算符与我们平常使用的“与”的含义。假如希望查找“出生在Vi rginia 的总统与出生在Maryland 的总统”。应该注意怎样表示“与”的关系,能写成如下的查询吗?

    错了,因为这个查询的意思是“选择既出生在Vi rginia 又出生在M a r y l a n d的总统”,不可能有同时出生在两个地点的总统,因此这个查询无意义。在英语中,可以用“a n d”表示这种选择,但在SQL 中,应该用OR 来连接两个条件,如下所示:


    这有时是可以觉察到的,不仅仅是在编写自己的查询时可以觉察到,而且在为他人编写查询时也可以知道。最好是在他人描述想要检索什么时仔细听,但不一定使用相同的逻辑运算符将他人的描述转录成SQL 语句。对刚才所举的例子,正确的英语等价描述为“选择出生在Vi rginia 或者出生在Maryland 的总统。”
    2. NULL 值
    NULL 值是特殊的;因为它代表“无值”。不可能以评估两个已知值的相同方式来将它与已知值进行评估。如果试图与通常的算术比较运算符一道使用NULL,其结果是未定义的:

    为了进行NULL 值的搜索,必须采用特殊的语法。不能用= 或!= 来测试等于NULL 或不等于NULL,取而代之的是使用IS NULL 或IS NOT NULL 来测试。例如,因为我们将健在总统的死亡日期表示为NULL,那么可按如下语句查找健在的总统:

    MySQL3.23 及以后的版本具有一个特殊的MySQL专有的比较运算符“ < = >”,即使是NULL 与NULL 的比较,它也是可行的。用这个比较运算符,可将前面的两个查询重写为:

    3. 对查询结果进行排序
    有时我们注意到,在一个表装入初始数据后,对其发布一条SELECT * FROM tbl_name查询,检索出的行与这些行被插入的顺序是相同的。但不要认为这种情况是有规律的。如果在初始装入表后进行了行的删除和插入,就会发现服务器返回表的行次序被改变了。(删除记录在表中留下了未使用的“空位”,MySQL在以后插入新记录时将会试图对其填补。)缺省时,如果选择了行,服务器对返回行的次序不作任何保证。为了对行进行排序,可
使用ORDER BY 子句:

    在ORDER BY 子句中,可在列名之后利用ASC 或DESC 关键字指定排序是按该列值的升序或降序进行的。例如,为了按倒序(降序)名排列总统名,可如下使用DESC:

    如果在ORDER BY 子句中,对某个列名既不指定ASC 又不指定DESC,则缺省的次序为升序。在对可能包含NULL 值的列进行排序时,如果是升序排序, NULL 值出现在最前面,如果是按降序排序,NULL 值出现在最后。
    查询结果可在多个列上进行排序,而每个列的升序或降序可以互相独立。下面的查询从president 表中检索行,并按出生的州降序、在每个州中再按姓氏的升序对检索结果进行排序:

    4. 限制查询结果如果一个查询返回许多行,但您只想看其中的几行,则可以利用LIM99v 子句,特别是与ORDER BY 子句结合时更是如此。MySQL允许限制一个查询的输出为前n 行。下面的查询选择了5 位出生日期最早的总统:

    如果利用ORDER BY birth DESC 按降序排序,将得到5 位最晚出生的总统。LIM99v 也可以从查询结果中取出中间部分。为了做到这一点,必须指定两个值。第一个值为结果中希望看到的第一个记录(第一个结果记录的编号为0 而不是1)。第二个值为希望看到的记录个数。下面的查询类似于前面那个查询,但只显示从第11行开始的5 个记录:

    自MySQL3.23.2 以来,可按照一个公式来排序查询结果。例如,利用ORDER BYRAND( ) 与LIM99v 结合,从president 表中随机抽取一个记录:


    5. 计算并命名输出的列值
    前面的多数查询通过从表中检索值已经产生了输出结果。MySQL还允许作为一个公式的结果来计算输出列的值。表达式可以简单也可以复杂。下面的查询求一个简单表达式的值(常量)以及一个涉及几个算术运算符和两个函数调用的较复杂的表达式的值:

    此查询把名和姓连接起来,中间间隔一个空格,将总统名形成一个单一字符串,而且将出生城市和州连接在一起,中间隔一个逗号,形成出生地。
在利用表达式来计算列值时,此表达式被用作列标题。如果表达式很长(如前面的一些查询样例中那样),那么可能会出现一个很宽的列。为了处理这种情况,此列可利用AS name结构来重新命名标题。这样的名称为列别名。用这种方法可使上面的输出更有意义,如下所示:


    6. 使用日期
   在MySQL中使用日期时要记住的是,在表示日期时首先给出年份。1999 年7 月27 日表示为“1999 - 07 - 27”,而不是像通常那样表示为“ 07 - 27 - 1999”或“27 - 07 - 1999”。MySQL提供了几种对日期进行处理的方法。可以对日期进行的一些运算如下:
   ■ 按日期排序。(这点我们已经看到几次了。)
   ■ 查找特定的日期或日期范围。
   ■ 提取日期值的组成部分,如年、月或日。
   ■ 计算日期的差。
   ■ 日期增加或减去一个间隔得出另一日期。
   下面给出一些日期运算的例子。
   为了查找特定的日期,可使用精确的日期值或与其他日期值进行比较,将一个DATE 列与有关的日期值进行比较:

上一页  [1] [2] [3] [4] [5] [6] [7] 下一页  

作者:无 来源:无
】【关闭窗口
·上页:
·下页:
·当前位置: 库库中文网 · 数据库类教程 · Mysql教程
相关文章
     数据库类教程 - Mysql教程
普通教程开源数据库MySQL优化秘籍(1)
普通教程MySQL 5.1正式版准备就绪就要公
普通教程带你随意接触一个检查测试MySQL
普通教程将MySQL迁移到Oracle(一)
普通教程Sun并购MySQL后推出开源数据库完
普通教程Sun宣布已完成对开源数据库MySQ
普通教程MySQL:运用原始代码分发版还是二
普通教程Flex中地MySQL管理(1)
普通教程MySQL数据库地临时文件究竟储存
普通教程解释分析MySQL完全中文化
普通教程增涨MySQL查询效率地三个灵活技
普通教程MySQL占有率不断增加 日下载超五
精彩图片汇集
advertisement
关于站点 - 广告服务 - 联系我们 - 版权隐私 - 免责声明 - 合作伙伴 - 程序支持 - 网站地图 - 返回顶部
网站文本地图
版权所有:库库中文 2005-2007 欢迎各种媒体转载我们的原创作品[转载请注明出处]
copyright © 2005-2008 www.QQGB.com online services. all rights reserved. 蜀ICP备05015578
Template designed by Virus. Optimized for 1024x768 to Firefox,Opera and MS-IE6. Site powered by EQL.
红盾
热爱电脑,热爱生活
拥有电脑,拥有生命
让我们享受拥有电脑的时光