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;