0.前言
之前我们部署了一个单节点的pgsql数据库,当时只是介绍了pgsql的部署过程, 今天我们就来看看pgsql常见的使用命令有哪些。
1.用户相关操作
1.1 创建用户和授权
创建测试用户和测试数据库并赋权
CREATE USER test_user WITH PASSWORD 'test12345';
CREATE DATABASE testdb WITH OWNER test_user ENCODING UTF8;
GRANT ALL PRIVILEGES ON DATABASE testdb TO test_user;
授权连接
GRANT CONNECT ON DATABASE testdb TO test_user;
授权public使用
GRANT USAGE ON SCHEMA PUBLIC TO test_user;
切换到test_db
\c test_db
授予test_db下public下所有表、序列、函数
GRANT SELECT ON ALL TABLES IN SCHEMA public TO test_user;
GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO test_user;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO test_user;
1.2 查看用户
select current_user; // 查看用户
SELECT rolname,rolpassword FROM pg_authid; // 查看所有用户和密码
1.3 修改用户
修改用户信息
ALTER USER postgres WITH PASSWORD 'xxxx@2024'; // 修改密码
ALTER USER postgres RENAME TO admin; // 修改用户名
ALTER USER postgres with VALID UNTIL '2023-01-01 08:00:00'; // 设置密码有效期
ALTER USER postgres with VALID UNTIL 'infinity'; // 去掉密码有效期
1.4 删除用户
create role test with login; // 创建可以登陆的角色role(用户)
grant all on database postgres to test; // 将postgres库所有权限给test
drop role test; // 直接删除会报错
revoke all on database postgres from test; // 需要revoke test所有权限
drop role test; // 之后再删除就可以了
2.库和表相关操作
2.1 元数据相关操作
template1=# \l // 查看系统中现存的数据库
template1=# \q // 退出客户端程序psql
template1=# \c // 从一个数据库中转到另一个数据库中,如template1=# \c sales 从template1转到sales
template1=# \dt // 查看表
template1=# \d tablename // 查看表结构
template1=# \di // 查看索引
template1=# \du // 查看当前 Schema 用户信息
可以看到和mysql相比,元数据相关命令变化还是比较大的。
2.2 创建数据库和表
创建数据库和表
create database testdb; // 创建数据库
\c testdb; // 切换到testdb库
建表语句如下:
CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
\d COMPANY; // 查看表结构,看表是否创建成功