postgreSql 常用操作总结
生活随笔
收集整理的這篇文章主要介紹了
postgreSql 常用操作总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
閱讀目錄
- 0. 啟動pgsl數據庫
- 1. 查看pgsl版本
- 1. 命令行登錄數據庫
- 2. 列出所有數據庫
- 3. 切換數據庫
- 4. 列出當前數據庫的所有表
- 5. 查看指定表的所有字段
- 6. 查看指定表的基本情況
- 7. 退出操作
- 8. 新建表
- 9. 刪除表
- 10. 清空表
- 11. 添加字段
- 12. 更改字段
- 13. 刪除字段
- 14. 表中插入一行數據
- 15. 表中刪除一行數據
- 16. 修改表中數據
- 17. 刪除表
- 18. 退出postgreSql
- 19. 兩個查詢結果做差 except
- 20. 復制表
- 21.命令導入sql數據文件
- 22. 查詢結果存儲到輸出文件
- 23. 數據庫的備份&恢復
- 24.?\x
- 25. 從表A中把符合條件的記錄拷貝到表B
- 26 建立索引
0. 啟動pgsl數據庫
pg_ctl -D /xx/pgdata start 回到頂部1. 查看pgsl版本
pg_ctl --version 回到頂部1. 命令行登錄數據庫
| 1 | psql -U username -d dbname -h hostip -p port |
2. 列出所有數據庫
\l 回到頂部3. 切換數據庫
| 1 | \c dbname |
4. 列出當前數據庫的所有表
\d 回到頂部5. 查看指定表的所有字段
| 1 | \d? tablename |
6. 查看指定表的基本情況
| 1 | \d+? tablename |
7. 退出操作
| 1 | q |
8. 新建表
例1(主鍵)
create table TESTCASE( id INTEGER, task_class INTEGER, age TEXT, PRIMARY KEY(id, task_class) );例2(自增SERIAL)
create table CREATETASK_CHKID_N(id SERIAL PRIMARY KEY,
chk_id TEXT,
n INTEGER
);
其中SERIAL代表自增,默認從1開始增加,每次自增1。
回到頂部9. 刪除表
| 1 | drop table REL_CROSS_NODE; |
10. 清空表
delete from [表名]or
TRUNCATE TABLE [表名]區別:Truncate table 表名 (注:不帶where語句) 速度快,而且效率高。
因為DELETE 語句每次刪除一行,并在事務日志中為所刪除的每行記錄一項。TRUNCATE TABLE 通過釋放存儲表數據所用的數據頁來刪除數據,并且只在事務日志中記錄頁的釋放
回到頂部11. 添加字段
| 1 | alter table [表名] add column [字段名] [類型]; |
12. 更改字段
alter table [表名] rename column [舊字段名] to [新字段名];例:把表table_ex字段col_1限制非空去掉:ALTER TABLE table_eg ALTER col_1 drop not NULL12.1 更改字段屬性,含空格
如果把字段colname把屬性Text轉化為int,原來text里面存在空啥的,可以
ALTER TABLE tablename ALTER COLUMN colname TYPE int USING (trim(colname)::integer);12.2 更改字段由int4-->int8
alter table test_data alter column task_id type bigint using task_id::bigint 回到頂部13. 刪除字段
| 1 | alter table [表名] drop column [字段名]; |
14. 表中插入一行數據
| 1 | insert into [表名] (字段1,字段2) values (值1,值2); |
例如:? ??
| 1 | insert into assist_info (id, maat_id, block_type) values ('F006',?'F7775', 1)?? |
注:
- 如果表中字段有大寫的字段,則需要對應的加上雙引號。例:insert into test (no, "Name") values ('123', 'jihite');
- 值用單引號引起來(''),不能用雙引號("")
15. 表中刪除一行數據
| 1 | delete from [表名] where [該行特征]; |
16. 修改表中數據
| 1 | update [表名] set [目標字段名]=[目標值] where [該行特征] |
17. 刪除表
| 1 | drop table [表名]; |
18. 退出postgreSql
\q 回到頂部19. 兩個查詢結果做差 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) |
20. 復制表
CREATE TABLE test_a_copy AS SELECT * FROM test_a; 回到頂部21.命令導入sql數據文件
psql -h localhost -d databaseName -U username -f filename 回到頂部22. 查詢結果存儲到輸出文件
格式:
\o file_path這樣就會把查詢結果存儲到輸出文件中。例
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;結果
test_id --------------2143215321442156214521542146215721472155 (10 rows)test_id --------------21432153214421562145 (5 rows) 回到頂部23. 數據庫的備份&恢復
導出到線下文件
pg_dump --host hostname --port port --username username -t tablename -d dbname >/home/jihite/table.sql把線下文件導入到數據庫
psql -h 10.125.7.68 -p 5432 -d postgres -U postgres -W postgres -f 2.sql 回到頂部24.?\x
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 回到頂部25. 從表A中把符合條件的記錄拷貝到表B
insert into A select * from B where id in ('a', 'b', 'c'); 回到頂部26 建立索引
單字段索引
CREATE INDEX index_name ON table_name (field1);多字段索引
CREATE INDEX index_name ON table_name (field1,field2);查看所有表的索引使用情況
select relname, indexrelname, idx_scan, idx_tup_read, idx_tup_fetch from pg_stat_user_indexes order by idx_scan asc, idx_tup_read asc, idx_tup_fetch asc;查看某個表索引的使用情況
select relname, indexrelname, idx_scan, idx_tup_read, idx_tup_fetch from pg_stat_user_indexes whererelname = table_name order by idx_scan asc, idx_tup_read asc, idx_tup_fetch asc;?
本文轉自jihite博客園博客,原文鏈接:http://www.cnblogs.com/kaituorensheng/p/4667160.html,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的postgreSql 常用操作总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大自然的声音教案一等奖幼儿园
- 下一篇: js计算字数