# PostgreSQL

# 基本命令

命令行登录

psql -U postgres

安装默认用户名为postgres,没有密码

# 创建数据库

CREATE DATABASE testdb;

# 列出数据库

\l

# 选择数据库

\c testdb

# 创建表

CREATE TABLE employees (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100),
    age INTEGER
);

这将在当前数据库中创建一个名为 "employees" 的新表,其中包含四个字段:id(自动递增的主键)、name(员工的名字)、email(员工的邮箱)、age(员工的年龄)。

# 列出表

\dt

# 表详情

\d {table_name}

# 插入数据

INSERT INTO employees (name, email, age) VALUES ('John Doe', 'john.doe@example.com', 30);

# 查询数据

SELECT * FROM employees;

# 更新数据

UPDATE employees SET age = 31 WHERE name = 'John Doe';

# 删除数据

DELETE FROM employees WHERE name = 'John Doe';

# 退出

\q

# 特性

# 数组

在 PostgreSQL 中,你可以在表中创建数组类型的列。这意味着你可以在一个字段中存储多个值。例如,你可以创建一个数组来存储一篇文章的所有标签:

CREATE TABLE articles (
    id SERIAL PRIMARY KEY,
    title VARCHAR(200),
    content TEXT,
    tags TEXT[]
);

# JSON

PostgreSQL 提供了对 JSON 数据的全面支持。你可以将 JSON 数据存储在表中,然后使用 SQL 查询对其进行操作。PostgreSQL 提供了一套全面的函数和运算符,让你可以像操作传统的 SQL 数据那样操作 JSON 数据。

CREATE TABLE orders (
    id SERIAL PRIMARY KEY,
    data JSONB
);

# 全文搜索

PostgreSQL 提供了全文搜索的功能,这意味着你可以在大量的文本数据中进行高效的搜索。你可以创建全文搜索向量和索引,然后使用特殊的全文搜索函数和运算符来查询数据。

SELECT title FROM articles WHERE to_tsvector('english', title) @@ to_tsquery('english', 'database');

在上面的例子中,to_tsvector 和 to_tsquery 函数用于创建全文搜索向量和查询,@@ 运算符用于执行全文搜索查询。

# pgvector

需要安装pgvector插件才能够在database里建立向量table

# 安装

从github上下载zip包,解压后会得到一个pgvector文件夹,进入该目录依次执行

make
sudo make install

WARNING

必须设置pgSQL的环境变量,否则报错找不到pg_config

# 使用

在需要使用vector的数据库中执行

create extension vector;

# 参考

宝塔Linux操作Postgresql向量数据库安装pgvector插件 (opens new window)
PostgreSQL学习-华为云 (opens new window)
一小时实践入门 PostgreSQL——知乎 (opens new window)

Last Updated: 7/5/2024, 6:11:40 PM