pgsql笔记

p.s.这是萌新自己自学总结的笔记,如果想学习得更透彻的话还是请去看大佬的讲解

目录

pgsql是一个nosql数据库,使用广泛

语法

sql 复制代码
# 建库
create database db;

# 查看数据库列表
\l

# 切换数据库
\c

# 删除数据库   需要当前会话不在当前库
drop database db1;

# 在shell中直接建库
createdb -U postgres mydb
sql 复制代码
# 建表
create table test(id serial primary key, name varchar(16) not null);

# 插入数据
insert into test(name) values('qill7');

# 查记录
select * from test;

# 查看当前库下的所有表
\d

# 看表结构
\d test

Schema

在 mysql 中,Schema 就是库

但是在 pg 中,Schema 不太一样,可以理解为命名空间,在库的下面又套了一层

使用模式(Schema)的优势:

允许多个用户使用一个数据库并且不会互相干扰

命名空间

将数据库对象组织成逻辑组以便更容易管理

第三方应用的对象可以放在独立的模式中,这样他们就不会与其他对象的名称发生冲突

sql 复制代码
# 创建模式
CREATE SCHEMA schema_name;
# 创建表到指定模式
CREATE TABLE schema_name.table_name (
    column_name data_type
);
# 切换模式
SET search_path TO schema_name;
# 查看模式列表
\dn;
# 删除模式
DROP SCHEMA schema_name CASCADE;

数据备份

sql 复制代码
# 导出数据
pg_dump -U postgres db_name > dbname.sql
# 恢复数据 需要先创建数据库
psql -f xx.sql -U postgres db

用户操作

sql 复制代码
# 创建用户并设置密码
create user u1 password 'pwd';

# 创建一个创建用户
create user u2 superuser password 'pwd';

# 创建一个可以建库的用户
create user u3 createdb password 'pwd';

# 查看用户列表
\du

# 赋予权限 赋予用户对 xx 数据库中 public 模式的所有权限:
GRANT ALL PRIVILEGES ON DATABASE db_name TO username;

# 取消权限
REVOKE ALL PRIVILEGES ON DATABASE db_name FROM username;

# 删除用户
DROP USER username;
相关推荐
SomeOtherTime1 小时前
Postgresql触发器实现对表的日志审计
数据库·postgresql
这个DBA有点耶1 小时前
Oracle 迁移金仓兼容性评估指南:5 大维度深度拆解
数据库·oracle·架构
疯狂打码的少年2 小时前
【数据结构】图的遍历:深度优先搜索(DFS)
数据结构·笔记·算法·深度优先
添砖java‘’3 小时前
Redis中常用数据结构
数据库·redis·缓存
用户3169353811833 小时前
MyBatis Mapper XML 文件解读
数据库
这个DBA有点耶3 小时前
数据库迁移灰度验证:从读流量到双写再到全量切换的完整路径
数据库·mysql·架构
智者知已应修善业4 小时前
【51单片机数码管逐位显示1-8余位不亮】2024-10-23
c语言·经验分享·笔记·嵌入式硬件·51单片机
Wang's Blog4 小时前
PostgreSQL笔记16: 索引基础——概念、类型、创建与最佳实践
数据库·笔记·postgresql
Suhan424 小时前
SQLAlchemy的两种查询query()查询、stmt=select()查询
数据库·python·sql·oracle
ysa0510304 小时前
c++常用自带函数用法与注意
c++·笔记·算法