石秀在杨雄家帮忙,发现杨雄的妻子潘巧云跟她的师兄、和尚裴如海有情况。
潘巧云以到寺里还愿的名义,去见裴如海。两人见面后,此处省略三百字。潘巧云说晚上如果杨雄不在家,就烧夜香为讯号,你可以来。你再找一个和尚提供叫醒服务,还能放风。于是找了一个头陀敲木鱼叫醒,这两人就这样快活了一月有余。
石秀一直挂念这件事,但是一直没发现。一天五更天的时候,听见一个头陀在巷子里敲木鱼,报佛号。石秀感到可疑,就把事情告诉了杨雄。
杨雄被潘巧云几句后,就把石秀卖了。潘巧云就诬陷石秀,把石秀逼走了。
事实证明沟通技巧很重要,让我们看看python如何与关系数据通信吧。
python驱动关系型数据库
Python与关系数据库的交互通常是通过数据库连接器和驱动程序实现的。这些驱动程序允许Python程序连接到数据库,执行SQL查询,并获取结果。
以下是一些常用的Python数据库驱动程序和连接器的示例:
SQLite:
Python标准库自带SQLite3模块,可以直接在Python中使用SQLite数据库。
import sqlite3 # 连接到SQLite数据库 conn = sqlite3.connect('example.db') # 创建一个游标对象 c = conn.cursor() # 执行SQL查询 c.execute("CREATE TABLE stocks (date text, trans text, symbol text, qty real, price real)") # 提交事务 conn.commit() # 关闭连接 conn.close()
MySQL:
可以使用mysql-connector-python模块来连接MySQL数据库。
安装模块使用命令:pip 3 install mysql-connector-python
import mysql.connector # 连接到MySQL数据库 conn = mysql.connector.connect(user='your_username', password='your_password', host='localhost', database='your_database') # 创建一个游标对象 c = conn.cursor() # 执行SQL查询 c.execute("CREATE TABLE stocks (date DATE, trans STRING, symbol STRING, qty INT, price FLOAT)") # 提交事务 conn.commit() # 关闭连接 conn.close()
PostgreSQL:
可以使用psycopg2模块来连接PostgreSQL数据库。
安装模块使用命令pip3 install psycopg2
import psycopg2 # 连接到PostgreSQL数据库 conn = psycopg2.connect(database="your_database", user="your_username", password="your_password", host="localhost", port="5432") # 创建一个游标对象 cur = conn.cursor() # 执行SQL查询 cur.execute("CREATE TABLE stocks (date DATE, trans TEXT, symbol TEXT, qty INT, price FLOAT)") # 提交事务 conn.commit() # 关闭连接 conn.close()
以上示例演示了如何连接到不同的关系数据库,并创建一个简单的表格。实际上,可以使用这些驱动程序执行更复杂的SQL查询,如插入、更新、删除和选择数据。
以sqlite3为例展示数据库操作展示创建数据库、创建表、插入数据、查询数据、更新数据和删除数据等操作
import sqlite3 # 连接到SQLite数据库(如果数据库不存在,它将被创建) conn = sqlite3.connect('example.db') # 创建一个游标对象,用于执行SQL命令 cursor = conn.cursor() # 创建一个表 cursor.execute(''' CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, age INTEGER, email TEXT UNIQUE ) ''') # 提交事务 conn.commit() # 插入数据 cursor.execute("INSERT INTO users (name, age, email) VALUES (?, ?, ?)", ('Alice', 30, 'alice@example.com')) cursor.execute("INSERT INTO users (name, age, email) VALUES (?, ?, ?)", ('Bob', 25, 'bob@example.com')) # 提交事务以保存更改 conn.commit() # 查询数据 cursor.execute("SELECT * FROM users") rows = cursor.fetchall() for row in rows: print(row) # 更新数据 cursor.execute("UPDATE users SET age = ? WHERE name = ?", (31, 'Alice')) conn.commit() # 删除数据 cursor.execute("DELETE FROM users WHERE name = ?", ('Bob',)) conn.commit() # 再次查询数据以查看更改 cursor.execute("SELECT * FROM users") rows = cursor.fetchall() for row in rows: print(row) # 关闭游标和连接 cursor.close() conn.close() # 输出 #(1, 'Alice', 30, 'alice@example.com') #(2, 'Bob', 25, 'bob@example.com') #(1, 'Alice', 31, 'alice@example.com')
在上面的例子中,我们执行了以下操作:
导入sqlite3模块。 连接到SQLite数据库(如果数据库不存在,它将被创建)。 创建一个游标对象。 使用游标执行SQL命令来创建一个表。 提交事务以保存表的创建。 使用占位符和execute()方法插入数据。 再次提交事务以保存数据的插入。 执行一个SELECT查询来检索所有数据,并使用fetchall()方法获取结果。 使用游标执行一个UPDATE命令来更新一条记录。 再次提交事务以保存更改。 使用游标执行一个DELETE命令来删除一条记录。 再次提交事务以保存更改。 执行另一个SELECT查询来验证数据已经被更新和删除。 关闭游标和数据库连接。
请注意,每次对数据库进行更改(如插入、更新或删除)后,都需要调用conn.commit()来提交事务,以确保更改被保存到数据库中。此外,不要忘记在完成所有数据库操作后关闭游标和连接,以释放资源。
石秀被逼走后在附近找了家客栈住下,一天杨雄值班,石秀抓到了那个敲木鱼的头陀,问清情况,把他衣服脱了换了,一刀杀掉。然后去敲木鱼把裴如海引出来,剥了衣裳,三四刀搠死,然后把刀放在头陀的边上。
清早有人早起,发现这两个人,赶快去告官了。
欲知后事如何,且听下回分解!