postgres数据库基础操作

1. 链接数据库

  • 命令
/# PGPASSWORD=liubei@161 psql -U liubei -d xishu

当然你也可以交互式输入密码

psql -U liubei -d xishu
  • 输出
psql (13.8 (Debian 13.8-1.pgdg110+1))
Type "help" for help.
xishu=#

2. 库操作

2.1 创建库

xishu=# create database jing_zhou;
CREATE DATABASE

2.2 查看数据库

  • 命令
xishu=# \l
  • 输出
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+--------+----------+------------+------------+-------------------
jing_zhou | liubei | UTF8 | en_US.utf8 | en_US.utf8 |
postgres | liubei | UTF8 | en_US.utf8 | en_US.utf8 |
template0 | liubei | UTF8 | en_US.utf8 | en_US.utf8 | =c/liubei +
| | | | | liubei=CTc/liubei
template1 | liubei | UTF8 | en_US.utf8 | en_US.utf8 | =c/liubei +
| | | | | liubei=CTc/liubei
xishu | liubei | UTF8 | en_US.utf8 | en_US.utf8 |
(5 rows)

如上可见我们创建的数据库jing_zhou

2.3 切换数据库

  • 命令
xishu=# \c jing_zhou;
  • 输出
You are now connected to database "jing_zhou" as user "liubei".

2.4 修改库名

xishu=# alter database jing_zhou rename to new_jing_zhou;

2.5 删除数据库

xishu=# drop database new_jing_zhou;

3. 表操作

3.1 创建表

  • 命令
CREATE TABLE users(
ID INT PRIMARY KEY NOT NULL,
name CHAR(50) NOT NULL,
mail CHAR(50),
phone CHAR(50)
);

3.2 查看table list

  • 命令
xishu=# \d
  • 输出
List of relations
Schema | Name | Type | Owner
--------+---------+-------+--------
public | users | table | liubei
(2 rows)

3.3 删除表

xishu=# drop table users;

4. 数据操作

4.1 插入数据

INSERT INTO users (ID,name,mail)
VALUES (1,'guanYu','guanyu@xishu.com');

4.2 查询数据

xishu=# select * from users;
  • 输出
id | name | mail | phone
----+----------------------------------------------------+----------------------------------------------------+-------
1 | guanYu | guanyu@xishu.com |

4.3 删除数据

delete from users where name='guanYu';

5. 用户&权限

  • CREATE USERREATE ROLE的区别
    • CREATE USER:默认LOGIN
    • CREATE ROLE:默认NOLOGIN

5.1 创建用户

  • 创建用户并添加密码
CREATE USER guanyu PASSWORD 'guanyu@123456';

或者

CREATE ROLE guanyunchang LOGIN PASSWORD 'guanyu@123456';
  • 创建管理员用户
CREATE USER kongming SUPERUSER PASSWORD 'kongming@123456';
  • 创建可创建数据库的用户
CREATE USER pangtong CREATEDB;
  • 创建可创建表的用户
CREATE USER pangtong CREATETABLE;
  • 创建可创建用户的用户
CREATE USER fazheng CREATEROLE;

5.2 查看用户

  • 命令
SELECT * FROM pg_roles;
  • 输出
rolname | rolsuper | rolinherit | rolcreaterole | rolcreatedb | rolcanlogin | rolreplication | rolconnlimit | rolpassword | rolvaliduntil | rolbypassrls | rolconfig | oid
---------------------------+----------+------------+---------------+-------------+-------------+----------------+--------------+-------------+---------------+--------------+-----------+-------
pg_signal_backend | f | t | f | f | f | f | -1 | ******** | | f | | 4200
pg_read_server_files | f | t | f | f | f | f | -1 | ******** | | f | | 4569
guanyu | f | t | f | f | t | f | -1 | ******** | | f | | 16403
liubei | t | t | t | t | t | t | -1 | ******** | | t | | 10
pg_write_server_files | f | t | f | f | f | f | -1 | ******** | | f | | 4570
pg_execute_server_program | f | t | f | f | f | f | -1 | ******** | | f | | 4571
fazheng | f | t | t | f | t | f | -1 | ******** | | f | | 16406
pg_read_all_stats | f | t | f | f | f | f | -1 | ******** | | f | | 3375
pg_monitor | f | t | f | f | f | f | -1 | ******** | | f | | 3373
guanyunchang | f | t | f | f | t | f | -1 | ******** | | f | | 16407
pangtong | f | t | f | t | t | f | -1 | ******** | | f | | 16405
pg_read_all_settings | f | t | f | f | f | f | -1 | ******** | | f | | 3374
pg_stat_scan_tables | f | t | f | f | f | f | -1 | ******** | | f | | 3377
kongming | t | t | f | f | t | f | -1 | ******** | | f | | 16404
(14 rows)

5.3 删除用户

drop user guanyunchang ;

5.4 修改用户名

  • 命令
ALTER USER guanyu RENAME TO guanyunchang;
  • 输出
NOTICE: MD5 password cleared because of role rename
ALTER ROLE

如上可知,密码被清空。


5.5 修改密码

  • 命令
ALTER USER guanyunchang PASSWORD 'guanyunchang@123456';

5.6 权限回收

这里不展开写了,可以对应创建用户时的权限

ALTER ROLE fazheng NOCREATEDB ;

6. 用户表权限

SELECTINSERTUPDATEDELETETRUNCATEREFERENCESTRIGGERCREATECONNECTTEMPORARYEXECUTEUSAGE

6.1 用户增加表权限

  • 增加用户表权限

给用户关云长修改user表的权限

GRANT UPDATE ON users TO guanyunchang;
  • 给所有用户查看权限

给所有用户查看users表的权限

GRANT SELECT ON users TO PUBLIC;
  • 给用户所有权限

给所用户关云长user表所有权限

GRANT ALL ON users TO guanyunchang;

6.2 回收用户表权限

REVOKE DELETE ON users FROM guanyunchang ;

posted on   运维开发玄德公  阅读(76)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2022-07-03 docker-compose部署emqx集群(三节点,nginx做TCP的负载均衡)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示