show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次可以
- 执行sql语句
- create table
- insert
- 执行sql语句
- 可以 通过python来进行查询吗?
- 可以 得到select查询的结果 吗?
- 确实建了表
- 也插了数据
- 可以在python中进行查询吗?
import psycopg
conninfo = "postgres://postgres:oeasypg@localhost:5432/oeasydb"
with psycopg.connect(conninfo) as conn:
print("connect!")
with conn.cursor() as cur:
cur.execute("SELECT * FROM test;")
for record in cur.fetchall():
print(record)
- 具体代码
- 运行结果
- 只有一条记录
- 尝试多插几条记录
- vi c2.py
import psycopg
conninfo = "postgres://postgres:oeasypg@localhost:5432/oeasydb"
with psycopg.connect(conninfo) as conn:
print("connect!")
conn.execute(
"INSERT INTO test(num, data) VALUES (%s, %s)",
(200, "efg")
)
conn.execute(
"INSERT INTO test(num, data) VALUES (%s, %s)",
(300, "hij")
)
print("Data is inserted!")
conn.commit()
- 执行过c2.py后
- 再go.py查看
- 新数据已经插入
- 可以 通过游标(cursor)
- 查询到多个元组
- 如何理解 游标 呢?
- 什么是游标(cursor)呢?
- 游标是给pg服务器发送命令的一个会话
- 使用相同Connection的会话是相通的
-
psycopg 实现的是 DBAPI的一个接口
- DBAPI 是 python定义的一套数据库 编程接口
- 接口是固定的
- 无论mysql、oracle、db2
- 接口是统一的
-
https://www.psycopg.org/psycopg3/docs/api/cursors.html#psycopg.Cursor
-
接口是怎么要求的呢?
- 游标可以执行sql语句
- psycopg是如何实现的呢?
- 通过调用postgres的接口实现的
- https://peps.python.org/pep-0249/#cursor-objects
- 游标这个词怎么来的呢?
- 游标可以通过SELECT 语句
- 获得一系列的结果集
- 这次使用了游标
- 通过游标
- 可以得到select查询的结果集
- 这样我们就可以
- 通过python语言
- 直接操作postgres了
- 通过python语言
- psycopg还有什么好玩的吗🤔
- 下次再说!👋