对于SQL的新手,NULL值的概念经常会造成混淆,他们常认为NULL是与空字符串”相同的事。情况并非如此。例如,下述语句是完全不同的:

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

这两条语句均会将值插入phone(电话)列,但第1条语句插入的是NULL值,第2条语句插入的是空字符串。第1种情况的含义可被解释为“电话号码未知”,而第2种情况的含义可被解释为“该人员没有电话,因此没有电话号码”。

为了进行NULL处理,可使用IS NULL和IS NOT NULL操作符以及IFNULL()函数。

在SQL中,NULL值与任何其它值的比较(即使是NULL)永远不会为“真”。包含NULL的表达式总是会导出NULL值,除非在关于操作符的文档中以及表达式的函数中作了其他规定。下述示例中的所有列均返回NULL:

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

假如打算搜索列值为NULL的列,不能使用expr = 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 = ”;

更多信息和示例:

假如你正在使用MyISAM、InnoDB、BDB、或MEMORY存储引擎,能够在可能具有NULL值的列上增加1条索引。如不然,必须声明索引列为NOT NULL,而且不能将NULL插入到列中。

用LOAD DATA INFILE读取数据时,对于空的或丢失的列,将用”更新它们。假如希望在列中具有NULL值,应在数据文件中使用\N。在某些情况下,也可以使用文字性单词“NULL”。

使用DISTINCT、GROUP BY或ORDER BY时,所有NULL值将被视为等同的。

使用ORDER BY时,首先将显示NULL值,假如指定了DESC按降序排列,NULL值将最后显示。

对于聚合(累计)函数,如COUNT()、MIN()和SUM(),将忽略NULL值。对此的例外是COUNT(*),它将计数行而不是单独的列值。例如,下述语句产生两个计数。首先计数表中的行数,其次计数age列中的非NULL值数目:

mysql> SELECT COUNT(*), COUNT(age) FROM person;

对于某些列类型,MySQL将对NULL值进行非凡处理。假如将NULL插入TIMESTAMP列,将插入当前日期和时间。假如将NULL插入具有AUTO_INCREMENT属性的整数列,将插入序列中的下一个编号。

Tags:

无意中发现的一个加拿大的免费空间。不过是纯静态的。放图片还是没有问题的。空间和流量都不算大,对于淘宝用户,应该是可以了。
Free Linux Hosting
- No credit card needed
- No Advertisement Banner
- No registered domain needed
- 200 MB Disk space
- 2 GB File Transfer /month
- cPanel 11 Control Panel

具体说明看这里:http://www.axspace.com/freehosting.php

不过我感觉,这个比godaddy的域名送的免费空间差远了。在godaddy注册域名,它就会针对域名送一个免费空间,不过有广告,但放图片肯定是一点问题都没有的。容量我记得是10000.00 MB 流量是每月300000.00 MB

Tags:

August 22nd, 2008全国上下齐讽男足

官方评论:

1、白岩松
今天中国又夺得了四枚金牌,一片喜庆与笑脸,为了不影响人们看奥运的心情,中国男子国奥队决定更迅速地退出……同时,我相信,没人想对他们说再见吧!
2、鲁健
我们这次国足比赛的底线是不丢人,不闹心,但是他们已经打破这个底线了!
3、沙桐
下面我们来看一种奇怪的比赛——中国男足。
4、商瑞华
我们两个前锋在3场比赛中的表现都非常好。我甚至跟她们开玩笑说,今天打完,明天可以借给男足继续打。
5、某女足姑娘
有什么可说呢?总不能称赞他们打得好吧?
6、阎世铎与谢亚龙
2002世界杯,中国队净吞九蛋,阎世铎说:你们赢得了世界人民的尊重
2008奥运会,中国队对比利时,谢亚龙说:在你们身上我看到了中国足球的希望

民间评论:(高手在民间呀!!!)

1、妙语生花

A、中国男足今晚的目标是:今夜把巴西留在北京,参加不久后即将在北京召开的残奥会。
B、郑智最大的作用就是在场上,把对手踢成郑智化。
C、昨晚心情挺不错的,因为国足输得可谓酣畅淋漓!

2、对联雅座

A、华安和师爷
师爷:一平二负共三场不胜四停五伤六废竟敢提七八九名十分大胆
华安:十射九偏凑得八传七断六停五失四高尚且三心二意一等下流

师爷:粗粗鲁鲁毛毛糙糙场场平平输输
华安:糊糊涂涂庸庸碌碌年年失失败败

师爷:球场里跑不动射不准 小小国足可笑可笑
华安:对手前又击腹又踹裆 叫声老外提防提防
Read the rest of this entry »

Tags:

August 21st, 2008psp3000 改进功能

传闻的PSP3000终于露脸了,让我们来看看都改进了些什么。虽然我不买,但应该有N多psp3000迷位等着中国上市,不过一般来说,日本有了,中国也就有水货了。

在外观上面最明显的改变就是将HOME按键改为了Playstation的标示,并在PSP标志左侧加入了内置麦克风。背面也有一定的变化,如UMD舱上的钢圈就变细了,看起来秀气了不少,会受到更多MM的欢迎。PSP3000的尺寸为169.4×18.6×71.4 mm,重量为189g,与PSP2000相比完全一致。届时最先上市的PSP3000将有神秘银、钢琴黑、珍珠白三种颜色可选,其他颜色版本将陆续推出。

  屏幕方面也有可喜的进步,其亮度和对比度会更高,响应速度也将加快,可以有效避免玩赛车类游戏时PSP2000常见的拖影现象。PSP3000还拥有抗反射技术,用户再也不用怕户外烦人的阳光反射了,即使是明亮的地方也能清晰看到屏幕上的画面。

  此外,还改掉了旧版本PSP2000仅能使用色差或D端子配合逐行扫描的电视输出画面的弊端,由此可见改进幅度还是不小的。不过比较遗憾的是,大家更为关心的电池续航时间问题并没有给出答案,不过相信会有所改进而更为节电。

  上市时PSP3000主机绑定版售价为199欧元,分别是《哈利波特:混血王子》绑定版,《FIFA09》绑定版,《问答:携带版》绑定版以及《Go!Messeage》绑定版。既然性能更好的PSP3000上市了,那PSP2000自然也会降价,将以169欧元甩卖。

psp3000

psp3000

Tags:

August 19th, 2008google AdSense for Feeds

今天登陆google adsense,发现增加了一项AdSense for Feeds。
可以在feed中展示google adsense.

但目前似乎还不怎么完美。可以从feedburner迁移到google的feeds。但目前似乎第一批申请的人还不少。
但是目前已经暂停了迁移申请。因为第一批还没有完成。

查看Adsense For Feed的帮助文档后发现有以下说明:

“您的供稿可能有在展示广告,只不过您查找这些广告时没有看到它们。 因为 AdSense for feeds 广告服务器会对展示加以优化,因此有时候不会投放任何展示。 其中包括只将特定类型的广告展示投放给特定的 RSS 阅读器和浏览器,有时甚至完全不投放任何广告展示。 如果您在 AdSense 帐户的”报告”标签上看到已经有广告展示在投放,就表示广告确实已经在投放了,即使您刚好没有看到广告也是如此。”

期待着adsense for feeds能有更好的表现。诸如adsense那样吸引人。
google总是不断给我们惊喜。

Tags:

历时了两个月的业余时间,终于完成了php的工资管理查询系统。适合企事业单位及机关学校。有买的找我啊:)
主要功能:
1.员工区分部门,每个部门可指定多个部门会计。
2.部门会计可以查询本部门所有员工的工资。
3.普通员工只能查询自己的工资条。可以按日期查询。
4.管理员在后台可以通过批量来上传员工数据,工资数据。
5.上传工资数据时,可以使用csv和txt两种文件,可以自定义过滤条件。
5.自定义过滤条件包括:1.每列数据间的分隔符;2.过滤行,如过滤小于,或大于多少列的行。3.过滤列,过滤不想要的数据列。
6.管理员可以在后台初始化清空工资数据(但不包括员工及部门)。
7.可以手动在后台添加、修改工资数据。
8.管理员可以在后台自定义网站名称,联系方式,用户初始密码。

计划中的功能:
1.实现工资汇总(因为有的部门本身有一个汇总字段,所以只汇总各项目日期区间内的数据。)
2.打印及下载。(下载容易,但打印涉及到工资项目的多少,如果过多,只能横向打印了。)
3.通知功能。(管理员可以在后台发布通布,在前台可以显示。)
4.多个管理员设定(已经预留出此功能)

Tags:

刘翔因伤不能参加本次奥运会的110米栏了。

这回这萝卜丝儿该高兴了。估计他高兴之余,也能发挥出比较好的水平来。

人往往在没有压力,并且表现俗极强而且有众人关注的时候,会发挥出比较好的水平。

网上还有不少人不理解刘翔,骂刘翔,唉,可悲啊。

换位思考一下,如果你是刘翔,实在不堪伤痛,退出比赛,你是希望得到安慰呢,还是希望得到一顿臭骂?

Tags: ,

August 17th, 2008PHP常用数组操作函数

本类函数允许用多种方法来操作数组和与之交互。数组的本质是储存,管理和操作一组变量。
PHP 支持一维和多维数组,可以是用户创建或由另一个函数创建。有一些特定的数据库处理函数可以从数据库查询中生成数组,还有一些函数返回数组。

array_change_key_case — 返回字符串键名全为小写或大写的数组
array_chunk — 将一个数组分割成多个
array_combine — 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
array_count_values — 统计数组中所有的值出现的次数
array_diff_assoc — 带索引检查计算数组的差集
array_diff_key — 使用键名比较计算数组的差集
array_diff_uassoc — 用用户提供的回调函数做索引检查来计算数组的差集
array_diff_ukey — 用回调函数对键名比较计算数组的差集
array_diff — 计算数组的差集
array_fill_keys — Fill an array with values, specifying keys
array_fill — 用给定的值填充数组
array_filter — 用回调函数过滤数组中的单元
array_flip — 交换数组中的键和值
array_intersect_assoc — 带索引检查计算数组的交集
array_intersect_key — 使用键名比较计算数组的交集
array_intersect_uassoc — 带索引检查计算数组的交集,用回调函数比较索引
array_intersect_ukey — 用回调函数比较键名来计算数组的交集
array_intersect — 计算数组的交集
array_key_exists — 检查给定的键名或索引是否存在于数组中
array_keys — 返回数组中所有的键名
array_map — 将回调函数作用到给定数组的单元上
array_merge_recursive — 递归地合并一个或多个数组
array_merge — 合并一个或多个数组
array_multisort — 对多个数组或多维数组进行排序
array_pad — 用值将数组填补到指定长度
array_pop — 将数组最后一个单元弹出(出栈)
array_product — 计算数组中所有值的乘积
array_push — 将一个或多个单元压入数组的末尾(入栈)
array_rand — 从数组中随机取出一个或多个单元
array_reduce — 用回调函数迭代地将数组简化为单一的值
array_reverse — 返回一个单元顺序相反的数组
array_search — 在数组中搜索给定的值,如果成功则返回相应的键名
array_shift — 将数组开头的单元移出数组
array_slice — 从数组中取出一段
array_splice — 把数组中的一部分去掉并用其它值取代
array_sum — 计算数组中所有值的和
array_udiff_assoc — 带索引检查计算数组的差集,用回调函数比较数据
array_udiff_uassoc — 带索引检查计算数组的差集,用回调函数比较数据和索引
array_udiff — 用回调函数比较数据来计算数组的差集
array_uintersect_assoc — 带索引检查计算数组的交集,用回调函数比较数据
array_uintersect_uassoc — 带索引检查计算数组的交集,用回调函数比较数据和索引
array_uintersect — 计算数组的交集,用回调函数比较数据
array_unique — 移除数组中重复的值
array_unshift — 在数组开头插入一个或多个单元
array_values — 返回数组中所有的值
array_walk_recursive — 对数组中的每个成员递归地应用用户函数
array_walk — 对数组中的每个成员应用用户函数
array — 新建一个数组
arsort — 对数组进行逆向排序并保持索引关系
asort — 对数组进行排序并保持索引关系
compact — 建立一个数组,包括变量名和它们的值
count — 计算数组中的单元数目或对象中的属性个数
current — 返回数组中的当前单元
each — 返回数组中当前的键/值对并将数组指针向前移动一步
end — 将数组的内部指针指向最后一个单元
extract — 从数组中将变量导入到当前的符号表
in_array — 检查数组中是否存在某个值
key — 从关联数组中取得键名
krsort — 对数组按照键名逆向排序
ksort — 对数组按照键名排序
list — 把数组中的值赋给一些变量
natcasesort — 用“自然排序”算法对数组进行不区分大小写字母的排序
natsort — 用“自然排序”算法对数组排序
next — 将数组中的内部指针向前移动一位
pos — current() 的别名
prev — 将数组的内部指针倒回一位
range — 建立一个包含指定范围单元的数组
reset — 将数组的内部指针指向第一个单元
rsort — 对数组逆向排序
shuffle — 将数组打乱
sizeof — count() 的别名
sort — 对数组排序
uasort — 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
uksort — 使用用户自定义的比较函数对数组中的键名进行排序
usort — 使用用户自定义的比较函数对数组中的值进行排序

Tags: ,

August 14th, 2008Godaddy域名过户

一、 要过户Godaddy域名给别人的一方首先登陆到你的帐户,点my domains进入后点account change

二、然后务必注意在出来的页面里一定要填写正确对方GoDaddy帐户里的email,其他都可以随意写,下面两个协议打钩同意

三、接着还会出现一个确认页面,点继续,然后对方会收到一封信,邮件包含具体步骤
transaction ID
Security Code

四、接受方收到邮件后登陆到GoDaddy的帐户里,点my account,出现的页面里点pengding account changes

五、在出来的页面里点,accept account change

六、填写好收到的邮件里的密码 点continue继续
transaction ID
Security Code
七、出来的页面是确认页面有两个钩要打上同意协议,点continue后会自动转到了购物车里,出现很多 GoDaddy推荐的服务,都不要选择,点continue,可以看到金额是0.00美圆,所以你随便钩选一个信用卡(credit card)方式支付就可以,(点checkout now)这样就完成了 GoDaddy域名的push,也就是account change。

Tags:

August 14th, 2008sql left join 详解

给个通俗的解释吧.
例表a
aid adate
1 a1
2 a2
3 a3
表b
bid bdate
1 b1
2 b2
4 b4
两个表a,b相连接,要取出id相同的字段
select * from a inner join b on a.aid = b.bid这是仅取出匹配的数据.
此时的取出的是:
1 a1 b1
2 a2 b2
那么left join 指:
select * from a left join b on a.aid = b.bid
首先取出a表中所有数据,然后再加上与a,b匹配的的数据
此时的取出的是:
1 a1 b1
2 a2 b2
3 a3 空字符
同样的也有right join
指的是首先取出b表中所有数据,然后再加上与a,b匹配的的数据
此时的取出的是:
1 a1 b1
2 a2 b2
4 空字符 b4

LEFT JOIN 或 LEFT OUTER JOIN。
左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。

No tags for this post.

Page 2 of 33«12345»...Last »
© 2008 Snow silent