| 麦田守望者's profile异想空间PhotosBlogLists | Help |
|
3/14/2008 PostgreSQL处理varchar和char的独到之处在PostgreSQL中,varchar(n)和char(n)是character varying(n)和character(n)的别名。对于这两种字符类型数据的处理性能与其他某些数据库不同,在PostgreSQL中,没有任何的差别。如果在应用过程中出现性能差别的话,应该从具体应用出发进行分析。
在声明列类型的时候,可以直接写varchar。这样使得列能够包含任意多的字符数。此种行为不是SQL标准,是PostgreSQL的扩展。类似的行为也出现在SQL Server 2005中。 3/7/2008 原来,在列定义中写上NULL不是SQL标准NOT NULL是一个约束,出现在列(不同数据库产品有其自己的叫法)定义中。它不同于其他的SQL约束,无法给一个NOT NULL约束命名,或者在表级别定义属于表的约束。相反,我们也可以定义NULL,使得列能够存储NULL值。但是,在列定义中写上NULL不属于SQL标准! 3/4/2008 在psycopg2和MySQLdb中处理中文在psycopg2和MySQLdb中能够很好的处理中文。
先说psycopg2:
首先,PostgreSQL服务器端应该使用UTF-8编码;接下来,在connect服务器之后,在SELECT任何数据之前,先执行命令: SET CLIENT_ENCODING TO gbk
然后,可以执行SELECT读取数据。psycopg2以字节串的形式返回包含中文的字符串。
再说MySQLdb:
在创建到MySQL的连接对象的时候,给MySQLdb的connect方法传入charset参数: cn = MySQLdb.connect(db='mydb', host='localhost', user='root', passwd='mypassword', charset='gbk')
MySQLdb以Unicode字符串对象返回包含中文的字符串。
运行环境:Python 2.4.4 |
|
|