python数据库操作
1 python连接数据库操作
# 第一步 导包
import pymysql
# 2 创建连接
conn = pymysql.connect(
host="192.168.80.100", # 服务器地址
port=3306, database="student", # 端口名 和 数据库名称
user="root", # 数据库用户名
password="123456", # 数据库密码
charset="utf8" # 字符集
)
# 3 获取游标
cursor = conn.cursor()
# 4 执行核心SQL语句
cursor.execute("select version()")
print("查询版本为:", cursor.fetchone()[0])
# 5 关闭游标
cursor.close()
# 6 关闭连接
conn.close()
2 python操作数据库的增删改查
操作主要在 cursor.execute()里面写对应的sql语句即可
-
查询
打印下一条数据:cursor.fetchone()
打印下面全部数据:cursor.fetchall()
打印数据的记录数:cursor.rowcount
重新制定的指定的位置:cursor.rownumber = 0 重置指针 -
插入数据
提交事务 (在mysql当中,如果mysql 的引擎是事务性引擎,那么必须提交事务才能够够把插入,修改,删除的结果生效)
conn.commit() # 提交事务
import pymysql
# 2 创建连接
conn = pymysql.connect(
host="192.168.80.100",
port=3306, database="ssm_lagou_edu",
user="root",
password="Lagou@1234",
charset="utf8"
)
# 3 获取游标
cursor = conn.cursor()
# 执行sql 语句
cursor.execute("select * from course limit 3")
cursor.execute("INSERT INTO `student`.`user` (ename, age, dept_id) VALUES ('张百万', 20, 1);")
cursor.execute("update course set course.course_name='测试开发技术巅峰之路' where course_name='测试开发从入门到精通'")
cursor.execute("delete from course where id=28")
#插入数据的操作 执行完成后,在navicat查看结果
conn.commit()
cursor.close()
conn.close()
3 封装pymysql的增删改查操作
创建config.py文件,用来做数据库配置文件
# 数据库配置文件
HOST="192.168.85.139"
PORT=3306
DATABASE="ssm_lagou_edu"
USERNAME="root"
PASSWORD="Lagou@1234"
CHARSET="UTF8"
db_utils.py 数据库的封装文件
import pymysql
# 导入config文件
import config
class DBUtils:
def __init__(self,
host=config.HOST,
port=config.PORT,
database=config.DATABASE,
user=config.USERNAME,
password=config.PASSWORD,
charset=config.CHARSET):
self.host = host
self.port = port
self.database = database
self.user = user
self.password = password
self.charset = charset
# 建立连接
self.conn = pymysql.connect(host=self.host,
port=self.port,
database=self.database,
user=self.user,
password=self.password,
charset=self.charset)
# 查询
def query_data(self, sql):
# 从实例属性self.conn中获取游标
cursor = self.conn.cursor()
# 执行sql语句
try:
cursor.execute(sql)
print("打印查询结果:", cursor.fetchall())
except Exception as e:
print(e)
finally:
# 关闭游标
cursor.close()
# 插入
def insert_data(self,sql):
# 从实例属性self.conn中获取游标
cursor = self.conn.cursor()
# 执行sql语句
try:
# 执行传入的插入SQL语句
cursor.execute(sql)
# 提交事务
self.conn.commit()
# 打印结果
print("插入代码执行完成")
except Exception as e:
print(e)
finally:
# 关闭游标
cursor.close()
# 修改
def modify_data(self,sql):
# 从实例属性self.conn中获取游标
cursor = self.conn.cursor()
# 执行sql语句
try:
cursor.execute(sql)
# 提交事务
self.conn.commit()
# 打印结果
print("修改代码执行完成")
except Exception as e:
print(e)
finally:
# 关闭游标
cursor.close()
# 删除
def delete_data(self,sql):
# 从实例属性self.conn中获取游标
cursor = self.conn.cursor()
# 执行sql语句
try:
cursor.execute(sql)
# 提交事务
self.conn.commit()
# 打印结果
print("删除操作代码执行完成")
except Exception as e:
print(e)
finally:
# 关闭游标
cursor.close()
def closeDb(self):
self.conn.close()
if __name__ == '__main__':
# 实例化dbUtils
dbutils = DBUtils()
# 执行查询语句
dbutils.query_data("select * from student;")
# 执行insert语句
dbutils.insert_data("INSERT INTO `student`.`user` (ename, age, dept_id) VALUES ('张百万', 20, 1);")
# 执行update语句
dbutils.modify_data('update course set course.course_name="测试从基础到开发" where id = "28";')
# 执行删除语句
dbutils.delete_data('delete from course where id =28;')
# 关闭数据库连接
dbutils.closeDb()