PostgreSQL的基本使用整理

本文详细介绍了PostgreSQL数据库的各种操作,包括创建和删除数据库、管理表、使用Schema、备份策略以及用户权限管理。内容涵盖数据类型、表操作如主键和外键约束,以及模式的概念和优势。此外,还提供了备份数据库的方法和用户管理命令。
摘要由CSDN通过智能技术生成

1、数据库操作;

(1)创建数据库

create database mydb;

(2)查看所有数据库

\list(或\l)

(3)切换当前数据库

\c mydb

(4)删除数据库

drop database <dbname>

2、表操作:

创建数据库时每列都必须使用数据类型。PostgreSQL主要有三类数据类型:

  • 数值数据类型
  • 字符串数据类型
  • 日期/时间数据类型

数值 常见的数据类型包括:

名字存储长度描述范围
smalint2字节小范围整数-32768 到 +32767
integer4字节常用的整数-2147483648 到 +2147483647
bigint8字节大范围整数-9223372036854775808 到 +9223372036854775807
decimal可变长用户指定的精度,精确小数点前131072位;小数点后16383位
numeric可变长用户指定的精度,精确小数点前131072位;小数点后16383位
real4字节可变精度,不精确6位十进制数值精度
double8字节可变精度,不精确15位十进制数字精度

字符串 类型包括:

  • char(size),character(size):固定长度字符串,size 规定了需存储的字符数,由右边的空格补齐;
  • varchar(size),character varying(size):可变长度字符串,size 规定了需存储的字符数;
  • text:可变长度字符串。

日期/时间 的数据类型有:

  • timestamp:日期和时间;
  • data:日期,无时间;
  • time:时间;

其他数据类型还有 布尔值boolean(true或false),货币数额money 和 几何数据等。


(1)创建表:
create table test(
    id int,
    body varchar(100) 
);

(2)在表中插入数据:

insert into test(id,body) values(1,'hello');

(3)查看当前数据库下所有表:

\d

(4)查看表结构,相当于desc:

\d test

(5)修改表名:

alter table test rename to t2;

(6)删除表 [如果存在]:

drop table [if exists] test;

(7)主键约束:

id varchar(20) primary key 
primary key(id)

(8)外键约束:

create table tb_user(
   userid varchar(20),
   classid varchar(20),
   foreign key(classid) references class(classid)
);

(9)唯一约束;

name varchar(20) unique

(10)非空约束:

name varchar(20) not null

(11)默认值:

name varchar(20) default '帅哥'

3、Schema(模式):

PostgreSQL模式(schema)可以看着是一个 表的集合
一个模式可以包含视图、索引、数据结构、函数和操作符等。
相同的对象名称可以被用于不同的模式中而不会出现冲突。

使用模式的优势:

  • 允许多个用户使用一个数据库并且不会互相干扰
  • 将数据库对象组织成逻辑组以便更容易管理
  • 第三方应用的对象可以放在独立的模式中,这样他们就不会被其他对象的名称发生冲突。

(模式类似于操作系统层的目录,但是模式不能嵌套)

# 创建 schema:
create schema myschema;

create table myschema.company(
  id int not null,
  name varchar(20) not null,
  age int 
);

# 删除schema:
drop schema myschema;

# 删除一个模式以及其中包含的所有对象:
drop schema myschema cascade;

4、如何备份PG数据库:

(1)单数据库:pg_dump、psql
(必须对要备份的数据库具有读取权限的用户身份允许此命令)

以 postgres 用户身份登录:

sudo su - postgres

通过运行以下命令将数据库的内容存储到文件中。替换 dbname 为要备份的数据库名称。

pg_dump dbname > dbname.bak

生成的备份文件 dbname.bak 可以用 scp 传输到另一台主机,也可以存储在本地。
使用 psql 恢复数据库:

psql test < dbname.bak

备份文件有几种选择:

  • *.bak:压缩二进制格式
  • *.sql:明文转储
  • *.tar:tarball

(2)所有数据库

由于 pg_dump 一次只创建一个数据库的备份,因此它不会存储有关数据库角色或其他群集范围配置的信息。要存储此信息并同时备份所有数据库,使用 pg_dumpa11

创建备份文件:

pg_dumpa11 > pg_backup.bak

从备份还原所有数据库:

psql -f pg_backup.bak postgres

5、用户操作:

(1)创建用户并设置密码:(用户:test 密码:test)

create user test with password 'test';

(2)修改用户密码:

alter user test with password '123';

(3)数据库授权:

将数据库 mydb 权限授予 test

grant all privileges on database mydb to test;

但此时用户还是没有读写权限,需要继续授权表:(该语句必须在所要操作的数据库里执行)

grant all privileges on all tables in schema public to xxx;

(4)移除指定账户指定数据库所有权限

revoke all privileges on database mydb from test;

(5)删除用户:

drop user test;

(6)查看用户:

/du

6、常用命令总结:

  • \password(设置密码)
  • \q(退出)
  • \h:查看SQL命令的解释,比如 \h select
  • \?:查看psql列表
  • \l:列出所有数据库
  • \c [database_name]:切换其他数据库
  • \d:列出当前数据库的所有表格
  • \d [table_name]:列出某一张表的结构
  • \du:列出所有用户
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值