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;
相关推荐
志尊宝11 小时前
Vue3 零基础每日笔记(009):watch 侦听器——数据一变就“做事“
vue.js·笔记·缓存
SelectDB11 小时前
Apache Doris 多表 Join 优化实战:从 CBO 到 Colocate Join 配置(附 SQL)
大数据·数据库·数据分析
噜~噜~噜~11 小时前
操作系统笔记-3.1.1.4 (选修)覆盖与交换
笔记·操作系统
志尊宝12 小时前
Vue3 零基础每日笔记(011):生命周期钩子——在正确的时间做正确的事
javascript·vue.js·笔记
tachibana212 小时前
什么是 Function Calling ?
数据库·人工智能·ai·llm·agent
全栈弄潮儿²⁰²⁴12 小时前
AI Agent 开发实战(7):如何接入搜索和数据库工具?
数据库·人工智能·ai·chatgpt·oracle·agent·ai编程
砚底藏山河12 小时前
并发与限频工程:把20只的2秒压到0.5秒不封号(魔码量化实战 #03)
java·开发语言·数据库·python·金融
prog_610312 小时前
【笔记】用cursor手搓cursor(十)
人工智能·笔记·大语言模型·agent
云雀衔光12 小时前
MCP 协议全景:为什么它是 AI 连接工具的「USB-C」
java·开发语言·数据库·人工智能·ai编程
天衍四九-13 小时前
MySQL有哪些索引
数据库·mysql