PostgreSQL入门教程

news/2024/7/9 22:27:21 标签: postgresql, 学习, 笔记

目录

一、PostgreSQL安装

1、下载

2、安装

二、PostgreSQL操作

1、数据库操作

2、表操作

3、数据操作


一、PostgreSQL安装

本章节以windows系统安装为例,讲解PostgreSQL 15.0的安装过程。

1、下载

访问PostgreSQL官方网站,下载对应的安装包,也可以在下载页面下载对应的安装包。

2、安装

windows安装选择各种默认设置即可,但是在我的win10系统安装时,最后出现服务无法正常启动的错误,导致安装无法正常结束,可以参考以下步骤:

① 右键我的的电脑=》管理=》服务和应用程序=》服务;

② 右键postgresql-x64-15=》属性=》登录身份选择“本地系统账户”,如下图所示。

二、PostgreSQL操作

通用命令:

查看已存在数据库\l
进入数据库\c 数据库名
查看表格\d
查看指定表格\d 表名

1、数据库操作

查询所有数据库:

select datname from pg_database;

创建数据库:

create database 数据库名 owner 所属用户 encoding UTF8;

进入数据库:

\c 数据库名

删除数据库:

drop database 数据库名;

2、表操作

创建表:

CREATE TABLE table_name(
   column1 datatype,
   column2 datatype,
   column3 datatype,
   .....
   columnN datatype,
   PRIMARY KEY( 一个或多个列 )
);

查看表格:

\d table_name

删除表格:

DROP TABLE table_name;

3、数据操作

插入数据:

# 指定字段插入
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN) VALUES (value1, value2, value3,...valueN);

# 全部字段插入
INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);

选择数据:

SELECT column1, column2,...columnN FROM table_name;

更新数据:

UPDATE table_name SET column1 = value1, column2 = value2...., columnN = valueN WHERE [condition];

删除数据:

DELETE FROM table_name WHERE [condition];

三、插件

以pgvector插件(第三方插件)为例,给出安装和使用教程。

1、下载gpvector插件

从地址pgvector下载插件源码,按照教程中的如下命令安装插件:

set "PGROOT=C:\Program Files\PostgreSQL\15"
git clone --branch v0.4.4 https://github.com/pgvector/pgvector.git
cd pgvector
nmake /F Makefile.win
nmake /F Makefile.win install

说明:在windows环境下安装visual studio即可使用nmake,如果提示该命令不存在,可以在安装目录进行搜索后添加到环境变量。

2、测试

本次使用python代码库psycopg进行测试,首先安装psycopg:

pip install --upgrade pip            
pip install "psycopg[binary]"

 测试代码如下,测试特征向量的匹配,使用内积匹配(修改密码、用户名等配置):

import psycopg
from pgvector.psycopg import register_vector

import numpy as np


conn = psycopg.connect(dbname='postgres', autocommit=True, password="your password", user="postgres")
conn.execute('CREATE EXTENSION IF NOT EXISTS vector')
register_vector(conn)

conn.execute('DROP TABLE IF EXISTS python_test')
conn.execute('CREATE TABLE python_test (id bigserial PRIMARY KEY, embedding vector(512))')

embeddings = np.random.rand(10000, 512)
sql = 'INSERT INTO python_test (embedding) VALUES ' + ','.join(['(%s)' for _ in embeddings])
params = [embedding for embedding in embeddings]
conn.execute(sql, params)
conn.execute('CREATE INDEX ON python_test USING ivfflat (embedding vector_ip_ops)')

embedding = np.random.rand(512)
result = conn.execute('SELECT id, embedding FROM python_test ORDER BY embedding <#> %s LIMIT 15', (embedding,)).fetchall()
for single_line in result:
    id, embed = single_line
    print(id, np.dot(embedding, embed), embedding.shape, embed.shape)
conn.close()


http://www.niftyadmin.cn/n/1008761.html

相关文章

Pytorch深度强化学习1-2:详解K摇臂赌博机模型和ϵ-贪心算法

目录 0 专栏介绍1 K-摇臂赌博机2 ϵ \epsilon ϵ-贪心算法3 softmax算法4 Python实现与分析 0 专栏介绍 本专栏重点介绍强化学习技术的数学原理&#xff0c;并且采用Pytorch框架对常见的强化学习算法、案例进行实现&#xff0c;帮助读者理解并快速上手开发。同时&#xff0c;…

JS中的异步与Promise使用

同步与异步 我们知道JS是一个单线程的语言&#xff0c;即在同一时间只能做一件事情。为什么设计为当线程呢。&#xff1f;在早期JS是为了在浏览器中运行&#xff0c;我们可以利用JS来制作一些页面的效果也可以和用户做一些交互。所以设计为单线程也是为了避免复杂度。比如在网…

给nginx配置站点访问密码

当我们的站点需要账密才能访问时&#xff0c;可以借助nginx来简单配置。 1. 安装apache2-utils 模块 sudo apt update sudo apt upgrade -y sudo apt install apache2-utils 2.设置一个账密文件 这条命令会要求输入密码和再次确认密码&#xff0c;这个密码就是登录密码。 …

文件操作 -- C语言

在之前学习的时候&#xff0c;我们可以发现当程序运行完&#xff0c;我们之前保存的数据就会消失&#xff0c;再次运行时还得重新输入&#xff0c;为了使我们保存的数据在下次运行时还能使用&#xff0c;我们这篇文章来学习一下怎么使用文件操作&#xff0c;将我们的数据保存在…

简单三步完成离线升级TIDB v7.1(服务器无互联网环境)

作者&#xff1a; bert 原文来源&#xff1a; https://tidb.net/blog/e35af409 离线升级使用场景 我们知道&#xff0c;大多数公司的生产服务器的安全策略都不太允许连接互联网。加上TIDB的版本更新迭代非常快&#xff0c;默认适用升级需要连接互联网下载升级包部署。因此在…

【Flask】SQLAlchemy

文章目录 SQLAlchemy是什么为什么使用orm定义安装组成部分SQLAlchemy本身无法操作数据库&#xff0c;其必须以来pymsql等第三方插件 SQLAlchemy的使用原生sql使用orm映射数据表 外键关系一对多(ForeignKey)多对多 使用orm操作记录简单表操作基于scoped_session实现线程安全 CRU…

TCP的三次握手,四次挥手

1.TCP协议介绍 传输控制协议&#xff08;TCP&#xff0c;Transmission Control Protocol&#xff09;是一种面向连接的、可靠的、基于字节流的传输层通信协议&#xff0c;是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议。由IETF的RFC 793 [1] 定义…

【linux】一些linux系统下的常用命令(本地使用、远程服务器连接常用)

一些linux常用命令 linux 常用命令打开某个文件夹查看某个目录的所有内容复制文件命令移动命令创建文件夹删除文件或目录当前目录创建文件找文件/文件夹查看目录或文件夹大小更改文件或目录权限查看文件内容之vim查看之前输入的命令行下载某个东西到某个位置解压缩查看CPU占用情…