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 高可用性与容错性(十三)

相关推荐
爪洼炒饭3 小时前
java项目中与金额有关的计算注意事项
java·开发语言·spring boot·postgresql
孤傲小二~阿沐8 小时前
PostgreSQL的学习心得和知识总结(一百四十七)|深入理解PostgreSQL数据库之transaction chain的使用和实现
数据库·postgresql
小扬的马甲13 小时前
opengauss与pg核心关键技术对比
postgresql
黎明晓月1 天前
PostgreSQL判断字符串是否是json格式
数据库·postgresql·json
文牧之1 天前
PostgreSQL的系统视图pg_stat_wal
运维·数据库·postgresql
醇氧1 天前
【postgresql】表操作
数据库·sql·postgresql
PGCCC1 天前
使用预加载库优化 PostgreSQL 函数#postgresql认证
数据库·postgresql
醇氧2 天前
【postgresql】数据库操作
数据库·postgresql·oracle
JohnYan2 天前
PostgerSQL技术问答10 - JSON
数据库·后端·postgresql
PGCCC3 天前
解密 PostgreSQL 加密:初学者指南#postgresql认证
数据库·postgresql·区块链