PostgreSQL 简介与基础(一)

1. 什么是 PostgreSQL

1.1 概述

PostgreSQL(常简称为Postgres)是一种功能强大的开源关系型数据库管理系统(RDBMS)。它以其可靠性、强大的功能和符合标准的特性著称。PostgreSQL 支持大部分 SQL 标准,并且具有许多现代特性:

  • ACID 事务
  • 外键、联接、视图、触发器
  • 存储过程(可用多种编程语言编写)
  • 完全支持各种数据类型(如整数、浮点数、文本、日期/时间、布尔值、数组、JSON 等)

1.2 特性

  • 开源许可证: PostgreSQL 使用的是自由开源许可证,允许用户免费使用、修改和分发。
  • 跨平台支持: 支持多种操作系统,包括 Linux、Windows 和 macOS。
  • 扩展性: 允许用户定义数据类型、操作符、索引类型、函数等。
  • 并发控制: 采用多版本并发控制(MVCC)机制,支持高并发环境。

2. 安装与配置

2.1 安装 PostgreSQL

2.1.1 在 Linux 上安装

对于基于 Debian 的系统(如 Ubuntu),可以使用以下命令安装 PostgreSQL:

复制代码
sudo apt update
sudo apt install postgresql postgresql-contrib

对于基于 Red Hat 的系统(如 CentOS),可以使用以下命令:

复制代码
sudo yum install postgresql-server postgresql-contrib
sudo postgresql-setup initdb
sudo systemctl start postgresql
sudo systemctl enable postgresql
2.1.2 在 Windows 上安装
  1. 下载 PostgreSQL 安装程序
  2. 运行安装程序并按照提示进行安装。
  3. 安装完成后,可以通过 pgAdmin 或命令行工具连接到数据库。

2.2 初始配置

2.2.1 创建超级用户

安装完成后,默认的超级用户是 postgres。可以通过以下命令切换到 postgres 用户并访问 PostgreSQL:

复制代码
sudo -i -u postgres
psql

在 psql 命令提示符下,可以创建新的超级用户:

sql 复制代码
CREATE USER myuser WITH SUPERUSER CREATEDB CREATEROLE PASSWORD 'mypassword';
2.2.2 创建数据库

使用以下命令创建新的数据库:

sql 复制代码
CREATE DATABASE mydatabase;

3. 基本概念

3.1 数据库、表、行、列

  • 数据库(Database): 存储数据的容器,每个数据库包含多个表。
  • 表(Table): 数据的结构化表示,由行和列组成。
  • 行(Row): 表中的一条记录,每行包含多个列。
  • 列(Column): 表的一个字段,每列存储一种类型的数据。

3.2 数据类型

PostgreSQL 支持多种数据类型,常用的数据类型包括:

  • 整数类型: INTEGERSERIAL
  • 浮点数类型: REALDOUBLE PRECISION
  • 字符类型: VARCHAR(n)CHAR(n)TEXT
  • 日期/时间类型: DATETIMETIMESTAMP
  • 布尔类型: BOOLEAN
  • JSON 类型: JSONJSONB

4. 基本操作

4.1 连接数据库

可以通过 psql 工具连接到 PostgreSQL 数据库:

sql 复制代码
psql -U myuser -d mydatabase

4.2 创建表

以下是一个创建表的示例:

sql 复制代码
CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

4.3 插入数据

向表中插入数据:

sql 复制代码
INSERT INTO users (username, email) VALUES ('alice', 'alice@example.com');

4.4 查询数据

从表中查询数据:

sql 复制代码
SELECT * FROM users;

4.5 更新数据

更新表中的数据:

sql 复制代码
UPDATE users SET email = 'alice@newdomain.com' WHERE username = 'alice';

4.6 删除数据

删除表中的数据:

sql 复制代码
DELETE FROM users WHERE username = 'alice';

系统文章目录:

PostgreSQL 简介与基础(一)

PostgreSQL 基本SQL语法(二)

PostgreSQL 高级SQL查询(三)

PostgreSQL 数据库设计与管理(四)

PostgreSQL 高级功能(五)

PostgreSQL 性能优化与调优(六)

PostgreSQL 高可用性与灾难恢复策略(七)

PostgreSQL 安全性与权限管理(八)

PostgreSQL 高级功能与扩展(九)

PostgreSQL 分区表与并行查询(十)

PostgreSQL 索引优化与性能调优(十一)

PostgreSQL 日志管理与故障排查(十二)

PostgreSQL 高可用性与容错性(十三)

相关推荐
xhaxy8 分钟前
pgsql下载安装(CentOS7,pgsql14)
postgresql
逍遥运德5 小时前
PostgreSQL ---【序列】用法详解
后端·sql·postgresql
l1t5 小时前
DeepSeek总结的PostgreSQL 的开源 TDE:pg_tde
数据库·postgresql·开源
比企谷八幡11 小时前
数据库 Page 内部是什么样:Page Header、Slot 和 Line Pointer
数据库·c++·postgresql·数据库架构
JohnYan1 天前
工作笔记 - PG分组极值
数据库·后端·postgresql
倒流时光三十年1 天前
PostgreSQL 填充因子(fillfactor)大白话详解
postgresql·填充因子
Java陈序员1 天前
主流数据库通吃!一款开源实用的数据库备份管理工具!
react.js·postgresql·go
xhaxy2 天前
pgsql集群搭建(Patroni + etcd )
linux·postgresql·etcd
暴躁小师兄数据学院2 天前
【AI大数据工程师特训笔记】第13讲:数据库性能手术刀
大数据·数据库·数据仓库·sql·postgresql
丷丩3 天前
Postgresql基础实践教程(十一)各种Join
数据库·postgresql·join