# 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)