PostgreSQL命令行使用手册
阅读数: 次
启动pgsl
数据库
1
| pg_ctl -D /xx/pgdata start
|
查看pgsl
版本
命令行登录数据库
1
| psql -U username -d dbname -h hostip -p port
|
列出所有数据库
切换数据库
列出当前数据库的所有表
查看指定表的所有字段

查看指定表的基本情况

退出操作
新建表
例1(主键)
1 2 3 4 5 6
| create table TESTCASE( id INTEGER, task_class INTEGER, age TEXT, PRIMARY KEY(id, task_class) );
|
例2(自增SERIAL
)
1 2 3 4 5
| create table CREATETASK_CHKID_N( id SERIAL PRIMARY KEY, chk_id TEXT, n INTEGER );
|
其中SERIAL
代表自增,默认从1
开始增加,每次自增1
。
删除表
1
| drop table REL_CROSS_NODE;
|
清空表
添加字段
1
| alter table [表名] add column [字段名] [类型];
|
更改字段
1
| alter table [表名] rename column [旧字段名] to [新字段名];
|
例:把表table_ex
字段col_1
限制非空去掉:ALTER TABLE table_eg ALTER col_1 drop not NULL
如果把字段colname
把属性Text
转化为int
,原来text
里面存在空啥的,可以
1
| ALTER TABLE tablename ALTER COLUMN colname TYPE int USING (trim(keyword)::integer);
|
删除字段
1
| alter table [表名] drop column [字段名];
|
表中插入一行数据
1
| insert into [表名] (字段1,字段2) values (值1,值2);
|
例如:
1
| insert into assist_info (id, maat_id, block_type) values ('F006', 'F7775', 1)
|
注:如果表中字段有大写的字段,则需要对应的加上双引号。例:
1
| insert into test (no, "Name") values ('123', 'jihite');
|
值用单引号引起来(‘’),不能用双引号(“”)
表中删除一行数据
1
| delete from [表名] where [该行特征];
|
修改表中数据
1
| update [表名] set [目标字段名]=[目标值] where [该行特征]
|
删除表
退出postgreSql
两个查询结果做差except
1 2 3 4 5
| (select node_id from node where node_id=1 or node_id=2) except (select node_id from node where node_id=1); node_id
2 (1 row)
|
复制表
1
| CREATE TABLE test_a_copy AS SELECT * FROM test_a;
|
命令导入sql数据文件
1
| psql -h localhost -d databaseName -U username -f filename
|
查询结果存储到输出文件
格式:
这样就会把查询结果存储到输出文件中。例
1 2 3
| postgres=> \o /home/jihite/data/iu_data; postgres=> select test_id from cdb_all_iu_data limit 10; postgres=> select test_id from cdb_all_iu_data limit 5;
|
结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| test_id -------------- 2143 2153 2144 2156 2145 2154 2146 2157 2147 2155 (10 rows) test_id -------------- 2143 2153 2144 2156 2145 (5 rows)
|
数据库的备份&恢复
导出到线下文件
把线下文件导入到数据库
1
| psql -h 10.125.7.68 -p 5432 -d postgres -U postgres -W postgres -f 2.sql
|
\x 打开扩展显示功能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| postgres=> \x Expanded display is on. postgres=> select * from cdb_chk_items where chk_id = 'R000000335'; -[ RECORD 1 ]+ chk_id | R000000335 chk_desc | 道路属性与道路属性相关检查 chk_info | {"FIELDS": {"TRAFFIC_SIGN": ["TYPE", "GEOM"], "ROAD_LINK": ["ROAD_CLASS", "FORM_WAY", "GEOM"]}} err_desc | {"ERR2": "roadclass取值错误", "ERR1": "formway取值错误"} chk_level | 1 is_opened | 1 module_name | TRAFFIC_SIGN invalid_flag | 1 rel_mode | MAIN_LAYER:TRAFFIC_SIGN : TRAFFIC_SIGN|A,M|DIRECT : ROAD_LINK|A,M,D|ATTR_REL
|
从表A中把符合条件的记录拷贝到表B
1
| insert into A select * from B where id in ('a', 'b', 'c');
|
–
转载自jihite
博客:http://www.cnblogs.com/kaituorensheng/p/4667160.html