lenny),表名、表中的所有字段的名字和注释可以是UTF-8字符。但是 用英文名字可以TAB键补全的地方多,不过这里我还是用中文表示。例子是参考postgresql的wiki上的。
创建新表
首先启动psql命令行程序,然后创建新表:
root@jianlee:~# psql -U postgres -h localhost 欢迎来到psql 8.3.6,这是PostgreSQL 互动式文字终端机。... postgres=# CREATE TABLE 天气( 城市varchar(80), -- 这是城市名字 最低气温int, -- 一天当中最低气温 最高气温int, -- 一天当中最高气温 降水量real, -- 当天的降水量 日期date -- 日期); CREATE TABLE <== 这里显示创建成功postgres=#
注意: 最后一行date字符后面没有',' 号!如果加上逗号会出现语法错误。
除了常用的\q \ 等命令,psql里面的一条命令是以';' 结束的。在SQL里面可 以随意使用空白(空格、tab、换行符)。— 是注释的开始,到换行符结束。SQL对于大小写不敏感,之用在双引号字符串中才区分大小写。
postsql的多数命令都是在psql下使用\来进行操作的,可以使用\ 来查看帮助。
一些琐碎的问题:
其实还有很多实用上的问题,例如:
1.字符集问题。
如果你本地字符集采用的是UTF-8,数据库将会默认使用。你尽可以通过psql -l来进行查看。可以参考此处http://www.postgresql.org/docs/9.1/interactive/multibyte.html#MULTIBYTE-CHARSET-SUPPORTED
2.如何查看有哪些数据库。
如果你在psql里使用一下\ 基本就都知道了。
3.关于postgresql.conf
有朋友做了描述,尽可以参考:http://www.2cto.com/database/201111/111037.html
listen_addresses='localhost' 非动态 --postgresql监听的网卡ip,默认仅仅本地,可以配置多个,使用“,”分割。“*” 代表所有的网卡ip
port=5432 非动态 --端口
max_connections=100 非动态 --最大服务器连接数
superuser_reserved_connections=3 非动态 --为管理员保留的专用连接数,普通用户无法使用这些连接。不能大于max_connections
authentication_timeout=60s --登录验证超时
ssl=false 非动态 --是否使用ssl连接
password_encryption=true --当使用create user、alter user管理用户时,如果没有显示进行加密与否的限定,postgresql服务器是否自动进行密码加密
shared_buffers=32m 非动态 --共享缓存。非常重要的性能参数。最小值为(128k,16k*max_connections)
max_prepared_transactions=5 非动态 --最大并行prepared 事务。如果为0,则禁止使用prepared事务,最大迎合max_connections相同
temp_buffers=8m 可以会话调整 --每个会话可以使用的临时(表)缓存大小
work_mem=1m 可以会话调整 --指定内部排序、连接、group、等等时,postgresql可以使用的内存大小,超过该值,将使用磁盘临时文件。实际使用的内存和该类操作同时执行的数目相乘
maintenance_work_men=16m --维护语句vacuum、create index等等可以使用的内存大小。实际使用的内存和该类操作同时执行的数目相乘
fsync=on --(物理数据)日志必须同步写入磁盘 --严重的性能损失 最高的日志数据安全。
synchronous_commit=on 可以会话调整 --(逻辑事务数据)日志必须同步写入磁盘,如果设为on,会立即调用fsync,相当于设置了fsync=on
full_page_writes=on --写整页
wal_buffers=64K
wal_writer_delay=200ms --将wal日志从wal_buffer中写入磁盘的周期
commit_delay=0ms --事务日志commit后,写入磁盘的延时。这个设置只有在commit_sibings(并行的多个排队事务)在延时内存在是才有效
commit_siblings=5
希望能对你使用postgresql有一定帮助
摘自 cnhome的专栏