Python操作MySQL

1、pip install pymysql

2、

coding:UTF-8

import traceback, pymysql # pip install pymysql

def main(): # 主函数

try:

conn = pymysql.connect(host="localhost", port=3306, charset="UTF8", user="root", password="mysqladmin",

database="yootk") # 数据库连接

print("MySQL数据库连接成功,当前的数据库版本为:%s" % conn.get_server_info())

print("MySQL数据库连接成功,事务提交模式:%s" % conn.get_autocommit())

except Exception:

print(traceback.format_exc())

finally:

conn.close() # 数据库为资源操作,资源操作的最后必须关闭

if name == "main": # 判断程序执行名称

main() # 调用主函数

3、

coding:UTF-8

import traceback, pymysql # pip install pymysql

def main(): # 主函数

try:

conn = pymysql.connect(host="localhost", port=3306, charset="UTF8", user="root", passwd="mysqladmin",

database="yootk") # 数据库连接

print("MySQL数据库连接成功,当前的数据库版本为:%s" % conn.get_server_info())

print("MySQL数据库连接成功,事务提交模式:%s" % conn.get_autocommit())

except Exception:

print(traceback.format_exc())

finally:

conn.close() # 数据库为资源操作,资源操作的最后必须关闭

if name == "main": # 判断程序执行名称

main() # 调用主函数

4、

coding:UTF-8

import traceback, pymysql # pip install pymysql

传统的pymysql组件支持的是原生的SQL

SQL = "INSERT INTO user(name,age,birthday,salary,note) VALUES ('小李老师', 18, '2010-09-19', 8000.0, 'www.yootk.com')"

def main(): # 主函数

try:

conn = pymysql.connect(host="localhost", port=3306, charset="UTF8", user="root", passwd="mysqladmin",

database="yootk") # 数据库连接

cmd = conn.cursor() # 获得一个数据库的操作对象

cmd.execute(SQL) # 执行SQL语句

conn.commit() # 提交事务,如果不提交事务,更新不生效

print("更新影响的数据行数:%s" % cmd.rowcount)

print("最后一次增长ID:%s" % cmd.lastrowid)

except Exception:

print(traceback.format_exc())

finally:

conn.close() # 数据库为资源操作,资源操作的最后必须关闭

if name == "main": # 判断程序执行名称

main() # 调用主函数

5、

coding:UTF-8

import traceback, pymysql # pip install pymysql

传统的pymysql组件支持的是原生的SQL

SQL = "UPDATE user SET name='周沐言', age=26 WHERE uid=26"

def main(): # 主函数

try:

conn = pymysql.connect(host="localhost", port=3306, charset="UTF8", user="root",

passwd="mysqladmin", database="yootk") # 数据库连接

cmd = conn.cursor() # 获得一个数据库的操作对象

cmd.execute(SQL) # 执行SQL语句

conn.commit() # 提交事务,如果不提交事务,更新不生效

print("更新影响的数据行数:%s" % cmd.rowcount)

except Exception:

print(traceback.format_exc())

finally:

conn.close() # 数据库为资源操作,资源操作的最后必须关闭

if name == "main": # 判断程序执行名称

main() # 调用主函数

6、

coding:UTF-8

import traceback, pymysql # pip install pymysql

传统的pymysql组件支持的是原生的SQL

SQL = "DELETE FROM user WHERE uid=26"

def main(): # 主函数

try:

conn = pymysql.connect(host="localhost", port=3306, charset="UTF8", user="root",

passwd="mysqladmin", database="yootk") # 数据库连接

cmd = conn.cursor() # 获得一个数据库的操作对象

cmd.execute(SQL) # 执行SQL语句

conn.commit() # 提交事务,如果不提交事务,更新不生效

print("更新影响的数据行数:%s" % cmd.rowcount)

except Exception:

print(traceback.format_exc())

finally:

conn.close() # 数据库为资源操作,资源操作的最后必须关闭

if name == "main": # 判断程序执行名称

main() # 调用主函数

7、

coding:UTF-8

import traceback, pymysql # pip install pymysql

传统的pymysql组件支持的是原生的SQL

SQL = "SELECT uid,name,age,birthday,salary,note FROM user"

def main(): # 主函数

try:

conn = pymysql.connect(host="localhost", port=3306, charset="UTF8", user="root",

passwd="mysqladmin", database="yootk") # 数据库连接

cmd = conn.cursor() # 获得一个数据库的操作对象

cmd.execute(SQL) # 执行SQL查询语句

for user_row in cmd.fetchall(): # 返回查询结果

uid = user_row0

name = user_row1

age = user_row2

birthday = user_row3

salary = user_row4

note = user_row5

print("用户ID:%s、姓名:%s、年龄:%s、birthday:%s、salary:%s、note:%s" % (uid, name, age, birthday, salary, note))

except Exception:

print(traceback.format_exc())

finally:

conn.close() # 数据库为资源操作,资源操作的最后必须关闭

if name == "main": # 判断程序执行名称

main() # 调用主函数

8、

coding:UTF-8

import traceback, pymysql # pip install pymysql

传统的pymysql组件支持的是原生的SQL

SQL = "SELECT COUNT(*) FROM user"

def main(): # 主函数

try:

conn = pymysql.connect(host="localhost", port=3306, charset="UTF8", user="root",

passwd="mysqladmin", database="yootk") # 数据库连接

cmd = conn.cursor() # 获得一个数据库的操作对象

cmd.execute(SQL) # 执行SQL查询语句

print("user表的数据行数:%s" % cmd.fetchone())

except Exception:

print(traceback.format_exc())

finally:

conn.close() # 数据库为资源操作,资源操作的最后必须关闭

if name == "main": # 判断程序执行名称

main() # 调用主函数

9、

coding:UTF-8

import traceback, pymysql # pip install pymysql

name = "Mr'Yootk" # 模拟为键盘输入

age = 16 # 模拟为键盘输入

birthday = "2016-06-28" # 模拟为键盘输入

salary = 6000.00 # 模拟为键盘输入

note = "www.yootk.com"

SQL = "INSERT INTO user(name,age,birthday,salary,note) VALUES ('%s', %s, '%s', %s, '%s')" % (name, age, birthday, salary, note)

print(SQL)

def main(): # 主函数

try:

conn = pymysql.connect(host="localhost", port=3306, charset="UTF8", user="root",

passwd="mysqladmin", database="yootk") # 数据库连接

cmd = conn.cursor() # 获得一个数据库的操作对象

cmd.execute(SQL) # 执行SQL语句

conn.commit() # 提交事务,如果不提交事务,更新不生效

print("更新影响的数据行数:%s" % cmd.rowcount)

print("最后一次增长ID:%s" % cmd.lastrowid)

except Exception:

print(traceback.format_exc())

finally:

conn.close() # 数据库为资源操作,资源操作的最后必须关闭

if name == "main": # 判断程序执行名称

main() # 调用主函数

10、

coding:UTF-8

import traceback, pymysql # pip install pymysql

name = "Mr'Yootk" # 模拟为键盘输入

age = 16 # 模拟为键盘输入

birthday = "2016-06-28" # 模拟为键盘输入

salary = 6000.00 # 模拟为键盘输入

note = "www.yootk.com"

SQL = "INSERT INTO user(name,age,birthday,salary,note) VALUES (%s, %s, %s, %s, %s)" # 预处理的模式

def main(): # 主函数

try:

conn = pymysql.connect(host="localhost", port=3306, charset="UTF8", user="root",

passwd="mysqladmin", database="yootk") # 数据库连接

cmd = conn.cursor() # 获得一个数据库的操作对象

cmd.execute(query=SQL, args=name, age, birthday, salary, note) # 执行SQL语句

conn.commit() # 提交事务,如果不提交事务,更新不生效

print("更新影响的数据行数:%s" % cmd.rowcount)

print("最后一次增长ID:%s" % cmd.lastrowid)

except Exception:

print(traceback.format_exc())

finally:

conn.close() # 数据库为资源操作,资源操作的最后必须关闭

if name == "main": # 判断程序执行名称

main() # 调用主函数

11、

coding:UTF-8

import traceback, pymysql # pip install pymysql

传统的pymysql组件支持的是原生的SQL

SQL = "SELECT uid,name,age,birthday,salary,note FROM user WHERE uid=%s" # 占位符

def main(): # 主函数

try:

conn = pymysql.connect(host="localhost", port=3306, charset="UTF8", user="root",

passwd="mysqladmin", database="yootk") # 数据库连接

cmd = conn.cursor() # 获得一个数据库的操作对象

cmd.execute(query=SQL, args=1) # 执行SQL查询语句

for user_row in cmd.fetchall(): # 返回查询结果

uid = user_row0

name = user_row1

age = user_row2

birthday = user_row3

salary = user_row4

note = user_row5

print("用户ID:%s、姓名:%s、年龄:%s、birthday:%s、salary:%s、note:%s" % (uid, name, age, birthday, salary, note))

except Exception:

print(traceback.format_exc())

finally:

conn.close() # 数据库为资源操作,资源操作的最后必须关闭

if name == "main": # 判断程序执行名称

main() # 调用主函数

12、

coding:UTF-8

import traceback, pymysql # pip install pymysql

传统的pymysql组件支持的是原生的SQL

SQL = "SELECT uid,name,age,birthday,salary,note FROM user WHERE name LIKE %s LIMIT %s, %s" # 占位符

def main(): # 主函数

keyword= "%沐言%" # 模糊查询关键字

current_page = 1 # 当前所在页

line_size = 2 # 每页显示的数据行

try:

conn = pymysql.connect(host="localhost", port=3306, charset="UTF8", user="root",

passwd="mysqladmin", database="yootk") # 数据库连接

cmd = conn.cursor() # 获得一个数据库的操作对象

cmd.execute(query=SQL, args=keyword, (current_page - 1) \* line_size , line_size) # 执行SQL查询语句

for user_row in cmd.fetchall(): # 返回查询结果

uid = user_row0

name = user_row1

age = user_row2

birthday = user_row3

salary = user_row4

note = user_row5

print("用户ID:%s、姓名:%s、年龄:%s、birthday:%s、salary:%s、note:%s" % (uid, name, age, birthday, salary, note))

except Exception:

print(traceback.format_exc())

finally:

conn.close() # 数据库为资源操作,资源操作的最后必须关闭

if name == "main": # 判断程序执行名称

main() # 调用主函数

13、

coding:UTF-8

import traceback, pymysql # pip install pymysql

SQL = "INSERT INTO user(name,age,birthday,salary,note) VALUES (%s, %s, %s, %s, %s)" # 预处理的模式

def main(): # 主函数

try:

conn = pymysql.connect(host="localhost", port=3306, charset="UTF8", user="root",

passwd="mysqladmin", database="yootk") # 数据库连接

cmd = conn.cursor() # 获得一个数据库的操作对象

data_list = \[\] # 创建一个列表

for num in range(1001):

data_list.append(("沐言优拓 - %s" % num, 18, "2008-08-19", 5000.00, "www.yootk.com"))

if num % 20 == 0: # 每保存20条数据就进行更新

cmd.executemany(query=SQL, args=data_list)

data_list.clear()

conn.commit() # 提交事务,如果不提交事务,更新不生效

except Exception:

print(traceback.format_exc())

finally:

conn.close() # 数据库为资源操作,资源操作的最后必须关闭

if name == "main": # 判断程序执行名称

main() # 调用主函数

14、

coding:UTF-8

import traceback, pymysql # pip install pymysql

SQL = "INSERT INTO user(name,age,birthday,salary,note) VALUES (%s, %s, %s, %s, %s)" # 预处理的模式

def main(): # 主函数

try:

conn = pymysql.connect(host="localhost", port=3306, charset="UTF8", user="root",

passwd="mysqladmin", database="yootk") # 数据库连接

conn.autocommit(True) # 自动事务提交

cmd = conn.cursor() # 获得一个数据库的操作对象

cmd.execute(query=SQL, args=("李沐言", 18, "2008-08-19", 5000.00, "www.yootk.com"))

except Exception:

print(traceback.format_exc())

finally:

conn.close() # 数据库为资源操作,资源操作的最后必须关闭

if name == "main": # 判断程序执行名称

main() # 调用主函数

15、

coding:UTF-8

import traceback, pymysql # pip install pymysql

SQL = "INSERT INTO user(name,age,birthday,salary,note) VALUES (%s, %s, %s, %s, %s)" # 预处理的模式

def main(): # 主函数

try:

conn = pymysql.connect(host="localhost", port=3306, charset="UTF8", user="root",

passwd="mysqladmin", database="yootk", autocommit=True) # 数据库连接

cmd = conn.cursor() # 获得一个数据库的操作对象

cmd.execute(query=SQL, args=("王沐言", 18, "2008-08-19", 5000.00, "www.yootk.com"))

except Exception:

print(traceback.format_exc())

finally:

conn.close() # 数据库为资源操作,资源操作的最后必须关闭

if name == "main": # 判断程序执行名称

main() # 调用主函数

16、

coding:UTF-8

import traceback, pymysql # pip install pymysql

SQL_A = "INSERT INTO user(name, ,note) VALUES ('小李', 'www.yootk.com')"

SQL_B = "INSERT INTO user(name, ,note) VALUES ('Mr'Yootk', 'www.yootk.com')"

SQL_C = "INSERT INTO user(name, ,note) VALUES ('小沐', 'www.yootk.com')"

def main(): # 主函数

try:

conn = pymysql.connect(host="localhost", port=3306, charset="UTF8", user="root",

passwd="mysqladmin", database="yootk", autocommit=True) # 数据库连接

cmd = conn.cursor() # 获得一个数据库的操作对象

cmd.execute(query=SQL_A)

cmd.execute(query=SQL_B)

cmd.execute(query=SQL_C)

except Exception:

print(traceback.format_exc())

finally:

conn.close() # 数据库为资源操作,资源操作的最后必须关闭

if name == "main": # 判断程序执行名称

main() # 调用主函数

17、

coding:UTF-8

import traceback, pymysql # pip install pymysql

SQL_A = "INSERT INTO user(name, ,note) VALUES ('小李', 'www.yootk.com')"

SQL_B = "INSERT INTO user(name, ,note) VALUES ('Mr'Yootk', 'www.yootk.com')"

SQL_C = "INSERT INTO user(name, ,note) VALUES ('小沐', 'www.yootk.com')"

def main(): # 主函数

try:

conn = pymysql.connect(host="localhost", port=3306, charset="UTF8", user="root",

passwd="mysqladmin", database="yootk", autocommit=False) # 数据库连接

conn.autocommit(False) # 重复设置

cmd = conn.cursor() # 获得一个数据库的操作对象

cmd.execute(query=SQL_A)

cmd.execute(query=SQL_B)

cmd.execute(query=SQL_C)

conn.commit() # 代码执行正确事务提交

except Exception:

conn.rollback() # 事务回滚

print(traceback.format_exc())

finally:

conn.close() # 数据库为资源操作,资源操作的最后必须关闭

if name == "main": # 判断程序执行名称

main() # 调用主函数

18、

coding:UTF-8

import traceback, pymysql, DBUtils.PooledDB # pip install DBUtils

SQL = "INSERT INTO user(name, note) VALUES ('小李老师', 'www.yootk.com')"

def main(): # 主函数

try:

pool = DBUtils.PooledDB.PooledDB(

creator=pymysql, # 连接池管理的是pymysql的操作类型

mincached=2, # 空闲时维持两个连接

maxcached=5, # 空闲时不超过5个连接

maxconnections=20 , # 最大的连接数(测试)

blocking=True, # 引入阻塞队列

host="localhost", # 主机名称

port=3306, # 端口

user="root", # 用户名

passwd="mysqladmin", # 密码

database="yootk", # 数据库

charset="UTF8" # 字符编码

)

conn = pool.connection() # 获取数据库连接

cmd = conn.cursor() # 获得一个数据库的操作对象

cmd.execute(query=SQL)

conn.commit() # 代码执行正确事务提交

except Exception:

conn.rollback() # 事务回滚

print(traceback.format_exc())

finally:

conn.close() # 数据库为资源操作,资源操作的最后必须关闭

if name == "main": # 判断程序执行名称

main() # 调用主函数

相关推荐
这个DBA有点耶7 小时前
NULL不是空——数据库里最反直觉的设计,90%新人踩过的坑
数据库·mysql·代码规范
用户8356290780517 小时前
Python 实现 PDF 文件加密与解密方法
后端·python
用户8356290780517 小时前
使用 Python 冻结与拆分 Excel 窗格教程
后端·python
这个DBA有点耶9 小时前
AI写的SQL跑崩了生产库,这锅谁背?
数据库·人工智能·程序员
镜舟科技10 小时前
Databricks 再提 LTAP,AI 时代的数据底座为何重回大一统叙事?
数据库·架构·agent
Databend10 小时前
从湖仓升级为 Agent 时代的数据控制面,Snowflake 和 Databricks 有哪些布局
大数据·数据库·agent
ClouGence14 小时前
SQL Server CDC 能放到 Always On 备库读吗?一文讲透原理与实践
数据库·sql server
你好潘先生15 小时前
别再记命令了,用 yeero do 说句人话就能跑脚本,而且不烧 token
服务器·python·命令行
Agent_大师16 小时前
WebSocket 行情重连成功,K线缺口不会自动消失
python
荣码16 小时前
LLM结构化输出:让AI返回JSON而不是废话,我踩了4个坑
java·python