慢享生活 静品人生

VirtualBox更新到3.2

    很久没使用VirtualBox,今天更新了ubuntu也顺便更新下它,从网上下了3.2的deb包,安装时提示跟3.1的冲突。而且在下载时地址很怪异 oracle.sun.xxx的网址,后来一想甲骨文 收购了 sun,原来如此,好久没关心IT界的东西了,俺不吃这碗饭的,嘿嘿,搞着玩的。3.1是sun时代的,3.2就变成oracle时代的了,难怪要冲突!

   好奇心作怪,探寻了下VirtualBox的历史,wiki百科上的

VirtualBox最初是以专有软件协议的方式提供。2007年1月,InnoTek以GNU通用公共许可证(GPL)释出VirtualBox而成为自由软件,并提供二进制版本及开放源代码版本的代码。

而在2008年2月,InnoTek软件公司由太阳微系统公司所并购。

在2010年1月,甲骨文公司完成对太阳微系统公司的收购

阅读剩余部分...

 

php--unlink常见权限问题

php中删除文件用unlink函数,

<?php
unlink($somefile)
     or die("Cannot delete file.")
?>

有时会出现权限问题,对文件有写权限,但是无法删除。

原因很简单,删除文件不是对文件的修改,而是修改目录,需要对文件所在目录有写权限。

 

Python练习--排序

    正在看《Python核心编程》,其中的练习很有意思,其他的python编程书籍只讲内容,完了还要自己想一些练习,学习进度就会放慢,对于我这种完全是靠兴趣来学习的人,也会渐渐失去兴趣。所以一本编程教材需要提供合适的练习。

    在第二章有个元素排序的练习:


2–15. 元素排序
(a)让用户输入三个数值并将分别将它们保存到3 个不同的变量中。不使用列表或排序算法,
自己写代码来对这三个数由小到大排序。(b)修改(a)的解决方案,使之从大到小排序

阅读剩余部分...

 

Python3的变化

    原来学了点python,后来就丢到一边了,现在又想学习下,就准备直接学习python3了,了解了下,python3与python2相比有一些明显的变化。

   一、print()变为函数,不再是一个语句了。要想输出结果,只能
>>> print('hello world')
hello world
>>> print 'hello world'
SyntaxError: invalid syntax (<pyshell#1>, line 1)
>>>

阅读剩余部分...

 

ubuntu下python使用sqlite

我使用的是ubuntu sever9.10,sqlite3 python都已安装妥当,无需单独安装。直接使用即可

下面记录网上找到的一个实例

#!/depot/Python-2.5/bin/python
import sqlite3

#链接数据库文件
#如果数据库文件不存在,回新建一个,如果存在则打开此文件
conn = sqlite3.connect('example')
c = conn.cursor()

#创建表格
c.execute('''create table stocks (date text, trans text, symbol text,  qty real, price real)''')

# 插入数据,执行SQL语句
c.execute("""insert into stocks values ('2006-01-15','BUoY','RHATd',100,35.14)""")

#将变动保存到数据库文件,如果没有执行词语句,则前面的insert 语句操作不会被保存
conn.commit()

#得到所有的记录
rec = c.execute('''select * from stocks''')
print c.fetchall()
 

sqlite的联表查询

使用数据库,需要用到多表联合查询,这是关系数据库的特点。sql查询的join有以下几种:

cross join 是笛卡儿乘积 就是一张表的行数乘以另一张表的行数
left join 第一张表的连接列在第二张表中没有匹配是,第二张表中的值返回null
right join 第二张表的连接列在第一张表中没有匹配是,第一张表中的值返回null
full join 返回两张表中的行 left join+right join
inner join 只返回两张表连接列的匹配项

sqlite的联表查询支持以下几种方式:
0200955153033.gif
left join 、inner join、corss join,其他的方式都等同于以上三种

, == CROSS JOIN
JOIN == INNER JOIN
LEFT JOIN == LEFT OUTER JOIN
 
返回顶部