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的基本概念和用法后,还有许多更深入的特性和功能可以探索。

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

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

相关文章

【mongoDB】mongoDB安装

1.进入页面 https://www.mongodb.com/download-center/community 一路next就行。选择Custom 可以自定义安装路径

运动蓝牙耳机什么牌子的好?2023年运动蓝牙耳机推荐

​运动健身已经成为当下最热门的运动健康项目,越来越多的人开始加入到这个行列中来。而在运动的过程中,佩戴一款适合自己的运动耳机听歌,不仅可以增加运动的乐趣,还能帮助我们更好地集中注意力,提高运动效果。然而&…

wireshark抓包并进行Eigrp网络协议分析

路由协议 Eigrp ​ EIGRP:Enhanced Interior Gateway Routing Protocol 即 增强内部网关路由协议。也翻译为 加强型内部网关路由协议。 EIGRP是Cisco公司的私有协议(2013年已经公有化)。 EIGRP结合了链路状态和距离矢量型路由选择协议的Cisco专用协议&a…

万物皆数学——用matlab求解二阶微分方程

一、背景 毕达哥拉斯的“万物皆数”哲学观点表达了一个理念,即宇宙万物都可以通过数学语言来描述,数是万物的本原。 勾股定理就是毕达哥拉斯提出,因此在西方勾股定理也被叫做毕达哥拉斯定理。 工科类的专业,越到后面越感觉到数学…

【活动回顾】ABeam Recruiting | 德硕管理咨询(上海)2024届校园招聘宣讲会--中南财经政法大学专场

惟楚有材,于斯为盛 中南大校招行 10.31 Part.1 校企合作 10月31日,霜降之际,德硕管理咨询(上海)校招团队首次拜访了位于楚国故地的中南财经政法大学外国语学院,并开展了专场宣讲会。 在校企合作商谈会议…

解锁4D成像雷达「降本」

传感器增强,被视为高阶智驾继续解锁ODD(针对自动驾驶及相关功能专门设计的运行条件)的关键环节之一。 众所周知,市面上在售新车搭载的智驾系统,由于传感器、算力以及软件算法能力的差异,会导致系统正常运行…

【SQLite】环境安装

SQLite - C/C SQLite简介 SQLite 是一种轻量级的嵌入式数据库引擎,它在程序中直接访问数据库文件而不需要独立的数据库服务器。以下是一些关于 SQLite 的简介信息: 嵌入式数据库引擎: SQLite 是一种嵌入式数据库引擎,这意味着它…

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

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

实现电商平台与营销系统集成:德客的无代码开发和API连接

无代码开发与API连接的重要性 在当前的技术环境中,无代码开发和API连接已经变得至关重要。这两者都可以显著提升企业的工作效率,节省人工成本,同时也可以为企业提供更加灵活的解决方案。广州德客信息科技有限公司,凭借其强大的研…

职场人实用办公技能 | 数据可视化模板

套用模板,不仅报表做得快,数据可视化效果也足够美观,但有些职场人还不太了解从哪些工具上可获得兼具实用性、美观性的BI数据可视化模板,接下来就来介绍一款可提供大量系统化可视化模板的BI工具——奥威BI工具。 奥威BI工具&#…

十年后人工智能会统治人类?2024年人工智能未来趋势,变化将翻天覆地!

原创 | 文 BFT机器人 01 导读 人工智能在全球范围内呈爆发性增长,随着技术的不断创新和社会的积极适应,人工智能有望引领一场社会革命。 02 Gartner发布2024 年十大战略技术趋势 Gartner研究副总裁Bart Willemsen表示:“由于技术变革以及社…

为什么笔记不收录,小红书作品收录逻辑分析!

小红书作品收录问题,是平台大家广泛关注的问题。这是因为,一篇作品是否被有效收录,将会直接决定作品所能捕获的流量。今天给大家分享下为什么笔记不收录,小红书作品收录逻辑分析! 一、作品收录是指什么 小红书平台的作…

数据复现-企业数字化转型与中国实体经济发展分析

数据简介:在当今快速发展的数字化时代,数字技术已经成为企业数字化转型的核心驱动力之一。尤其对于中国这样一个拥有庞大实体经济的国家而言,结合数字技术的应用,可以为企业带来前所未有的巨大机遇和挑战。在中国,实体…

(论文阅读26/100)Weakly-supervised learning with convolutional neural networks

26.文献阅读笔记 简介 题目 Weakly-supervised learning with convolutional neural networks 作者 Maxime Oquab,Leon Bottou,Ivan Laptev,Josef Sivic,CVPR,2015 原文链接 http://www.cv-foundation.org/open…

红海云签约湘湖实验室,助力科研机构人力资源数字化全面升级

湘湖实验室(农业浙江省实验室)是由浙江省农业科学院和萧山区人民政府共同举办的新型研发机构,定位为农业核心种质资源生物制造与生物互作科学问题和核心技术研究,瞄准世界农业科技发展前沿,面向国家重大战略&#xff0…

OA+CRM+HR+ERP 客户关系 进销存 财务 办公审批系统源码

功能介绍 1、个人中心 电话薄:主要用于添加联系人信息,相当于通讯录功能,可以存贮相关联系人的基本信息,姓名、联系方式、地址、邮箱等。 工作日志 :主要用于记录个人工作生活中大小事情的备忘,相当于备…

【uniapp uview】u--textarea组件custom validator check failed for prop “confirmType“

加一行&#xff1a;confirmType"done"即可。<UTextarea> at node_modules/uview-ui/components/u-textarea/u-textarea.vue<UTextarea> at node_modules/uview-ui/components/u--textarea/u--textarea.vueat pages/notice/noticeDetail.vueuview 文档地址…

前端瀑布流怎么布局

假设你需要把页面搭建成这样&#xff0c;有两列元素&#xff0c;每个元素宽度一定&#xff0c;高度不一定。如何实现&#xff1f; 这种瀑布流布局有很多实现方式&#xff0c;比如Grid布局。 什么是Grid布局 Grid布局是一种很灵活的布局方式&#xff0c;他把你的页面划分成了很…

拆解软件定义汽车:OS突围

软件作为智能汽车的核心组成部分&#xff0c;由于自身较为独立和复杂的IT学科体系&#xff0c;其技术链路、产业分工、价值分配、商业模式相对硬件产品&#xff08;如域控、激光雷达、摄像头等硬件&#xff09;而言&#xff0c;在汽车产业内探讨和传播相对较少。 11月3日&…

算法——图——bsf 广度优先搜索算法 (Breadth First Search)

图遍历算法——bsf 广度优先搜索算法 &#xff08;Breadth First Search&#xff09; 算法 概述算法过程步骤一&#xff1a;初始化原点到队列步骤二&#xff1a;将队列的头顶点放入到已完成集合步骤三&#xff1a;将订单的关联顶点放入到队列中步骤四&#xff1a;将u顶点设置为…