中关村在线南充站
站内搜索:
今日导读
您现在的位置: 中关村在线南充站--南充IT网 >> 服务器 >> 技术指南 >> 软件知识 >> 正文
ySQL数据库常见错误问题解答 (3)
更新时间:2007-3-14 12:02:54 来源:zol 访问经销商黄页
我们认为检查日期是应用程序的责任,而不服务器。

  18.13 时区问题

  如果你有一个问题,SELECT NOW()以GMT时间返回值而不是你的本地时间,你必须设定TZ环境变量为你的当前时区。这应该在服务器运行的环境进行,例如在safe_mysqld或mysql.server中。

  18.14 在搜索中的大小写敏感性

  缺省地,MySQL搜索是大小写不敏感的(尽管有一些字符集从来不是忽略大小写的,例如捷克语)。这意味着,如果你用col_name LIKE ’a%’搜寻,你将得到所有以A或a开始的列值。如果你想要使这个搜索大小写敏感,使用象INDEX(col_name, "A")=0检查一个前缀。或如果列值必须确切是"A",使用STRCMP(col_name, "A") = 0。

  简单的比较操作(>=、>、= 、< 、<=、排序和聚合)是基于每个字符的“排序值”。有同样排序值的字符(象E,e和’e)被视为相同的字符!

  LIKE比较在每个字符的大写值上进行(E==e 但是E<>’e)。

  如果你想要一个列总是被当作大小写敏感的方式,声明它为BINARY。见7.7 CREATE TABLE句法。

  如果你使用以所谓的big5编码的中文数据,你要使所有的字符列是BINARY,它可行,是因为big5编码字符的排序顺序基于 ASCII代码的顺序。

  18.15 NULL值问题

  NULL值的概念是造成SQL的新手的混淆的普遍原因,他们经常认为NULL是和一个空字符串’’的一样的东西。不是这样的!例如,下列语句是完全不同的:

  mysql> INSERT INTO my_table (phone) VALUES (NULL);

  mysql> INSERT INTO my_table (phone) VALUES ("");

  两个语句把值插入到phone列,但是第一个插入一个NULL值而第二个插入一个空字符串。第一个的含义可以认为是“电话号码不知道”,而第二个则可意味着“她没有电话”。

  在SQL中,NULL值在于任何其他值甚至NULL值比较时总是假的(FALSE)。包含NULL的一个表达式总是产生一个NULL值,除非在包含在表达式中的运算符和函数的文档中指出。在下列例子,所有的列返回NULL:

  mysql> SELECT NULL,1+NULL,CONCAT(’Invisible’,NULL);

  如果你想要寻找值是NULL的列,你不能使用=NULL测试。下列语句不返回任何行,因为对任何表达式,expr = NULL是假的:

  mysql> SELECT * FROM my_table WHERE phone = NULL;

  要想寻找NULL值,你必须使用IS NULL测试。下例显示如何找出NULL电话号码和空的电话号码:

  mysql> SELECT * FROM my_table WHERE phone IS NULL;

  mysql> SELECT * FROM my_table WHERE phone = "";

  在MySQL中,就像很多其他的SQL服务器一样,你不能索引可以有NULL值的列。你必须声明这样的列为NOT NULL,而且,你不能插入NULL到索引的列中。当用LOAD DATA INFILE读取数据时,空列用’’更新。如果你想要在一个列中有NULL值,你应该在文本文件中使用\N。字面词’NULL’也可以在某些情形下使用。见7.16 LOAD DATA INFILE句法。当使用ORDER BY时,首先呈现NULL值。如果你用DESC以降序排序,NULL值最后显示。当使用GROUP BY时,所有的NULL值被认为是相等的。为了有助于NULL的处理,你能使用IS NULL和IS NOT NULL运算符和IFNULL()函数。

  对某些列类型,NULL值被特殊地处理。如果你将NULL插入表的第一个TIMESTAMP列,则插入当前的日期和时间。如果你将NULL插入一个AUTO_INCREMENT列,则插入顺序中的下一个数字。

  18.16 alias问题

  你可以在GROUP BY、ORDER BY或在HAVING部分中使用别名引用列。别名也可以用来为列取一个更好点的名字:

  SELECT SQRT(a*b) as rt FROM table_name GROUP BY rt HAVING rt > 0;

  SELECT id,COUNT(*) AS cnt FROM table_name GROUP BY id HAVING cnt > 0;

  SELECT id AS "Customer identity" FROM table_name;

  注意,你的 ANSI SQL 不允许你在一个WHERE子句中引用一个别名。这是因为在WHERE代码被执行时,列值还可能没有终结。例如下列查询是不合法:SELECT id,COUNT(*) AS cnt FROM table_name WHERE cnt > 0 GROUP BY id;

  WHERE语句被执行以确定哪些行应该包括GROUP BY部分中,而HAVING用来决定应该只用结果集合中的哪些行。

  18.17 从关联的表中删除行

  因为MySQL不支持子选择或在DELETE语句中使用多个表,你应该使用下列方法从2个关联的表中删除行:

  在主表中基于某个WHERE条件SELECT行。

  在主表中基于相同的条件DELETE行。

  DELETE FROM related_table WHERE related_column IN (selected_rows)

  如果在related_column查询中的字符的全部数量超过1,048,576(缺省值max_allowed_packet),你应该分成更小的部分并且执行多

上一页  [1] [2] [3] 下一页

信息录入:南充资讯    责任编辑:南充资讯 
相关信息:
柯达展示照片打印机 EasyShare G610
日本Elysium公司推 7色超薄键盘亮相
市场调查PlayStation 3更受老美喜爱
[组图]定义视界新标准:直击BenQ LCD苏州策略发布会
两款DX10游戏对比 Crysis下半年上市
nVidia研发DX10游戏 Crysis细节披露
首款DX10游戏《Crysis》网上接受预订
DX10游戏《Crysis》 狙击效果精彩新图
  • 上一条信息:

  • 下一条信息:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    图文推荐:

    海量存储 联想天逸F41顶配本杀破万元

    Moki小猴登场 三星YP-T08新品促销送礼

    就要非入耳 抛弃入耳式耳塞的4大理由

    玩爽HTPC 近期公认超值5.1音箱大搜罗
    返回频道首页
    天下网络,专注于前沿应用领域的网络服务提供商
    热 门 新 闻

    丰俭由君,AMD发烧友不

    爱国者录音笔全国掀促销
    ·丰俭由君,AMD发烧友不可错过
    ·爱国者录音笔全国掀促销攻势 初战告捷
    ·液显排排站“绝色”“赢家”“黑钻”逐个挑
    ·领航者! 微星NX8500GT-TD512E驾到!
    ·巅峰对决 6款神舟3999元双核本推荐
    ·视觉计算世界齐聚NVISION 08
    最 新 本 地 信 息

    南充电脑城漫游记3-30[

    内存中的战斗机 金邦黑
    ·南充电脑城漫游记3-30[第八期]
    ·内存中的战斗机 金邦黑龙EVO游戏内存
    ·性价比超群 双敏火旋风HD3650玩家版仅售59
    ·再降100元 双敏火旋风HD3690玩家版降至799
    ·南充电脑城漫游记3-23[第七期]
    ·轻薄圆润迅驰4 戴尔Inspiron1525仅售5999元
    ZOLNC 推 荐 经 销 商
    ·南充天下网络 0817-4888999 4888998
    ·南充德胜科技 0817-2320044 2320707
    DIY配件 热点

    就要非入耳 抛弃入耳式耳塞的4大理由

    玩爽HTPC 近期公认超值5.1音箱大搜罗
    台式机 热点

    超值数码:行货T61欲破万元 理光DC齐降价

    个性解放 时尚另类设计电脑哪款更好
    笔记本 热点

    海量存储 联想天逸F41顶配本杀破万元

    双核D刻120GB硬盘本 宏碁4520售4699元
    软件世界 热点
    ·阻止我的IE强行弹出广告·教你Word操作中一些很少
    ·Kmplayer简体中文版+ex·买火车票很简单 四招搞
    ·简单三招——远程共享你·新手进阶 处理Excel表格
    网络通信 热点
    ·酷6网率先启动了“原创·谷歌提供离线文档编辑功
    ·百度渗透WiMax领域 打造·消息称谷歌将裁减15% D
    ·传谷歌有意收购美国最大·百度联盟角色升级 变身
    数码时尚 热点
    ·Moki小猴登场 三星YP-T·死磕日系!康佳旗舰液晶
    ·绝色外观!海信TLM46V69·[论坛]我和长虹PT50600
    ·[论坛]首发!夏普32BK7·液晶面板过剩 成4月价格
    评测中心 热点
    ·直播RMVB电影 蓝慧真宽·滑动触摸按键 纽曼MOMO
    ·画质取胜入门首选 5倍光·中频表现突出! 现代HY-
    ·主流攀上1066 宏连新款·1460万像素 三星GX-20单
    不良信息举报信箱 客服电话:0817-4888999 投诉电话:0817-4888998 主编信箱 给本站提意见
    设为首页 | 加入收藏 | 关于我们 | 广告服务 | 历史回顾 | 诚聘英才 | 联系方式 | 代理合作 | 相关法律
    Copyright © 2001-2008 Zolnc.Com Corporation, All Rights Reserved
    地址:南充市滨江大道现代名门17楼 电话:0817-4888999 2263000 6125111 6125077(传真)
    中关村在线南充站 由Zol.Com.Cn与南充天下网络联合运营