转至繁体中文版     | 网站首页 | 文章中心 | 下载中心 | 图片中心 | 笑话频道 | 教程频道 | 会员中心 | 雁过留声 | 
最新公告:     "MinTao学以致用网"欢迎您的光临,你的支持便是我们的动力,欢迎广大网友和各界人士亲临指导,你们的一个小小的建议便是我们发展的开路石!  [MinTao  2007年9月5日]        
您现在的位置: MinTao学以致用网 >> 文章中心 >> 电子课堂 >> 数据库 >> Sql Server >> 文章正文
专题栏目
更多内容
最新推荐 更多内容
相关文章
Windows 2000下优化Orac
PostgreSql Plsql 演算B
任何学习都要使用从实践
ColdFusion 7添加Postgr
windows下安装Postgresq
windows下使用postgresq
Python操作PostgreSQL
SQL Server 2000 Window
在Hibernate和PostgreSQ
Cygwin下面安装postgreS
更多内容
PostgreSQL 8.0上手(Windows平台)         
PostgreSQL 8.0上手(Windows平台)
作者:stevech 文章来源:不详 点击数: 更新时间:2007-11-14 13:06:52

我的配置:Windows 2000英文版,PostgreSQL 8.0

先在Windows下按提示安装好PostgreSQL 8.0,PostgreSQL可以作为一个系统服务也可以作为独立的程序启动,是个人喜好而定。我将其安装为一个系统服务。

建立数据库
首先确保PostgreSQL系统服务启动,我们可在命令行下或是在pgAdmin GUI界面下建立新数据库。如果你不愿在默认目录下放你的数据库文件,你可以新建一个Tablespace在你想要的地方,然后再在这个Tablespace下建立数据库。
启动命令行,cd到$POST_HOME\bin下,$POST_HOME指你的安装目录,比如C:\Program Files\Postgresql\8.0。敲入
createdb mydb
它会提示你输入当前系统用户的口令。敲入口令后回车即建立了名为mydb的数据库。如果你想在名为myplace的Tablespace下建立数据库,则需敲入
createdb -D myplace mydb
如果你在安装PostgreSQL时还指定了另外的用户名,如steve,则需敲入
createdb -U steve -D myplace mydb
建立好数据库后我们即可用psql来跟数据库打交道了。在命令行下敲入
psql -U steve mydb
输入口令即进入了psql。在psql下我们可用标准SQL语言来建立表、视图及触发器等。
如果在pgAdmin下建立则方便很多,单击鼠标右键按提示录入即可。

中文问题
要使PostgreSQL说中文,我们可选择使用Unicode来建立数据库。在PostgreSQL中使用的是UTF-8而非UCS-2。这样做的好处显而易见,因为UTF-8的字符结构非常有规律,而且UTF-8也是Linux下的默认编码。在UTF-8编码下一个汉字占用三个byte(知道这一点的人反而容易出错,见下文)。现在将mydb建立成Unicode编码的:
createdb -E UNICODE -U steve -D myplace mydb
然后我们就可以建立基于UTF-8的表、视图等了。当然,在Windows 命令行下是不支持Unicode的。我们可以将SQL语句保存在UTF-8编码的文件中,比如$POST_HOME\mytables.sql中。然后在psql下运行\i mytables.sql。需要注意的是,虽然Windows下的记事本可以保存成UTF-8编号(默认字体显示不了中文,改用Tohoma字体即可),但可恶的是,在记事本中,如果使用UTF-8编码,则在文档前添加“”(ASCII:8BAFA8, Unicode:00EF00BB00BF);如果使用UCS-2(Unicode) 编码,则在文档前添加“ÿþ”(ASCII:98E7, Unicode:00FF00FE)。这将导致SQL命令运行失败!(这就是Microsoft可恨之处,连这种小地方也存心跟人过不去,非要加上MS特有的垃圾,我记得当初W3C的Amaya也不认记事本写出来的XML文件,后来妥协了,连W3C拿MS都没办法),如果使用记事本写的Unicode文件,一定要记得除去着可恶的前导字符。(写个Python或Perl脚本就可以了,不嫌麻烦用Java也可以:))。我的做法是在记事本中写,但不保存,直接Copy下来在pgAdmin中的SQL Query中运行。(pgAdmin是用wxWindows写的,显示中文没问题啦)。现在我们可以建立中文表了:
CREATE TABLE mytable (
  日期 date NOT NULL,
  姓名 char(4) PRIMARY KEY,
  性别 char(1) NOT NULL CHECK (性别 IN (''''男'''', ''''女'''')),
  年龄 smallint NOT NULL CHECK (年龄 BETWEEN 0 AND 200),
  描述 varchar(20)
);
你可能奇怪了,一个汉字不是占用三个字节吗,怎么[性别]的类型是char(1)?原来在Postgresql中char(n) (或是varchar(n)等)中的n指的是字符(characters)个数而不是字节(octets)个数。

JDBC连接
在$POST_HOME\jdbc中有所需的JDBC Driver。其中含有jdbc3的那个jar文件支持JDBC 3.0。Driver的类名是org.postgresql.Driver,路径格式为jdbc:postgresql://[host]:[port]/[dbname],默认的port为5432。如,要建立到我们的数据库mydb,路径为:jdbc:postgresql://localhost/mydb。

文章录入:mintao    责任编辑:mintao 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007 MinTao学以致用网(www.mintao.net) Inc All Rights Reserved.
    QQ:543098146有事请Q我! QQ:261561092有事请Q我 QQ:179647303有事请Q我 MSN:min906@126.com
    站长:MinTao 信息产业部ICP备案号:鄂ICP备07500065号

    学以致用是我们学习者的至高境界和不懈追求,[MinTao学以致用网]与大家共同学习,共同进步……
    信息产业部备案
    *鄂ICP备07500065号