Postergresql常见操作

Postergresql常见操作

1. 安装部署 略

2. 登录数据库 查看版本

复制代码
## 以管理员身份 postgres 登陆,然后通过
#psql -U postgres
#sudo -i -u postgres
​
 $ psql xc_hzh_linan                    #登录xc_hzh_linan数据库
 $ psql -U postgres test               #以postgres用户身份,登录test数据库
 psql -h localhost -p 5432 -U postgress testdb

3. 相关命令


使用反斜线作为命令前缀.

退出 \q 列出所有的数据库 \l 列出所有的数据库的大小 \l+ 更改当前连接的数据库 \c 列出当前数据库的连接信息 \connect 列出当前数据库和连接的详细信息 \conninfo 查看当前数据库里面的表和拥有者和表大小 \dt + 展示所有用户 \dg

查看所有表名的列表 \d 获取表结构 \d a 展示所有用户 \du 查看t_sms表的结构 \d t_sms 展示数据库里面的所有的表 \dt 列出所有的数据库的详细信息(包括数据库大小和字符格式) \l+ 显示用户访问权限。 \z或\dp 显示所有可设置的访问权限 \h GRAN 显示用户的对所有数据库表的详细访问权限 \dp或者\z 确认当前连接的用户为超级用户postgres,且该用户后创建角色和数据库的权限等 #select current_user; 在超级用户连接postgres后,设置不允许普通用户a连接数据库 #alter role a nologin;

使用普通用户a连接数据库正常 #\c highgo a

查看当前连接的用户名: foo=#select * from current_user; 或 foo=#select user;

查看所有用户名: foo=#\du

4、创建/删除用户及权限相关

4.1 创建用户

复制代码
create role zhaobsh;
create user wzq with password '123456';                       #设置用户,并设置密码
create database xc_hzh_linan owner xchzhlinan ;         #创建数据库以及所属用户
​
drop user runoob; # 删除用户 runoob
​

4.2 更改用户密码

复制代码
alter role zhaobsh with password 'Test6530';
​
or
​
\password zhaobsh
 
ALTER USER postgres WITH PASSWORD 'postgres';
​
​
-----
注:
​
密码postgres要用引号引起来
​
命令最后有分号
----

4.3 给用户添加权限

授权给用户** PostgreSQL中预定义了许多不同类型的内置权限,如:SELECT、INSERT、UPDATE、DELETE、RULE、REFERENCES、TRIGGER、CREATE、TEMPORARY、EXECUTE和USAGE。**

要做操作需登录这个用户,不然没权限 他是管理员用户

复制代码
alter user asan with SUPERUSER; # 类似postgres的SUPERUSER 权限用户
# 
grant all on database "GSCloud1903" to zhaobsh;                          #赋予用户zhaobsh数据库所有权限
​
grant UPDATE ON database "GSCloud1903" to zhaobsh;             # 赋予用户zhaobsh数据库更新权限
​
/* 赋给用户表的所有权限 */
GRANT ALL ON tablename TO user; 
​
/* 赋给用户数据库的所有权限 */
GRANT ALL PRIVILEGES ON DATABASE dbname TO dbuser;
​
/* 撤销用户权限 */
REVOKE privileges ON tablename FROM user;
​
### 修改数据库的属主属组
 alter database "GSCloud1903" owner to zhaobsh;
 ALTER ROLE user_4 WITH CREATEROLE;           /*赋予创建角色的权限*/  
 alter database "GSCloud1903" rename to zhaobsh;             --修改schema的名称
​

5 数据库库表操作

5.1 查看数据库

复制代码
# \L

5.2 删除数据库

复制代码
postgres=# drop database test;
​
#如果数据库名称中包含符号-,则用双引号包括数据库名称
​
postgres=# drop database "test-study";

5.3 查看当前数据库

复制代码
postgres# select current_database();

5.4 切换数据库

复制代码
postgres# \c db

5.5 创建数据库并授权

复制代码
CREATE DATABASE dbname;
​
postgres=# create database dbtest owner username; -- 创建数据库指定所属者
CREATE DATABASE
​
​
将数据库得权限,全部赋给某个用户
​
 postgres=# grant all on database dbtest to username; -- 将dbtest所有权限赋值给username
 设置是 supseruser 以及 登录权限
 alter user zhaobsh superuser login

5.5 退出数据库

复制代码
postgres# \q

数据表

5.6 显示当前数据库中的所有表

复制代码
# \d

5.7 显示指定表结构

复制代码
postgres# \d tableName

5.8 查表内容

复制代码
seelect * from tablename;

6 数据库备份恢复操作

复制代码
------------------------数据的导出:
$ pg_dump -U postgres(用户名)  (-t 表名) 数据库名(缺省时同用户名)  > 路径/文件名.sql
​
postgres@debian:~$ pg_dump -U postgres -t system_calls wangye > ./test.sql
postgres@debian:~$ ls
9.1 test.sql
-----------------------数据的导入:
导入数据时首先创建数据库再用psql导入:
​
$ createdb newdatabase
$ psql -d newdatabase -U postgres -f mydatabase.sql   // sql 文件在当前路径下
​
​
$ psql -d databaename(数据库名) -U username(用户名) -f < 路径/文件名.sql // sql 文件不在当前路径下
 
$ su postgresql   #切换到psql用户下
$ psql -d wangye -U postgres -f system_calls.sql   # sql 文件在当前路径下
INSERT 0 1
INSERT 0 1
INSERT 0 1
相关推荐
大王只是带我巡了个山24 分钟前
优化 OR 条件过多导致的查询超时
数据库·mysql·join·or 优化·or 超时·查询超时
gma9991 小时前
MySQL程序
数据库·mysql
神秘的土鸡1 小时前
Linux中Docker容器构建MariaDB数据库教程
linux·运维·服务器·数据库·docker·mariadb
汪公子4921 小时前
使用k8s搭建mariadb+nginx+wordpress
数据库·nginx·mariadb
Java__攻城狮1 小时前
navicat无法连接远程mysql数据库1130报错的解决方法
数据库·mysql
爬山算法1 小时前
Oracle(129) 如何使用闪回归档(Flashback Archive)?
数据库·oracle
Kk.6162 小时前
SQL编程题复习(24/9/20)
数据库·sql·pta考试·专本贯通
Yz98762 小时前
Hadoop-MapReduce的 原理 | 块和片 | Shuffle 过程 | Combiner
大数据·数据库·数据仓库·hadoop·mapreduce·big data
加油=^_^=2 小时前
MySQL基础篇的补充
数据库·python·mysql
porkczr3 小时前
oracle rac多个实例就相当于多个数据库系统程序
数据库·oracle