增、刪、改、查:
-
postgres=# \password postgres 為postgres進行密碼設置;
-
postgres=# CREATE USER test WITH PASSWORD '123456'; 創建數據庫用戶;
-
postgres=# CREATE DATABASE test OWNER test; 創建用戶數據庫並制定其所有者;
-
postgres=# GRANT ALL PRIVILEGES ON DATABASE test to test; 將test數據庫所有權限賦給test,否則test只能登錄控制台,沒有任何數據庫操作權限。
-
[root@server8 ~]# sudo -u postgres createuser --superuser test 命令行形式創建數據庫用戶,之后可以登錄數據庫控制櫃台設置test用戶密碼,完成后退出控制台。;
-
[root@server8 ~]# sudo -u postgres psql
-
[root@server8 ~]# su -u postgres createdb -O test test 在命令行中創建數據庫;
-
psql -U test -d test -h 127.0.0.1 -p 5432 登錄數據庫;
-
[root@server8 ~]# su -u postgres createdb -O test test 創建數據庫;
-
postgres=# \conninfo 查看數據庫連接信息;
-
postgres=# \c exampledb test 一某個用戶切換到某個數據庫;
-
postgres=# CREATE TABLE user_tbl(name VARCHAR(20),signup_date DATE); 數據庫表創建;
-
postgres=# INSERT INTO user_tbl(name,signup_date)VALUES ('張三','2017-09-21'); 在表中插入信息;
-
postgres=# SELECT * FROM user_tbl ; 查看表結構及其內容;
-
postgres=# UPDATE user_tbl set name='李四'WHERE name= '張三'; 更新表中某列的內容信息;
-
postgres=# DELETE FROM user_tbl WHERE name = '李四'; 刪除表中某列的某行中的內容;
-
postgres=# ALTER TABLE user_tbl ADD email VARCHAR(40); 添加表結構字段
-
postgres=# ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL ;
-
postgres=#ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup; 更新字段名稱;
-
postgres=# ALTER TABLE user_tbl DROP COLUMN email; 刪除表中某字段
-
postgres=# ALTER TABLE user_tbl RENAME TO backup_tbl; 重命名數據庫中的表;
-
postgres=# DROP TABLE IF EXISTS backup_tbl; 刪除表;
數據導入
pg數據導入步驟
- 創建組角色
CREATE ROLE dev;
- 創建用戶
CREATE ROLE gdyy LOGIN;
GRANT dev TO gdyy;
- 創建表空間
/pgdata/9.1/data/gdyy(用戶用gdyy)
CREATE TABLESPACE gdyy LOCATION '/pgdata/9.1/data/gdyy';
- 創建數據庫
CREATE DATABASE gdyy WITH ENCODING='UTF8' CONNECTION LIMIT=-1 TABLESPACE=gdyy;
GRANT CONNECT, TEMPORARY ON DATABASE tzdatas TO GROUP dev;
- (\c 數據庫名,進入數據庫)
GRANT USAGE ON SCHEMA public TO GROUP dev;
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT INSERT, SELECT, UPDATE, DELETE, TRUNCATE ON TABLES
TO dev;
CREATE EXTENSION dblink;
CREATE EXTENSION tablefunc;
CREATE EXTENSION postgis;(針對軌跡數據庫存在的函數,一般用戶可忽略)
CREATE EXTENSION postgis_topology ;(針對軌跡數據庫存在的函數,一般用戶可忽略)
- 數據庫備份
pg_dump -U postgres -c -x -O gdyy>/t mp/gdyy.sql
- 導入
psql
\c gdyy gdyy
\i /tmp/gdyy.sql
其他常用命令
- 連接數據庫, 默認的用戶和數據庫是postgres:psql -U user -d dbname
- 切換數據庫,相當於mysql的use dbname: \c dbname
- 列舉數據庫,相當於mysql的show databases: \l dbname
- 列舉表,相當於mysql的show tables: \dt
- 切換數據庫,相當於mysql的use dbname: \c dbname
- 查看表結構,相當於desc tblname,show columns from tbname: \d tblname
- \di 查看索引
- 創建數據庫: create database [數據庫名];
- 刪除數據庫: drop database [數據庫名];
- 重命名一個表: alter table [表名A] rename to [表名B];
- 刪除一個表: drop table [表名];
- 在已有的表里添加字段: alter table [表名] add column [字段名] [類型];
- 刪除表中的字段: alter table [表名] drop column [字段名];
- 重命名一個字段: alter table [表名] rename column [字段名A] to [字段名B];
- 給一個字段設置缺省值: alter table [表名] alter column [字段名] set default [新的默認值];
- 去除缺省值: alter table [表名] alter column [字段名] drop default;
- 在表中插入數據: insert into 表名 ([字段名m],[字段名n],......) values ([列m的值],[列n的值],......);
- 修改表中的某行某列的數據:
- update [表名] set [目標字段名]=[目標值] where [該行特征];
- 刪除表中某行數據: delete from [表名] where [該行特征]; delete from [表名];--刪空整個表
- 創建表: create table ([字段名1] [類型1] <references 關聯表名(關聯的字段名)>;,[字段名2] [類型2],......<,primary key (字段名m,字段名n,...)>;);
- \copyright 顯示 PostgreSQL 的使用和發行條款
\encoding [字元編碼名稱]
顯示或設定用戶端字元編碼
\h [名稱] SQL 命令語法上的說明,用 * 顯示全部命令
\prompt [文本] 名稱
提示用戶設定內部變數
\password [USERNAME]
securely change the password for a user
\q 退出 psql
可以使用pg_dump和pg_dumpall來完成。比如備份sales數據庫:
pg_dump drupal>/opt/Postgresql/backup/1.bak