PostgreSQL 入门教程

news2024/11/17 3:00:46

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.coloradmin.cn/o/1201874.html

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

相关文章

MATLAB中ginput函数用法

目录 语法 说明 示例 标识点和绘制坐标 返回用于选择坐标的按键 标识地理坐标区上的点 ginput函数的功能是标识坐标区坐标。 语法 [x,y] ginput(n) [x,y] ginput [x,y,button] ginput(___) 说明 [x,y] ginput(n) 可用于标识笛卡尔坐标区、极坐标区或地理坐标区内…

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

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

数据结构 | 队列的实现

数据结构 | 队列的实现 文章目录 数据结构 | 队列的实现队列的概念及结构队列的实现队列的实现头文件,需要实现的接口 Queue.h初始化队列队尾入队列【重点】队头出队列【重点】获取队列头部元素获取队列队尾元素获取队列中有效元素个数检测队列是否为空销毁队列 Que…

通讯协议学习之路(实践部分):UART开发实践

通讯协议之路主要分为两部分,第一部分从理论上面讲解各类协议的通讯原理以及通讯格式,第二部分从具体运用上讲解各类通讯协议的具体应用方法。 后续文章会同时发表在个人博客(jason1016.club)、CSDN;视频会发布在bilibili(UID:399951374) 本文…

破解制造业痛点,数据化方案助力高效生产!

随着科技的飞速发展,我们已进入数据化时代。在这个时代,制造业面临着前所未有的挑战。本文将探讨制造业在当今数据化时代遇到的问题以及相应的解决方案。 一、背景 制造业作为全球经济发展的重要支柱,正面临着数据化带来的巨大变革。在这个以…

DP4301-M无线模块一款SUB-1G无线收发模块

DP4301-M无线模块是一款低成本高效率工作于1GHz以内的收发模块,支持中国智能电无线 集抄标准470MHz~ 510MHz,兼容433MHz ISM/SRD频段均可使用。 此模块且前已经超大量应用于国标智能无线抄表及物联网自组网等双向数据传输系统方案,模 块具备的…

数据恢复工具推荐,高效恢复,这4款很实用!

很多电脑用户都会选择将文件直接保存在电脑上,但是在实际的操作过程中,数据丢失的情况难免会出现。而实用的数据恢复工具或许能有效帮助我们找回丢失的数据。电脑上有哪些使用效果比较好的数据恢复工具呢? 今天小编总结了几款好用的工具&…

基于springboot实现生鲜超市管理的设计与实现系统【项目源码】

基于springboot实现生鲜超市管理的设计与实现系统演示 Java技术 Java是由Sun公司推出的一门跨平台的面向对象的程序设计语言。因为Java 技术具有卓越的通用性、高效性、健壮的安全性和平台移植性的特点,而且Java是开源的,拥有全世界最大的开发者专业社群…

SAP ABAP选择屏幕程序语法及实例

选择屏幕有单个栏位检索(PARAMETERS)和范围筛选(SELECT-OPTION)两种。 1、单个栏位检索(PARAMETERS) 语法: parameters[default ][lower case][obligatory] [as checkbox][radiobutton group…

2.jvm类加载系统

目录 概述类加载器执行顺序加载时机与过程类加载的四个时机一个类的一生 类加载途径 自定义类加载器工作准备编写自定义加载器结果 结束 概述 类加载器 jvm 的类加载是通过 ClassLoader 及其子类来完成的。 有以下类加载器 注意: bootstrap 引导程序 根据上图总结…

vue-组件注册及使用

​🌈个人主页:前端青山 🔥系列专栏:Vue篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容-组件注册及使用 目录 1、组件的注册及使用 2、组件常用属性 2.1、directive 2.2、computed 2.…

删除快一年的数据,能够恢复吗?

在数字化时代,数据已经成为了企业和个人生活中不可或缺的一部分。然而,由于各种原因,我们有时会需要删除某些数据,比如过期的文件、无用的照片或者账号下的旧信息等。但是,当我们删除这些数据后,是否真的能…

一个车厢号码识别算法(2005年的老程序----ccc)

一个车厢号码识别算法(2005年的老程序----ccc) 2023-09-18 ccc 程序的识别效果 对图中的车厢号码部分用上下两条线限定分为,然后进行识别。 从上面的识别效果可以看出,识别算法具有一定的鲁棒性,能够适应车厢号码的各…

如何改变偏执的性格?

偏执不等同于固执和顽固,固执和顽固更多是好面子的因素,是自尊心的一种表现,而偏执更多是表示处于“不知”的心理状态。当然这里仅仅是讨论性格上的偏执,从性格的角度来分析,如果从精神角度来分析偏执那就比较严重了&a…

在以BUF,字节存储区中,存放有n个带符号整数。试编写统计其中负偶数个数(假设≤9)并且显示。

;默认认采用ML6.11汇编程序 DATAS SEGMENT;此处输入数据段代码BUF DB -2,2,3,4,-4N$-BUF DATAS ENDS STACKS SEGMENT;此处处输入堆栈段代码 STACKS ENDS CODES SEGMENTASSUME CS:CODES,DS: DATAS, SS:STACKS START:MOV AX, DATASMOV DS,AXMOV BX,0MOV CX,0 LOP: mov AX,[BX] RO…

2023.11-9 hive数据仓库,概念,架构,元数据管理模式

目录 0.数据仓库和数据库 数据仓库和数据库的区别 数据仓库基础三层架构 一.HDFS、HBase、Hive的区别 二.大数据相关软件 三. Hive 的优缺点 1)优点 2)缺点 四. Hive 和数据库比较 1)查询语言 2)数据更新 3)…

Misc | 相当于签到 第二届“奇安信”杯网络安全技能竞赛

题目描述: 图片似乎经过了什么处理,你能否将其复原呢? 密文: 下载附件,解压得到一张.jpg图片。 解题思路: 1、一张图片,典型的图片隐写。放到Kali中,使用binwalk检测,确…

探索人工智能领域——每日30个名词详解【day2】

目录 前言 正文 总结 🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。 💡本文由Filotimo__✍️原创,首发于CSDN📚。 📣如需转载,请事先与我联系以…

JL-03小型气象站气象环境在线监测设备自动上传并保存数据

JL-03小型气象站产品概述 小型气象站用于对风速、风向、雨量、空气温度、空气湿度、太阳辐射、光照强度、土壤温度、土壤湿度、蒸发量、大气压力等气象要素进行现场监测。既可以通过无线通讯将数据传送至云平台,又可以通过配套的数据采集通讯线与计算机进行连接&am…