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.mzph.cn/news/136855.shtml

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

相关文章

Linux学习笔记之五(父子进程、孤儿进程、僵尸进程、守护进程)

Linux 1、进程1.1、进程的六种状态1.2、创建子进程1.3、添加子进程任务1.4、孤儿进程、僵尸进程、守护进程1.4.1、避免僵尸进程1.4.2、创建守护进程1.4.3、杀死守护进程 1.5、综合练习 1、进程 进程可以简单的理解为一个正在执行的程序,它是计算机系统中拥有资源和…

小红书母婴博主投放技巧是什么,怎么避免无用功

如今,随着互联网的发展,母婴博主和社交媒体成为了很多妈妈们,获取育儿知识和建立社交圈的重要途径。今天为大家分享下小红书母婴博主投放技巧是什么,怎么避免无用功! 一、优质的母婴博主在哪里 我们都知道,…

数据中台之数据分析

效果界面 技术方案 Notebook集成 在您的数据平台上,创建一个能够与Jupyter Notebook通讯的服务。通过Jupyter Notebook的HTTP API与Notebook实例进行交互,执行代码、获取输出等。用户界面 在数据开发/数据分析的代码框右上方,添加一个机器人样式的图标,用户点击后可以调起…

verdi如何打开时可以加载配置比如字体

打开tcl使能 找到配置字体的命令 其实其他有需要的文件配置都可以在这里找到对应的指令 存储文件 新建verdi001.tcl文件 输入想要调整的字体以及大小 verdiSetFont -font "Bitstream Vera Sans" -size "18" verdiSetFont -monoFont "Courier&q…

多篇论文介绍-摘要

论文地址https://arxiv.org/pdf/2301.10051.pdf 目录 01CIEFRNet:面向高速公路的抛洒物检测算法 02改进 YOLOv5 的 PDC 钻头复合片缺损识别 03 基于SimAM注意力机制的DCN-YOLOv5水下目标检测 04 基于改进YOLOv7-tiny 算法的输电线路螺栓缺销检测 ​编辑05 基于改进Y…

亚马逊鲲鹏系统能做什么

亚马逊鲲鹏系统是一款能绕过亚马逊智能检测,完全模拟人类真实行为,通过模拟真实的人流量来帮助你提升你的产品排名,让你的产品出现在搜索首页,从而快速提高你的销售业绩的营销工具! 主要的功能有批量注册买家号、AI智能…

新生儿疝气:原因、科普和注意事项

引言: 新生儿疝气是一种在婴儿中相对较常见的状况,很多新父母可能对这一现象感到困惑和焦虑。疝气发生时,内腹腔的一部分可能穿过腹壁的弱点,导致腹部出现凸起。本文将科普新生儿疝气的原因,提供相关信息,…

计算机基础知识48

web应用程序 # Django框架是一款专门用来开发web应用的框架 # Web应用程序是一种可以通过浏览器访问的应用程序, B/S架构 案例:淘宝网、京东网... # 应用程序有两种模式: C/S:客户端/服务器端程序,这类程序一般独立运行 B/S&#xff1…

数据结构与算法C语言版学习笔记(5)-串,匹配算法、KMP算法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、串的定义二、串的存储结构1.顺序结构2.链式结构 三、串的朴素的模式匹配算法(暴力匹配算法)1.背景2.假设我们要从下面的主串 S"…

“最强”机器学习辅助!利用自然语言让机器人更好地理解开放性世界

原创 | 文 BFT机器人 想象一下,你正在国外拜访朋友,打开他的冰箱看看有没有能够制作一顿美味早餐的食材。最初,冰箱里的许多物品对你来说都很陌生,每个物品的包装都是你不熟悉的。你开始试图理解每个物品的用途,并根据…

万界星空科技MES系统软件体系架构及应用

MES系统是数字化车间的核心。MES通过数字化生产过程控制,借助自动化和智能化技术手段,实现车间制造控制智能化、生产过程透明化、制造装备数控化和生产信息集成化。生产管理MES系统主要包括车间管理系统、质量管理系统、资源管理系统及数据采集和分析系统…

Ubuntu开机无法进入系统,文件根系统目录空间不足导致?

前言: 自己电脑上装的是Win11和Ubuntu20双系统,平时就是切换着用。 偶然有次,Ubuntu提示文件根系统目录空间不足,自己没在意。 结果下次开机进入Ubuntu时候,芭比Q了。。进不了系统 这样的事情发生很多次了,…

学者观察 | 数字经济中长期发展中的区块链影响力——清华大学柴跃廷

导语 区块链是一种全新的分布式基础架构与计算范式,既能利用非对称加密和冗余分布存储实现信息不可篡改,又可以利用链式数据结构实现数据信息可溯源。当前,区块链技术已成为全球数据交易、金融结算、国际贸易、政务民生等领域的信息基础设施…

事务(本地事务与分布式事务)

事务 1 本地事务1.1 事务的特性1.2 事务的隔离级别1.3 事务的传播属性 2 分布式事务2.1 分布式事务基础2.1.1 CAP定理2.1.2 BASE定理 2.2 分布式事务的解决方案2.2.1 两阶段提交(2PC)2.2.2 TCC补偿式事务2.2.3 消息事务最终一致性 1 本地事务 1.1 事务的…

module ‘torch‘ has no attribute ‘_six‘

主要问题是torchvision的问题 在122服务器上的scvi-env2环境中 import torch import torch.nn as nnimport numpy as npfrom tqdm import tqdm from torchvision.utils import save_image, make_grid # Model Hyperparametersdataset_path ./datasetscuda True DEVICE tor…

httpRequest库代码示例

python # 首先导入所需的库 library(httpRequest) # 设置主机名和端口号 proxy_host <- proxy_port <- # 使用httpRequest库的get函数下载图片 response <- httpRequest(", proxyHost proxy_host, proxyPort proxy_port) # 确保请求成功 if (response$sta…

腾讯云真的是良心云!服务器带宽、CPU、硬盘IO性能大揭秘!

本文将通过对腾讯云服务器CVM S5 4核配置的云服务器进行测试&#xff0c;来评估其在带宽、CPU和硬盘IO性能方面的表现。 在云服务器的并发处理中&#xff0c;带宽是一个重要的因素。经过测试&#xff0c;腾讯云的带宽网络表现非常出色&#xff0c;能够跑满带宽&#xff0c;同时…

表象变换与矩阵元

表象变换 一维粒子哈密顿量 表象中的矩阵元 态的表象变换 不难证明 算符的表象变换 坐标表象 Non-denumerable basis

人车实时精准管控!北斗让换流站作业更安全

换流站是高压直流输电系统的核心组成部分&#xff0c;对促进电网稳定运行、保障电力行业的可持续发展有着重要作用。长期以来&#xff0c;随着电网主变改扩建设工程的开展&#xff0c;站内作业人员安全管控压力随之增大&#xff0c;仅依靠传统的“人盯人”和“自主”管控模式较…

Java设计模式之迭代器模式

定义 提供一个对象来顺序访问聚合对象中的一系列数据&#xff0c;而不暴露聚合对象的内部表示。 结构 迭代器模式主要包含以下角色&#xff1a; 抽象聚合角色&#xff1a;定义存储、添加、删除聚合元素以及创建迭代器对象的接口。具体聚合角色&#xff1a;实现抽象聚合类&a…