1. pytho连接MySQL
导包
pip install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple/
pymysql的基本使用
- 切记在操作MySQL的时候最后记得关闭数据库连接
- 创建连接需要的参数
user > 数据库的用户名
password >数据库的密码
host > 数据库的地址
database > 数据库的名字
port > 数据库端口
from pprint import pprint
import pymysql
# pymysql的基本使
# 创建数据库
connect = pymysql.connect(
user = 'root',
password = 'root',
host = 'localhost',
database = 'test_day1',
port = 3306
)
# 创建游标
cursor = connect.cursor()
# 准备sql语句
sql = "SELECT stu.sname AS '姓名',stu_new.address AS '地址' FROM stu RIGHT JOIN stu_new ON stu.id = stu_new.id;"
# 执行sql
cursor.execute(sql)
2. python的事务
在python添加数据的时候,默认开启事务,需要commit才能在数据库的表中新增数据
sql = "INSERT INTO stu (sname,sex,age,class,score) values ('python学习','女',18,'python进阶班',99);"
# 执行添加数据的sql后,数据不会马上添加到表中,需要提交后才会添加到表中
res = cursor.execute(sql)
connect.commit()
# 当执行完添加数据的sql后,不想添加数据到表中可以执行rollbak回滚数据
connect.rollback()
3. 新增 or 修改数据
from pprint import pprint
import pymysql
# pymysql的基本使用
def add_or_update(sql):
try:
# 创建数据库
connect = pymysql.connect(
user = 'root',
password = 'root',
host = 'localhost',
database = 'test_day1',
port = 3306
)
# 创建游标
cursor = connect.cursor()
# 执行sql
res = cursor.execute(sql)
connect.commit()
#获取到新增数据的id
add_id = cursor.lastrowid
return add_id
except Exception as e:
print(e)
connect.rollback()
finally:
if cursor:
cursor.close()
if connect:
connect.close()
4. 数据库的查询
查询返回的数据在cursor里
- 获取单条查询的数据 cursor.fetchone()
- 获取所有查询的数据 cursor.fetchall()
- 获取指定数量的数据 cursor.fetchmany( n)
# 查看数据
def view(sql):
try:
# 创建数据库
connect = pymysql.connect(
user = 'root',
password = 'root',
host = 'localhost',
database = 'test_day1',
port = 3306
)
# 创建游标,返回的数据是元组
# cursor = connect.cursor()
# 返回的数据是字典
cursor = connect.cursor(cursor=DictCursor)
# 执行sql
cursor.execute(sql)
res = cursor.fetchall()
print(res)
except Exception as e:
print(e)
finally:
if cursor:
cursor.close()
if connect:
connect.close()