02-PostgreSQL的基本使用

一、数据库操作

①: 登录到数据库

psql -U postgres -d postgres -h 127.0.0.1

image.png

②:查看所有数据库

\l

image.png

③: 创建数据库

# 创建一个名为 mydb 的数据库
create database mydb;

image.png

④:切换数据库

# \c 数据库名
\c mydb

image.png

⑤:删除数据库

# 删除前 先确保数据库没有被连接
drop database mydb;

image.png

二、数据库表操作

①:数值类型

image.png

image.png

image.png

②:数据表操作

1. 创建表

1. PostgreSQL中三种自增列sequence,serial,identity区别

image.png

2. 创建表

create table test(id serial primary key, name varchar(255));

image.png

2. 在表中插入数据

insert into test(name) values('Anne');

image.png

3. 查看当前数据库下所有的表

\d

image.png

4. 查看表结构,相当于desc

\d test(表面)

image.png

5. 查询所有数据

image.png

三、 Schema

①:介绍

PostgreSQL 模式(Schema)可以理解为是一个表的集合(类似于Oracle的表空间概念)。

一个模式可以包含视图、索引、数据类型、函数和操作符等。

相同的对象名称可以被用于不同的模式中而不会出现冲突,例如 schema1 和 myschema 都可以包含名为 mytable 的表。

使用模式的优势:

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

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

②:创建一个新的Schema

1. 创建前(有一个默认的public)并且之前创建的test表也在其中

image.png

2. 创建一个新的Schema

create schema newSchema;

image.png

image.png

3. 在新的Schema中在创建一张表test

create table newSchema.test(id serial primary key, name varchar(255));

image.png

image.png

四、如何备份PostgreSQL数据库

如果您在生产环境中使用PostgreSQL,请务必采取预防措施以确保用户的数据不会丢失。

①:必看

1. 登录

image.png

2. 注意 要在shell控制台中执行操作而不是数据库控制台

image.png

②:单数据库

PostgreSQL提供了pg_dump实用程序来简化备份单个数据库的过程。必须以对要备份的数据库具有读取权限的用户身份运行此命令。

1. 备份

image.png

备份格式有几种选择:

  • *.bak: 压缩二进制格式

  • *.sq1: 明文转储

  • *.tar: tarball

#备份数据库
$ pg_dump -U postgres -f /tmp/postgres.sql postgres(导出postgres数据库保存为postgres.sq1)
$ pg_dump -U postgres -f /tmp/postgres.sql-t test postgres(导出postgres数据库中表test的数据)
$ pg_dump -U postgres -F t -f /tmp/postgres.tar postgres(导出postgres数据库以tar形式压缩保存为postgres.tar)#恢复数据库
$ psql -U postgres -f /tmp/postgres.sql bk01(恢复postgres.sq1数据到bk01数据库)
#pg_restore--从pg_dump创建的备份文件中恢复PostgreSQL数据库,用于恢复由pg_dump转储的任何非纯文本格式中的PostgreSQL数据库。
$ pg_restore-Upostgres-dbk01/tmp/postgres.tar(恢复postgres.tar数据到bk01数据库)

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

    # 通过-f 指定文件输出目录pg_dump -f /usr/local/src/mydb.sql mydb;

image.png

image.png

2. 恢复

1. 删除已经备份的mydb数据库

image.png

2. 创建一个新的空数据库(mydb2)

image.png

3. 恢复数据库(-f 指定备份的文件路径)

 psql -U postgres -f /usr/local/src/mydb.sql mydb2;

image.png

可以看到数据恢复成功

image.png

③:所有数据库

五、用户操作

#查看用户
\du#创建用户并设置密码
CREATE USER 'username' WITH PASSWORD 'password' ;
CREATE USER test WITH PASSWORD 'test';#修改用户密码
$ ALTER USER ' username' WITH PASSWORD ' password' ;#数据库授权,赋予指定账户指定数据库所有权限
$ GRANT ALL PRIVILEGES ON DATABASE ' dbname' TO ' username' ;#将数据库mydb权限授权于test
GRANT ALL PRIVILEGES ON DATABASE mydb TO test;#但此时用户还是没有读写权限,需要继续授权表
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO xxx;#注意,该sq1语句必须在所要操作的数据库里执行
#移除指定账户指定数据库所有权限
REVOKE ALL PRIVILEGES ON DATABASE mydb from test#删除用户
drop user test

①:创建用户并设置密码

1. 注意: 先切换到需要操作的数据库里

image.png

2. 查看所有用户

image.png

2. 创建用户

create user coke with password 'coke';

image.png

②:修改用户密码

1. 修改密码

alter user coke with password 'new_coke';

image.png

2. 使用新密码登录

psql -U coke -d mydb2 -h 127.0.0.1;

image.png

3. 执行查询sql

新创建的用户没有任何权限,需要进行权限授权

image.png

③:数据库授权

1. 数据库授权,赋予指定账户指定数据库所有权限

grant all privileges on database mydb2 to coke;

image.png

2. 但此时用户还是没有读写权限,需要继续授权表

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

image.png

3. 测试(已经有权限了)

image.png

④:移除用户数据表权限

revoke all privileges on database mydb2 from coke;

image.png

④:移除用户数据库权限

revoke all privileges on database mydb2 from coke;

image.png

⑤:删除用户

drop user coke;

image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/187444.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安卓RadioButton设置图片大小

RadioButton都不陌生,一般我们都会设置图片在里面,这就涉及一个问题,图片的大小。如果图片过大,效果很不理想。搜了很多方法,都不理想。无奈只能自己研究了 代码如下: 1,一个简单的 RadioButt…

html与django实现多级数据联动

html与django实现多级数据联动 1、流程 1、进入页面后先获取年级数据 2、选择年级后获取院级数据 3、选择院级后获取层次数据 4、选择层次数据后获取专业数据 2、html代码 <p style"margin-top: 10px;"><label>年级</label><select id"…

认识计算机-JavaEE初阶

文章目录 一、计算机的发展史二、冯诺依曼体系&#xff08;Von Neumann Architecture&#xff09;三、CPU基本工作流程3.1 算术逻辑单元&#xff08;ALU&#xff09;3.2 寄存器&#xff08;Register)和内存&#xff08;RAM&#xff09;3.3 控制单元&#xff08;CU&#xff09;3…

深入理解 TCP;场景复现,掌握鲜为人知的细节

握手失败 第一次握手丢失了&#xff0c;会发生什么&#xff1f; 当客户端想和服务端建立 TCP 连接的时候&#xff0c;首先第一个发的就是 SYN 报文&#xff0c;然后进入到 SYN_SENT 状态。 在这之后&#xff0c;如果客户端迟迟收不到服务端的 SYN-ACK 报文&#xff08;第二次…

Apache Airflow (四) :Airflow 调度shell命令

&#x1f3e1; 个人主页&#xff1a;IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 &#x1f6a9; 私聊博主&#xff1a;加入大数据技术讨论群聊&#xff0c;获取更多大数据资料。 &#x1f514; 博主个人B栈地址&#xff1a;豹哥教你大数据的个人空间-豹…

Delphi 12 重返雅典 (RAD Studio 12)

RAD Studio 12 的新功能&#xff1a; 以最新的平台版本为目标&#xff01; RAD Studio 12 提供对 iOS 17&#xff08;仅适用于 Delphi&#xff09;、Android 14 和 macOS Sonoma 的官方支持。RAD Studio 12 还支持 Ubuntu 22 LTS 和 Windows Server 2022。 Delphi 源代码的多…

<蓝桥杯软件赛>零基础备赛20周--第5周--杂题-2

报名明年4月蓝桥杯软件赛的同学们&#xff0c;如果你是大一零基础&#xff0c;目前懵懂中&#xff0c;不知该怎么办&#xff0c;可以看看本博客系列&#xff1a;备赛20周合集 20周的完整安排请点击&#xff1a;20周计划 每周发1个博客&#xff0c;共20周&#xff08;读者可以按…

一题三解(暴力、二分查找算法、单指针):鸡蛋掉落

涉及知识点 暴力、二分查找算法、单指针 题目 给你 k 枚相同的鸡蛋&#xff0c;并可以使用一栋从第 1 层到第 n 层共有 n 层楼的建筑。 已知存在楼层 f &#xff0c;满足 0 < f < n &#xff0c;任何从 高于 f 的楼层落下的鸡蛋都会碎&#xff0c;从 f 楼层或比它低的…

3DMAX汽车绑定动画模拟插件MadCar疯狂汽车使用教程

3DMAX汽车绑定动画模拟插件MadCar疯狂的汽车&#xff0c;用于通过模拟控制来快速装配轮式车辆及其动画。这个新版本允许装配任何数量的车轮的车辆&#xff0c;以及包括摩托车在内的任何相互布置。还支持任意数量的拖车。 每个车轮和悬架都有简化的行为设置以及微调&#xff0c…

【微服务专题】手写模拟SpringBoot

目录 前言阅读对象阅读导航前置知识笔记正文一、工程项目准备1.1 新建项目1.1 pom.xml1.2 业务模拟 二、模拟SpringBoot启动&#xff1a;好戏开场2.1 启动配置类2.1.1 shen-base-springboot新增2.1.2 shen-example客户端新增启动类 三、run方法的实现3.1 步骤一&#xff1a;启动…

RAW图像处理软件Capture One 23 Enterprise mac中文版功能特点

Capture One 23 Enterprise mac是一款专业的图像处理软件&#xff0c;旨在为企业用户提供高效、快速和灵活的工作流程。 Capture One 23 Enterprise mac软件的特点和功能 强大的图像编辑工具&#xff1a;Capture One 23 Enterprise提供了一系列强大的图像编辑工具&#xff0c;…

TensorFlow学习笔记--(1)张量的随机生成

张量的生成 如何判断一个张量的维数&#xff1a;看张量的中括号有几层 0 1 2 &#xff1a;零维数列 [2 4 6] : 一维向量 [ [1 2 3] [4 5 6] ] : 二维数组 两行三列 第一行数据为 1 2 3 第二行数据为 4 5 6 以此类推 n维张量有n层中括号 tf.zeros(%指定一个张量的维数%) 生成一…

Django如何创建表关系,Django的请求声明周期流程图

【1】表与表之间的关系 一对一 左表的一条记录对应右表的一条记录&#xff0c;反之亦然 多对一 左表的一条记录对应右表的多条记录&#xff0c;反之不成立 多对多 左表的一条记录对应右表的多表记录&#xff0c;反之成立 【2】django中创建表关系 class Book(models.Model):t…

canvas 曲线图 双数值轴 山峰图

下面的代码本人亲自撰写&#xff0c;原生不易啊。 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>D…

CSS3 用户界面、图片、按钮

一、CSS3用户界面&#xff1a; 在CSS3中&#xff0c;增加了一些新的用户界面特性来调整元素尺寸、框尺寸和外边框。CSS3用户界面属性&#xff1a;resize、box-sizing、outline-offset。 1、resize&#xff1a; resize属性指定一个元素是否应该由用户去调整大小。 <style…

Azure 机器学习 - 有关为 Azure 机器学习配置 Kubernetes 群集的参考

目录 受支持的 Kubernetes 版本和区域建议的资源计划ARO 或 OCP 群集的先决条件禁用安全增强型 Linux (SELinux)ARO 和 OCP 的特权设置 收集的日志详细信息Azure 机器学习作业与自定义数据存储连接支持的 Azure 机器学习排斥和容许最佳实践 通过 HTTP 或 HTTPS 将其他入口控制器…

DAY50 309.最佳买卖股票时机含冷冻期 + 714.买卖股票的最佳时机含手续费

309.最佳买卖股票时机含冷冻期 题目要求&#xff1a;给定一个整数数组&#xff0c;其中第 i 个元素代表了第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下约束条件下&#xff0c;你可以尽可能地完成更多的交易&#xff08;多次买卖一支股票&#xff09;: 你不…

vue2+elementui使用MessageBox 弹框$msgbox自定义VNode内容:实现radio

虽说实现下面的效果&#xff0c;用el-dialog很轻松就能搞定。但是这种简单的交互&#xff0c;我更喜欢使用MessageBox。 话不多说&#xff0c;直接上代码~ <el-button type"primary" size"mini" click"handleApply()" >处理申请</el-b…

【Git】Git图形化工具SSH协议IDEA集成Git的使用讲解

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《Git》。&#x1f3af;&#x1f3af; &#x1f449…

git命令之遭遇 ignore罕见问题解决

我先来讲讲背景 我的一些文件在ignore了&#xff0c;不会被提交到远程仓库&#xff0c;这时候我的远程仓库中是没有这几个文件的&#xff0c;这时候我如果使用 git reset 的话这时候除了那几个 ignore 的文件以外都被更新的&#xff0c;但是如果我不需要这几个被 ignore 的文件…