PostgreSQL 入门教程

PostgreSQL 入门教程

    • 1. 历史背景
    • 2. 概念
    • 3. 特点
    • 4. 用法
      • 4.1 数据库连接
      • 4.2 数据库创建
      • 4.3 表创建
      • 4.4 数据插入
      • 4.5 数据查询
      • 4.6 数据更新
      • 4.7 数据删除
    • 5. 安装步骤
    • 6. 简单示例
    • 7. 扩展
      • 7.1 数据类型
      • 7.2 查询优化
      • 7.3 并发控制
      • 7.4 数据备份和恢复
      • 7.5 扩展性和高可用性
      • 7.6 安全性加固
      • 7.7 社区和生态系统
    • 8. 总结

   当谈到关系型数据库管理系统(RDBMS),PostgreSQL(简称为Postgres)是一个备受赞誉的开源选择。它具有强大的功能和灵活性,被广泛用于各种规模的应用程序和企业级解决方案。本文将为您提供有关PostgreSQL的全面介绍,包括其历史背景、概念、特点、用法、安装步骤、简单的示例和总结。

image.png

1. 历史背景

  PostgreSQL起源于20世纪80年代,最初由加州大学伯克利分校的计算机科学家开发。它基于Ingres项目,并在许多领域进行了改进。PostgreSQL于1995年发布,成为第一个真正的开源关系型数据库。自那时以来,它在全球范围内发展迅速,成为非常受欢迎和广泛使用的数据库。

发展历程

  • 1986年:PostgreSQL的前身是由加州大学伯克利分校(University of California, Berkeley)开发的一个称为Ingres的项目。但是,由于许可证问题,该项目无法继续开发。
  • 1989年:由于Ingres项目的中止,Michael Stonebraker教授和他的研究团队开始开发一个名为Postgres的新项目,目标是构建一个可扩展的关系型数据库系统。
  • 1994年:Postgres项目发布了第一个开源版本,成为了PostgreSQL的起点。PostgreSQL作为一种开源项目,受到了全球开发者社区的广泛关注和贡献。
  • 1996年:PostgreSQL 6.0发布,这是第一个稳定版本,具备许多现代数据库系统所具备的功能,如事务支持、外键约束等。
  • 2000年:PostgreSQL 7.0发布,引入了许多重要的改进,如支持SQL-92标准、触发器、存储过程等。
  • 2005年:PostgreSQL 8.0发布,引入了许多改进,如可扩展性的提升、并发性能的改进、表空间管理等。
  • 2010年:PostgreSQL 9.0发布,引入了诸多新特性,如可复制性、并行查询、外部表、JSON支持等。

  随着时间的推移,PostgreSQL持续发展和改进,成为了一种功能丰富、可靠稳定的开源关系型数据库系统。它在数据完整性、事务支持、并发性能、扩展性等方面具有很高的声誉,并被广泛应用于各种规模和类型的项目和企业中。

2. 概念


在这里插入图片描述

  PostgreSQL是一个对象关系型数据库管理系统ORDBMS),它建立在关系数据库的基础上,并扩展为支持复杂数据类型、事务处理、并发控制和扩展性等功能。它采用SQL作为查询语言,并且支持存储过程、触发器、视图和索引等高级数据库概念。

3. 特点


  1. 可靠性和稳定性:PostgreSQL被广泛认为是一种非常可靠和稳定的数据库系统。它采用了多版本并发控制(MVCC)技术,可以提供高度的数据完整性和并发性能。
  2. 扩展性:PostgreSQL支持水平和垂直两种扩展方式。通过水平扩展,可以在多个服务器上分布数据。通过垂直扩展,可以增加单个服务器的处理能力。
  3. 具备高级功能:PostgreSQL提供了许多高级功能,如复杂查询、窗口函数、递归查询、全文搜索、地理空间数据处理等。它还支持多种数据类型,如JSON、XML、数组、范围类型等。
  4. 完整的事务支持:PostgreSQL支持ACID(原子性、一致性、隔离性、持久性)事务属性,可以确保数据的一致性和完整性。它还支持保存点和回滚操作,使得事务处理更加灵活。
  5. 强大的安全性:PostgreSQL提供了多层次的安全性控制,包括用户和角色管理、访问权限控制、SSL/TLS加密连接等。它还支持加密存储和传输数据,以保护敏感信息的安全。
  6. 可扩展的架构:PostgreSQL的架构设计灵活,可以轻松地集成其他工具和扩展。它支持自定义函数、存储过程和触发器,可以根据需要进行定制和扩展。
  7. 大型社区支持:PostgreSQL拥有活跃的全球开发者社区,提供了广泛的文档、教程和支持资源。这使得用户可以获得快速响应和问题解决方案。
  8. 跨平台支持:PostgreSQL可以运行在多种操作系统上,包括Windows、Linux、macOS等。这使得它适用于各种开发和部署环境。

4. 用法

4.1 数据库连接


  在使用PostgreSQL之前,首先需要安装并配置数据库服务器。然后,您可以使用支持多种编程语言的客户端驱动程序来连接到数据库,并执行操作。

psql -h 主机名/服务器IP -p 端口号 -U 用户名 -d 数据库名

4.2 数据库创建


  使用CREATE DATABASE语句在服务器上创建新数据库。

CREATE DATABASE mydatabase;

4.3 表创建

  使用CREATE TABLE语句创建新表,并指定列名和数据类型。

CREATE TABLE users (id SERIAL PRIMARY KEY,name VARCHAR(50),age INTEGER
);

4.4 数据插入

  使用INSERT INTO语句将数据插入表中。

INSERT INTO users (name, age) VALUES ('John Doe', 30);

4.5 数据查询

  使用SELECT语句从表中检索数据。

SELECT * FROM users;

4.6 数据更新

  使用UPDATE语句更新表中的数据。

UPDATE users SET age = 40 WHERE id = 1;

4.7 数据删除


  使用DELETE语句从表中删除数据。

DELETE FROM users WHERE id = 1;

5. 安装步骤


这里介绍再 windows 环境下安装 PostgreSQL (版本:16.1)

  1. 进入 PostgreSQL 官网,下载压缩包,官网地址:PostgreSQL 官网下载

    image.png

  2. 开始安装

    1. 解压 PostgreSQL 压缩包

      image.png

    2. 在安装目录下创建一个 data 文件夹

      image.png

    3. 初始化数据库,进入bin 目录下并执行初始化命令

      # 初始化数据库
      initdb.exe -D D:\Settings\PostgerSQL\data -E UTF-8 --locale=chs -U postgres -W# 参数详解
      -U postgres -W 注:
      -D :指定数据库簇的存储目录 D:\Settings\PostgerSQL\data
      -E :指定DB的超级用户的用户名postgres –locale:关于区域设置(chinese-simplified-china)
      -U :默认编码格式chs
      -W :为超级用户指定密码的提示
      
    4. 输入新的用户口令,输出成功

      image.png

    5. 启动 PostgreSQL 数据库

      pg_ctl -D D:\Settings\PostgreSQL\data -l logfile start
      

      启动成功
      image.png

  3. 启动数据库

    1. 启动 PostgreSQL 数据库,进入安装目录下 D:\Settings\PostgreSQL\pgAdmin 4\runtime,选择 pgAdmin4.exe 文件运行image.png

      image.png

    2. 使用 PostgreSQL

      1. 创建分组 - 点击左上角的Object->Create -> Server Group…

        image.png

      2. 创建数据库

        image.png
        输入名称
        image.png
        输出host、端口、数据源等
        image.png

      3. 创建表-右键Tables -> create table

        image.png
        至此,PostgreSQL windows 版就安装完成了

6. 简单示例


  以下是一个简单的示例,演示了如何创建和查询数据表:

-- 创建新数据库
CREATE DATABASE mydatabase;-- 使用新数据库
\c mydatabase-- 创建新表
CREATE TABLE users (id SERIAL PRIMARY KEY,name VARCHAR(50),age INTEGER
);-- 插入数据
INSERT INTO users (name, age) VALUES ('John Doe', 30);-- 查询数据
SELECT * FROM users;

7. 扩展

7.1 数据类型


  除了常见的整数、浮点数和字符串等基本数据类型外,PostgreSQL还提供了许多其他复杂的数据类型,如数组、日期/时间、JSONUUID和几何类型等。这些数据类型使您能够更好地适应各种数据需求并提高数据存储的效率。

7.2 查询优化


  PostgreSQL具有强大的查询优化功能,自动选择最佳执行计划以提高查询性能。了解如何编写有效的查询语句,以及如何使用索引、分区表和查询优化器提示等技术,可以显著提高查询速度和响应时间。

7.3 并发控制


  对于高并发应用程序,PostgreSQL提供了多种并发控制机制,如事务隔离级别、悲观锁和乐观锁等。深入了解这些机制,可以确保数据的一致性和并发性,并避免不可预料的数据冲突。

7.4 数据备份和恢复


  数据备份是保护数据安全和灾难恢复的关键。PostgreSQL提供了多种备份和恢复策略,如物理备份、逻辑备份和增量备份等。了解如何创建和恢复备份,以及如何设置自动备份任务,可以帮助您保护数据库的完整性和可用性。

7.5 扩展性和高可用性


  对于需要处理大规模数据和高并发访问的应用程序,PostgreSQL提供了各种扩展性和高可用性解决方案。这包括主从复制、流复制、分布式架构和连接池等技术。学习如何配置和管理这些特性,可以确保您的应用程序具有良好的可扩展性和高可靠性。

7.6 安全性加固

除了基本的身份验证和访问控制外,PostgreSQL还提供了更高级的安全功能,如SSL/TLS加密、行级安全、列级权限和审计跟踪等。了解如何使用这些功能,可以增强数据库的安全性,并确保数据的保密性和完整性。

7.7 社区和生态系统


  PostgreSQL有一个活跃的社区,提供了丰富的文档、论坛和博客等资源。参与社区活动可以与其他开发者交流经验、解决问题,并获取最新的更新和发展。此外,还有许多第三方工具和插件可以扩展PostgreSQL的功能,使其更适应不同的用例和需求。

8. 总结


  PostgreSQL是一个功能强大且灵活的开源关系型数据库管理系统。它具有许多优点,如可靠性、可扩展性、安全性和可定制性。本文提供了有关PostgreSQL的历史背景、概念、特点、用法、安装步骤和简单示例的详细介绍。通过深入了解PostgreSQL,您可以更好地利用它的优势来构建高性能和可靠的应用程序。当您熟悉了PostgreSQL的基本概念和用法后,还有许多更深入的特性和功能可以探索。

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

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

相关文章

pyTorch Hub 系列#2:VGG 和 ResNet

一、说明 在上一篇教程中,我们了解了 Torch Hub 背后的本质及其概念。然后,我们使用 Torch Hub 的复杂性发布了我们的模型,并通过相同的方式访问它。但是,当我们的工作要求我们利用 Torch Hub 上提供的众多全能模型之一时,会发生什么? 在本教程中,我们将学习如何利用称为…

「Verilog学习笔记」4bit超前进位加法器电路

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 分析 timescale 1ns/1nsmodule lca_4(input [3:0] A_in ,input [3:0] B_in ,input C_1 ,output wire CO ,output wire [3:0] …

SpringBoot3+Vue3+Mysql+Element Plus完成数据库存储blob类型图片,前端渲染后端传来的base64类型图片

前言 如果你的前后端分离项目采用SpringBoot3Vue3Element Plus,且在没有OSS(对象存储)的情况下,使用mysql读写图片(可能不限于图片,待测试)。 耗时三天,在踩了无数雷后&#xff0c…

Android BottomSheetDialog中列表滑动冲突问题

前言 使用BottomSheetDialog弹窗时&#xff0c;里面嵌套了一个纵向的RecyclerView&#xff0c;弹出后加载列表数据&#xff0c;发现弹窗不能滑动&#xff0c;产生了滑动冲突。 一、使用步骤 1.布局示例 代码如下&#xff08;示例&#xff09;&#xff1a; <androidx.appco…

Lightroom Classic 2023 v12.4

Lightroom Classic 2023是一款图像处理软件&#xff0c;是数字摄影后期制作的重要工具之一。与其他图像处理软件相比&#xff0c;Lightroom Classic具有以下特点&#xff1a; 高效的图像管理&#xff1a;Lightroom Classic提供了强大的图像管理功能&#xff0c;可以轻松导入、…

网易数帆:云原生向左,低代码向右

网易数帆&#xff0c;前身是网易杭州研究院于2016年孵化的网易云&#xff0c;历经7载探索与沉淀&#xff0c;如今已进化成为覆盖云原生、低代码、大数据和人工智能四大技术赛道的数智化服务提供商&#xff0c;服务于金融、央国企、能源、制造等领域300余家头部企业。 近日&…

怎么录制游戏视频?超简单步骤,一看就会!

随着游戏产业的不断发展&#xff0c;录制游戏视频成为许多玩家记录游戏过程、分享游戏体验的重要方式。但是很多人不知道怎么录制游戏视频&#xff0c;其实一款好的录屏软件可以使游戏视频的录制变得更加简单、高效。本文将介绍两种录制游戏视频的方法&#xff0c;这两种方法各…

VUE组件存活,异步组件

当使用 来在多个组件间作切换时&#xff0c;被切换掉的组件会被卸载。我们可以通过组件强制被切换掉的组件仍然保持“存活”的状态。 组件切换 <button click“changeComponentHandle”>切换 在大型项目中&#xff0c;我们可能需要拆分应用为更小的块&#xff0c;并…

【LeetCode:307. 区域和检索 - 数组可修改 | 树状数组 or 线段树】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

阿里云国际站:云备份

文章目录 一、阿里云云备份的概念 二、云备份的优势 三、云备份的功能 四、云备份的应用场景 一、阿里云云备份的概念 云备份作为阿里云统一灾备平台&#xff0c;是一种简单易用、敏捷高效、安全可靠的公共云数据管理服务&#xff0c;可以为阿里云ECS整机、ECS数据库、文件…

马达加斯加市场开发攻略,收藏一篇就够了

马达加斯加是位于非洲南部一个国家&#xff0c;虽然经济是比较落后的一个国家&#xff0c;但是一直以来跟中国的关系都还不错&#xff0c;生产生活资料也是比较依赖进口的&#xff0c;市场潜力还是不错的。今天就来给大家分享一下马达加斯加的相关攻略。大家点赞收藏关注慢慢看…

如何成功创建百度百科词条?教你从零开始创建自己的百度百科【建议收藏】

百度百科是一个开放的网络百科全书&#xff0c;用户可以自由编辑和贡献内容。如果你想创建一个百度百科页面&#xff0c;需要做好以下准备&#xff1a; 1.确定主题&#xff1a;选择一个你熟悉或者感兴趣的主题&#xff0c;确保该主题在百度百科上还没有相关的页面。 2.收集资…

邦芒攻略:求职前先要明确自己的职业定位

求职前先要明确自己的职业定位&#xff0c;生活中&#xff0c;许多人在求职的时候&#xff0c;还是对自己的想要找的职位犹豫不决&#xff0c;想要找到符合自己的职位&#xff0c;下面是求职前先学会定位你想要的职业内容&#xff01; ​ ​一、心理因素理想职业之基础 性格…

7天入门python系列之第六天python面向对象编程

第六天主要是学习Python的面向对象编程 编者打算开一个python 初学主题的系列文章&#xff0c;用于指导想要学习python的同学。关于文章有任何疑问都可以私信作者。对于初学者想在7天内入门Python&#xff0c;这是一个紧凑的学习计划。但并不是不可完成的。第六天开始面向对象…

【Linux】Centos7 shell实现MySQL5.7 tar 一键安装

&#x1f984; 个人主页——&#x1f390;个人主页 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341; 感谢点赞和关注 &#xff0c;每天进步一点点&#xff01;加油&#xff01;&…

数据可视化新秀 DataEase 可否替代 Tableau?

每年数以千计的企业在数据可视化工具中选择 Tableau&#xff0c;但是你知道还有一款强大的工具DataEase&#xff0c;可能会成为你的更佳选择吗&#xff1f;下面是 Tableau 与 DataEase 的功能对比&#xff1a; 1 功能对比 Tableau DataEase 安装包支持平台 Windows MacOS Li…

3D虚拟情景实训教学系统在陪同口译课堂中的应用

一、虚拟情景实训教学系统的作用 1. 高度仿真的场景&#xff1a;虚拟情景实训教学系统可以模拟各种真实的口译场景&#xff0c;如商务谈判、会议讨论、文化交流等&#xff0c;让学生身临其境地感受口译工作的实际需求。 2. 丰富的实践机会&#xff1a;虚拟情景实训教学系统提…

数据结构线性表——带头双向循环链表

前言&#xff1a;小伙伴们好久不见啦&#xff0c;上篇文章我们一起学习了数据结构线性表其一的单链表&#xff0c;了解了单链表的不少好处&#xff0c;但是不可能有完美的数据结构&#xff0c;就算是单链表&#xff0c;也会有很多缺点。 那么今天这篇文章&#xff0c;我们就来…

【debug】解决Kali虚拟机开机黑屏,左上角光标一直闪动无法开机问题

做网络攻防实验时&#xff0c;突然Kali无法打开&#xff0c;遇到这个问题。。。。。。 遇到的问题 突然kali虚拟机变成如下黑屏&#xff0c;无法开机&#xff0c;左上角光标闪动&#xff0c;重启无效。 解决办法 在上图界面&#xff0c;按Ctrl F3&#xff08;不同电脑快捷键…