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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

黑色星期五推广策略:TikTok海外网红营销加速品牌增长

在数字化时代,TikTok已经成为了一个具有巨大潜力的社交媒体平台,它不仅让用户分享短视频,还为品牌提供了一个独特的宣传渠道。尤其是在黑色星期五这个全球购物盛宴的时刻,品牌有机会通过TikTok网红营销来提升销售额。本文Nox聚星将…

Linux学习笔记--高级

Shell概述 1,shell概述 是一个c语言编写的脚本语言,是linux和用户的桥梁,用户输入命令交给shell处理。shell,将相应的操作传递给内核(kernel),内核把处理的结果输出给用户 1.1Shell解释器有哪…

CSS 下拉菜单、提示工具、图片廊、计数器

一、CSS 下拉菜单&#xff1a; CSS下拉菜单用于创建一个鼠标移动上去后显示下拉菜单的效果。示例&#xff1a; <style> .dropdown { position: relative; display: inline-block; } .dropdown-content { display: none; position: absolute; background-color: #f9f…

shopee、亚马逊卖家如何安全给自己店铺测评?稳定测评环境是关键

大家都知道通过测评可以提升产品的转化率&#xff0c;提升产品的销量&#xff0c;那么做跨境平台的卖家如何安全的给自己店铺测评呢&#xff1f; 无论是亚马逊、拼多多Temu、shopee、Lazada、wish、速卖通、敦煌网、Wayfair、雅虎、eBay、Newegg、乐天、美客多、阿里国际、沃尔…

研发管理用什么软件?

研发管理用什么软件 研发管理用的软件有&#xff1a;1、JIRA&#xff1b;2、Confluence&#xff1b;3、彩虹PDM软件。彩虹PDM软件 是由南宁市二零二五科技有限公司 自主研发&#xff0c;为用户提供“产品全生命周期管理解决方案”。产品结构管理、BOD管理、零部件管理、工艺管理…

时间序列预测:深度学习、机器学习、融合模型、创新模型实战案例(附代码+数据集+原理介绍)

本文介绍->给大家推荐一下我的时间序列预测专栏&#xff0c;本专栏平均质量分98分&#xff0c;而且本专栏目前免费阅读&#xff0c;其中涉及机器学习、深度学习、融合模型、个人创新模型、数据分析等一系列有关时间序列的专栏&#xff0c;其中的实战的案例不仅有简单的模型类…

宝塔部署QQ机器人,提示OpenSSL 1.0.2k-fips 26 Jan 2017

1、报错预览 Traceback (most recent call last):File "/www/wwwroot/python/bot-one/main.py", line 5, in <module>import requestsFile "/www/wwwroot/python/bot-one/343ae0eb0d491a10a1a00c0621b03ed0_venv/lib/python3.9/site-packages/requests/_…

BP神经网络的数据分类——语音特征信号分类

大家好&#xff0c;我是带我去滑雪&#xff01; BP神经网络&#xff0c;也称为反向传播神经网络&#xff0c;是一种常用于分类和回归任务的人工神经网络&#xff08;ANN&#xff09;类型。它是一种前馈神经网络&#xff0c;通常包括输入层、一个或多个隐藏层和输出层。BP神经网…

VSCode设置中文语言界面(VScode设置其他语言界面)

一、下载中文插件 二、修改配置 1、使用快捷键 CtrlShiftP 显示出搜索框 2、然后输入 configure display language 3、点击 (中文简体) 需要修改的语言配置 三、重启 四、可能出现的问题 1、如果configure display language已经是中文配置&#xff0c;界面仍是英文 解决&a…

C盘清理指南(四)——垃圾清理工具

往期目录集合&#xff1a; C盘清理指南&#xff08;一&#xff09; 内存小的本质原因https://blog.csdn.net/jsl123x/article/details/134273657?spm1001.2014.3001.5501C盘清理指南&#xff08;二&#xff09;——盘符划分操作https://blog.csdn.net/jsl123x/article/detail…

快速了解什么是跳跃表(skip list)

什么是跳跃表&#xff08;skip list&#xff09; 跳跃表&#xff08;Skip List&#xff09;是一种概率性的数据结构&#xff0c;它通过在多层链表的基础上添加“快速通道”来提高搜索效率。跳跃表的效率可以与平衡树相媲美&#xff0c;即在平均和最坏的情况下&#xff0c;查找…

Xcode15更新内容

参考博客&#xff1a; 【WWDC 2023】Xcode 15 更新内容 文章目录 1. xcode15起&#xff0c;项目内创建的图片可以使用点语法访问2.2. UIKit项目也可以使用预览功能3. Xcode新增标签功能4.Log分类 1. xcode15起&#xff0c;项目内创建的图片可以使用点语法访问 2.2. UIKit项目也…

Linux C语言(8)

1、指针 1.1 概念 指针就是地址指针是一种数据类型&#xff0c;是一种保存地址的数据类型int是一种数据类型&#xff0c;是一种保存整数的数据类型 1 2 3 4float是一种数据类型&#xff0c;是一种保存浮点数的数据类型 3.14 1.2 什么是地址 内存分配的最小单位是字节&#xf…

【Leetcode】【数据结构】【C语言】判断两个链表是否相交并返回交点地址

struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {struct ListNode *tailAheadA;struct ListNode *tailBheadB;int count10;int count20;//分别找尾节点&#xff0c;并顺便统计节点数量&#xff1a;while(tailA){tailAtailA->next;c…

flutter开发报错The instance member ‘widget‘ can‘t be accessed in an initializer

文章目录 问题描述问题原因解决方法 问题描述 The instance member ‘widget’ can’t be accessed in an initializer. 问题原因 “The instance member ‘widget’ can’t be accessed in an initializer” 错误是因为在初始化器列表中&#xff08;constructor initializer…

Shell 脚本介绍及应用案例

目录 Shell传递参数 $特殊符号含义 示例&#xff1a; Shell运算符 关系运算符 文件运算符 示例&#xff1a; Shell 流程控制 if判断 格式&#xff1a; 示例&#xff1a; 结果&#xff1a; for循环 格式&#xff1a; 示例&#xff1a; 结果&#xff1a; w…

Webpack 中 Plugin 的作用是什么?常用 plugin 有哪些?

说说webpack中常见的Plugin&#xff1f;解决了什么问题&#xff1f;- 题目详情 - 前端面试题宝典 1、plugin 的作用 Plugin 是一种计算机应用程序&#xff0c;它和主应用程序互相交互&#xff0c;以提供特定的功能。 是一种遵循一定规范的应用程序接口编写出来的程序&#…

如何上传自己的Jar到Maven中央仓库

在项目开发过程中&#xff0c;我们常常会使用 Maven 从仓库拉取开源的第三方 Jar 包。本文将带领大家将自己写好的代码或开源项目发布到 Maven中央仓库中&#xff0c;让其他人可以直接依赖你的 Jar 包&#xff0c;而不需要先下载你的代码后 install 到本地。 注册帐号 点击以…

【MySQL篇】数据库角色

前言 数据库角色是被命名的一组与数据库操作相关的权限&#xff0c;角色是权限的集合。因此&#xff0c;可以为一组具有相同权限的用户创建一个角色&#xff0c;使用角色来管理数据库权限可以简化授权的过程。 CREATE ROLE&#xff1a;创建一个角色 GRANT&#xff1a;给角色授…

进程(3)——进程优先级与环境变量【Linux】

进程&#xff08;3&#xff09;——进程优先级与环境变量【Linux】 一. 进程如何在cpu中如何执行1.1进程在CPU中的特性1.2 寄存器1.2.1 进程的上下文 二. 进程优先级2.1 如何查看进程优先级2.2 修改进程的优先级2.2.1 NI值2.2.2 修改方法 三. 环境变量3.1 什么是环境变量&#…