pgsql数据库默认配置事务类型_postgresql 数据库的初始化,配置,备份和还原

本文介绍了PostgreSQL数据库的管理,包括如何查看和设置服务器及客户端编码,用户和数据库的切换,以及数据类型如varchar、text的使用。此外,详细阐述了数据库的备份和恢复命令,如pg_dump和pg_restore,并讨论了主键、外键和数据库约束的概念。
摘要由CSDN通过智能技术生成

SHOW client_encoding;

对于一些已知的编码,在客户端和服务器端实现自动转码

\c - newuserl来切换用户,- 表示数据库不变 \c用于切换用户和数据库 \du 列出用户,\l列出数据库,

\d 回车将得到所有表

initdb 命令将会创建数据库族,--encoding=encoding指定服务端的编码,也可在创建数据库的时候指定encoding

如果服务器字符集是 SQL_ASCII, 服务器把字节值 0-127 的数值根据 ASCII 标准解析,而字节值未 128-255 的则当作未解析的字符,在大多数情况下,如果你使用了任何非 ASCII 数据,那么使用 SQL_ASCII 设置都是不明智的,因为 PostgreSQL 会无法帮助你转换或者校验非 ASCII 字符。就存在部分以16进制表示

SQL_ASCII

any (no conversion will be performed)

UTF8

all supported encodings

对于服务器端采用utf8还是sql-ascii编码都不影响order by和likeshow server_encoding 获取服务端编码show client_encoding 获取客户端编码character varying(4) 这个4是字符,不是字节数,len(s) 测试的字节数char(n) 则是指定长度,没填满的话填充空白,比较或者转换的时候那些空白字符不会被关注varchar(n),不会填充空白text,允许的最长字符达到1G在性能上,postgre对这三种数据类型没有性能差异,其他的数据库系统可能有一般想存储没有特定上限的字符串一般采用text

select name from student where name like '%sdu%';

数据库备份还原命令

pg_dump -h 164.82.233.54 -U tbaseuser databasename > databasename.bak

恢复:pg_restore -h localhost -U tbaseuser -d databasename < databasename.bak

-h 代表目标主机,localhost代表本地主机,-U 用户,-d数据库名

\h alter table

insert into init_cmd(cmd,check_type,platform_id) values('su - root\npasswd','UNIX',5);

insert into param(quote,display,type,"desc") values('apache_conf_path','apache配置文件路径','text','apache的配置路径');

desc关键字,加双引号,后边的值必须是单引号(有的时候)

select * from pg_stat_activity;查看链接情况

alter database tbase RENAME TO tbase_ascii;

alter table template add column industry character(10);

liaoxinxi@tbase /home/liaoxinxi/trunk $ pg_dump -h localhost -U postgresql tbase > tbase.bakliaoxinxi@tbase /home/liaoxinxi/trunk $ psql -d tbase -U tbaseuser< tbase.bak

psql -d tbase -U tbaseuser -f tbase.bak

pg_dump -h localhost -p 5432 -U tradesns -W -F c -b -v -f "/home/tradeworkwangbin/us2010.backup" us2010恢复:pg_restore -h 192.168.0.100 -p 5432 -U postgres -W -d us2011 -v "/root/us2010.backup"

pg_dump -h localhost -p 5432 -U tbaseuser tbase -F c -b -v -f tbase.bak

pg_restore -h localhost -p 5432 -d tbase -U tbaseuser tbase.bak

-F 压缩格式,c表示很灵活的格式 -b大对象,客户化格式的转储不是脚本,不能用于 psql

为了支持远程访问(默认关闭),必须在pg_hba.conf(/usr/bin/pgsql/data)添加

host all all 192.168.0.0/16 trust #该网段可信

然后在postgresql.conf添加listen_address = '*'

重启:pg_ctl restart -D /usr/bin/pgsql/data

ps -elf|grep post

netstat -anp|grep 5432

主键,一个表的唯一标志,保证数据的唯一性,一般是让主键只干主键的事

外键,主要用于关联和限制,一般是外表的主键,也可以是unique约束,另外控制主表的插入,必须有相应的外键,另外外表的删除肯定会查询主表,如果还有的话是不能删除的,这就保证了依赖关系,但同时带来了效率的下降。

当一个表中引用另外一个表的主键时,这个时候这个主键就成了主表中的外键

数据库的约束有三种,实体完整性约束、参照完整性约束和用户自定义约束。

1.实体完整性约束指的是主键不能为空,如果主键为空了还怎么唯一标识一条记录。

2.参照完整性约束,即外键的约束,某一外键的值必须在它引用的主键字段中存在。如,学生表中专业编号属性的值,必须都存于专业信息表中的专业编号属性中。想一想也就明白了,一个学生(大学生)怎么可能属于一个不存在的专业。

3.用户自定义完整性约束,指的是一些用户自己设定的约束,例如字段是否可以为空,字段值的取值范围(如:人的性别只能取男、女)

创建表的时候就创建了索引,那个索引就是主键

索引的目的就是为了加快查询速度设立的

ALTER TABLE pc ADD CONSTRAINT fk_cpu_modelFOREIGN KEY (cpumodel)REFERENCES parts(model)

on update cascade;

第一行是设置外键约束并命名,第二行则是设置本表的字段,第三行则是关联的外表的约束,

ON UPDATE CASCADE; 即在主表更新时,子表(们)产生连锁更新动作,似乎有些人喜欢把这个叫“级联”操作。:) CASCADE 外,还有 RESTRICT(禁止主表变更)、SET NULL(子表相应字段设置为空)

CREATE INDEX ON tablename (列的列表);设置简单索引

CREATE UNIQUE INDEX ON tablename (列的列表);设置为一索引,只出现一次,还有多列索引,

ALTER TABLE people ADD INDEX fname_lname_age (firstname,lastname,age);

复合主键常常导致不良的外键

postgres@liaoxinxi-ThinkPad-SL400:/usr/bin$ createdb -e -E 'utf8' -T template0 -U postgres -w -O postgres tbaseCREATE DATABASE tbase OWNER postgres ENCODING 'utf8' TEMPLATE template0;

ident

增加unique约束:

tbase=# alter TABLE platform add constraint name_chk unique (name);NOTICE: ALTER TABLE / ADD UNIQUE will create implicit index "name_chk" for table "platform"ALTER TABLE

去除外键:

tbase=# alter TABLE t_item DROP CONSTRAINT t_item_id_field_fkey;ALTER TABLE

alter TABLE item ADD column user_id integer;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值