postgresql基本使用

Postgresql 游标使用 游标不能是已经打开的,并且它必需是声明为一个未绑定的游标(也就是声明为一个简单的 refcursor 变量)。这种形式的 OPEN 用于打开一个游标变量,该游标变量的命令是在声明的时候和它绑定在一起的。要想这么做,该函数必须打开游标并且把该游标的名字返回给调用者,或者简单的使用指定的入口名或调用者已知的名字打开游标。一个绑定的游标变量其名字初始化为对应的字符串值,因此信使的名字和游标变量名同名,除非程序员在打开游标之前通过赋值覆盖了这个名字。了一个声明完整的命令,最后一个是绑定了一个带参数的命令。 阅读详情

glance

import psycopg2


class Psql:
    def __init__(self, dbname, user, password, host='localhost', port=5432):
        dsn = f"dbname={dbname} user={user} password={password} host={host} port={port}"
        self.conn = psycopg2.connect(dsn)
        self.cursor = self.conn.cursor()

    def __del__(self):
        self.cursor.close()
        self.conn.close()

    def select(self, sql_string):
        self.cursor.execute(sql_string)
        return self.cursor.fetchall()

    def run_sql(self, sql_string):
        self.cursor.execute(sql_string)
        self.conn.commit()


if __name__ == '__main__':
    psql = Psql('testdb', 'postgres', 'postgres')
    sql_str = """
    drop table if exists testing;
    create table testing(
    id serial primary key,
    name varchar(255),
    age int
    )
    """
    psql.run_sql(sql_str)
    psql.run_sql("insert into testing(name,age)values('xiaoming',23)")
    psql.run_sql("insert into testing(name,age)values('xiaohong',21)")
    res = psql.select("select * from testing")
    print(res)

数据库操作

su - postgres

psql

\l  列出数据库
\c  连接到数据库
\d  列出表信息
CREATE DATABASE "testdb" WITH ENCODING = 'UTF8';

DROP DATABASE testdb;

表格操作

创建表

CREATE TABLE weather (
    city            varchar(80),
    temp_lo         int,           -- 最低温度
    temp_hi         int,           -- 最高温度
    prcp            real,          -- 湿度
    date            date
);
CREATE TABLE cities (
    name            varchar(80),
    location        point
);

删除表

DROP TABLE tablename;

插入数据

INSERT INTO weather (city, temp_lo, temp_hi, prcp, date)
    VALUES ('San Francisco', 43, 57, 0.0, '1994-11-29');

你还可以使用COPY从文本文件中装载大量数据。这种方式通常更快,因为COPY命令就是为这类应用优化的, 只是比 INSERT少一些灵活性。比如:

COPY weather FROM '/home/user/weather.txt';

查询

SELECT DISTINCT city
    FROM weather
    ORDER BY city;

连接查询

SELECT *
    FROM weather w, cities c
    WHERE w.city = c.name;

子查询:

SELECT city FROM weather
    WHERE temp_lo = (SELECT max(temp_lo) FROM weather);

分组查询

SELECT city, max(temp_lo)
    FROM weather
    WHERE city LIKE 'S%'            -- (1)
    GROUP BY city
    HAVING max(temp_lo) < 40;
    
理解聚集和SQL的WHERE以及HAVING子句之间的关系对我们非常重要。WHERE和HAVING的基本区别如下:WHERE在分组和聚集计算之前选取输入行(因此,它控制哪些行进入聚集计算), 而HAVING在分组和聚集之后选取分组行。因此,WHERE子句不能包含聚集函数; 因为试图用聚集函数判断哪些行应输入给聚集运算是没有意义的。相反,HAVING子句总是包含聚集函数(严格说来,你可以写不使用聚集的HAVING子句, 但这样做很少有用。同样的条件用在WHERE阶段会更有效)。 

更新

UPDATE weather
    SET temp_hi = temp_hi - 2,  temp_lo = temp_lo - 2
    WHERE date > '1994-11-28';

删除

DELETE FROM weather WHERE city = 'Hayward';

python驱动 psycopg2

基本

pip install psycopg2-binary
import psycopg2
dsn = "dbname=test user=postgres password=secret host=localhost port=5432"
conn = psycopg2.connect(dsn)

conn.close()
conn = psycopg2.connect(DSN)

with conn:
    with conn.cursor() as curs:
        curs.execute(SQL1)

with conn:
    with conn.cursor() as curs:
        curs.execute(SQL2)

conn.close()

cursor

  1. fetchone()
  2. fetchall()
  3. fetchmany()
  4. for i in cursor.executee(SQLSTR):

any 优于 in

You can use a Python list as the argument of the IN operator using the PostgreSQL ANY operator.

ids = [10, 20, 30]
cur.execute("SELECT * FROM data WHERE id = ANY(%s);", (ids,))

Furthermore ANY can also work with empty lists, whereas IN () is a SQL syntax error.

踩坑指南

serial类型自增

drop TABLE if EXISTS xxx;
create table xxx(
    id serial PRIMARY KEY,
    name varchar(255)
);

强删 database

SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE datname='fsfs' AND pid<>pg_backend_pid();
drop DATABASE fsfs;
PostgreSQL入门介绍 PostgreSQL 是一款功能强大的开源关系型数据库管理系统,起源于20世纪80年代末,旨在提供高性能、可扩展和可靠的数据存储解决方案。它支持几乎所有SQL标准,并提供了如ACID事务、MVCC、复杂查询、大型对象支持、触发器、存储过程等高级功能。PostgreSQL 与 MySQL 相比,在数据类型支持、SQL标准遵循、扩展性等方面更具优势,适用于金融、电信、ERP等复杂应用场景。 阅读详情

相关推荐

【PostgreSQL】PostgreSQL使用explain

【详解】【PostgreSQL】PostgreSQL使用explain。

tttzzzqqq2018的博客 3873

使用python将数据导入postgresql数据中

【代码】使用python将数据导入postgresql数据中。

weixin_44725721的博客 2751

手把手教你用Simulink搭建交流异步电机矢量控制模型(附完整仿真文件)

本文提供了一份详细的Simulink仿真指南,手把手教你从零开始搭建交流异步电机矢量控制模型。内容涵盖主电路搭建、坐标变换实现、双闭环PI调节器设计、转子磁链观测器调试等核心步骤,并附有完整的仿真文件,帮助读者跨越理论到实践的鸿沟,掌握高性能电机控制系统的建模与仿真技能。

pz890123的博客 671

Python操作PostgreSql数据库(其他问题整理)(四)

文章目录Python操作PostgreSql数据库(事务操作与连接池)(四)psycopg2关于相同游标执行execute_batch会不会影响fetchmany的结果问题测试测试相同游标执行2次Execute,fetchmany的结果集是否会有影响第一次执行一次select,第二次执行insert第一次执行一次select,第二次也执行select Python操作PostgreSql数据库(事...

huotong 1879

嵌入式设备低功耗设计误区:为什么你的RK3568总是被‘意外’唤醒?

本文深入分析RK3568嵌入式设备低功耗设计中的常见误区,重点探讨唤醒源管理不当导致的意外唤醒问题。通过解析硬件设计陷阱、软件配置错误及系统化审计方法,帮助开发者有效排查和解决GPIO配置、唤醒源设置等关键因素引起的功耗异常,提升设备续航能力。

php55的博客 460

BEVFusion(mit)最强环境安装,部署复现

BEVFusion作为一项经典的工作,值得深入探索。然而由于配置环境比较麻烦,耽误了一些时间。经过几次成功配置之后,有了一些总结,在这里记录下来,供大家参考避坑,也方便自己下次查阅。

qq_45783225的博客 1万+

Python模拟Postgres数据库连接

它具有丰富的功能和灵活性,适用于各种规模和类型的Python应用程序,从简单的脚本到复杂的Web应用和数据分析项目。请注意,具体的方法和操作可能会根据所使用的 PostgreSQL 数据库驱动程序而有所不同,上述示例是一般的用法。:psycopg2支持PostgreSQL的扩展功能,可以与PostgreSQL的扩展模块一起使用,以提供更高级的功能和特性。:psycopg2提供了连接到PostgreSQL数据库的功能,您可以使用提供的连接参数来建立和管理数据库连接。您可以使用psycopg2的。

喝醉酒的小白 1858

LSTM预测股票数据---数据预处理

# 导入相应的模块 import pandas as pd import numpy as np import matplotlib.pyplot as plt import tensorflow as tf # 获取训练集 def get_train_data(data,batch_size = 60 ,time_step = 20,train_begin = 0,train_end = 58...

qq_35358021的博客 3360

PostgreSql

安装好PostgreSQL后,开启本地服务,可通过Navicat连接数据库并导入excel数据项,注意数据库名、表名、字段名时均使用小写字母,如使用大写字母,在生成对应表名和字段会自动加上“”,影响查询,此外注意避开关键词,比如id,name,group之类SQL需要保留关键词。psycopg2.pool.ThreadedConnectionPool仅支持多线程,不支持多进程。

yeyaozhifengqi的博客 645

RK3568部署YOLOv8的7种方法对比:量化vs非量化的性能实测与优化建议

本文针对RK3568平台,深度对比了YOLOv8模型的七种部署方法,重点分析了量化与非量化策略的性能差异。通过实测数据,详细评估了不同方法在推理速度、CPU占用、内存消耗及模型精度上的表现,并提供了从模型结构调整到系统级优化的具体建议,为边缘AI部署选型提供实用参考。

weixin_29099217的博客 531

全功能tgbot/Telegram机器人多功能有后台版源码

trx兑换 闪兑 关键字监控 群管 usdt监控 余额查询 推广分享 等几乎常见的tg机器人功能都有。全功能tgbot/telegram机器人多功能有后台版源码-打包好的可以直接上手。

百创科技 2704

ODBC 连接操作postgresql

1下载安装postgresql的驱动器 https://pan.baidu.com/s/1ii9PudUs9WL_clP7Ub647Q 提取码:hm6g 2 安装配置odbc 控制面板搜索数据源-单击添加 选择postgresql unicode 配置数据源等信息 3 vs配置 单击视图-服务器资源管理器 数据连接上右键-添加 选择PostgreSQL35W vs中通过code处理pos...

weixin_43632687的博客 1万+

GibbsCAM软件二次开发:GibbsCAM软件API接口详解

API(Application Programming Interface,应用程序编程接口)是一种允许不同软件之间进行通信的接口。在GibbsCAM软件中,API提供了与外部程序交互的能力,使得开发者可以利用GibbsCAM的强大功能进行二次开发,定制化满足特定的制造需求。GibbsCAM的API主要基于.NET框架,使用C#或VB.NET等语言进行编程。在GibbsCAM软件中,通过API接口创建自定义几何形状是实现复杂零件设计和加工策略定制的关键步骤。

kkchenjj的博客 1498

PostgreSQL 基本使用教程

PostgreSQL 基本使用教程原文地址:PostgreSQL 基本使用教程

wwwcomcn123的专栏 2724

【系统架构设计师】2026年上半年真题论文:论高并发系统的设计与实践

本文围绕高并发系统架构设计展开,重点论述了电商秒杀系统的实战经验。文章采用"痛点-解决方案-效果"的逻辑结构,从缓存设计、异步处理、限流降级、数据库优化等6个维度详细阐述了应对高并发的技术策略。其中,重点介绍了多级缓存体系、基于消息队列的异步处理机制和微服务拆分实践,并辅以实际案例说明如何解决超卖、缓存雪崩等典型问题。全文强调高并发设计需要系统性思维,通过空间换时间、异步换吞吐、横向换能力等原则,最终实现系统吞吐量从500TPS提升至20000TPS的性能突破。

数据知道的博客 1160

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

PostgreSQL使用

PostgreSQL是一款功能强大的开源关系型数据库管理系统,它不仅提供了丰富的基本操作和高级特性,还具备出色的性能优化能力和扩展性。对于初学者和有经验的数据库管理员来说,学习和掌握PostgreSQL的使用方法和技巧都是至关重要的。通过深入学习和探索,我们可以更好地构建和管理数据库系统,进而提升应用程序的性能和安全性。PostgreSQL的广泛应用场景和强大性能表现,使其成为值得深入学习和探索的优秀选择。👨‍💻博主Python老吕评论,您的举手之劳将对我提供了无限的写作动力!🤞。

Python老吕的博客 1250

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

PostgreSQL基本使用

这个目录是在安装时指定的,所以在安装时需要指定一个合适的目录作为数据目录的根目录,而且,每一个 PG 数据库实例都需要有这样的一个目录。数据库:一个 PostgreSQL 数据库服务下可以管理多个数据库,当应用连接到一个数据库时,一般只能访问这个数据库中的数据,而不能访问其他数据库中的内容默认情况下初始实例只有三个数据库: postgres、template0、template1。PostgreSQL 有一些术语与其他数据库中不一样,了解了这些术语的意思,就能更好地看懂PostgreSQL 中的文档。

liys0811的博客 2551

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

postgresql基本介绍以及部署使用

postgresql基本信息、优势、安装部署

shy871的博客 1万+

postgresql linux 命令,postgresql基本命令使用

基本命令使用psql命令行pg的命令行操作与mysql的有很大的差异,进入pg命令行后可以使用?查看pg的操作命令查看pg的操作命令#首先在linux命令行登录pg,postgres是pg的默认用户psql -h localhost -p 5432 -U postgres#查看有哪些用户\dg#查看有哪些数据库\l#查看有哪些表\d#切换数据库\c dnname#例如切换为数据库test,则使用命...

weixin_35698059的博客 4243

PostgreSQL基本操作

PostgreSQL基本操作

m0_37559973的博客 8283

PostgreSQL 的安装和基本配置

PostgreSQL 的安装和配置过程可以在多种操作系统(Linux、Windows、macOS)上进行。以下是通用步骤和具体操作的详细说明。

weixin_44594317的博客 3446

PostgreSQL的基本使用

在 PostgreSQL 中,Schema(模式)是数据库对象的集合,用于组织和命名数据库对象,如表、视图、索引、函数等。Schema 可以看作是一个命名空间,用于将数据库对象划分为逻辑上的分组,方便管理和控制访问权限。命名空间管理:Schema 提供了命名空间,可以将数据库对象按照业务逻辑或功能进行组织和分类,避免对象命名冲突,提高数据库的可维护性和可扩展性。对象隔离。

m0_72560900的博客 5956

PostgreSQL的简单使用

pgSQL,即PostgreSQL,是一种功能强大的开源关系数据库管理系统。

fengjing81的专栏 3388

postgresql入门(postgresql教程)

检查服务登录身份是否为“本地系统账户”(Windows)或依赖项是否安装(Linux/macOS)。PostgreSQL 是开源关系型数据库,采用 BSD 协议,支持商业化使用。,重启服务后登录并重置密码。

Dontla的博客 2683

Postgresql日常使用

psql\c。

2403_86763298的博客 3583

PostgreSQL 基本语法

PostgreSQL 基本语法这里记录些PostgreSQL的基本语法,内容基本来自PostgreSQL 9.5.3 中文手册 基本语法如: 创建数据库 CREATE DATABASE mydb

taoshujian 2万+
上一篇: 下载jenkins插件,从华为云,很快
下一篇: 优秀的github项目 (python)
CoolScript
博客等级 码龄9年 26粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值