Python,操作数据库实例

mac2025-06-01  31

一、准备

软件版本python版本3.7pycharm版本2018.2数据库mysql5

注意: python2.7以后的版本不再支持 MySQLdb这个模块。 需要用pymysql,需使用命令行切换到python的安装路径下的scripts子目录下安装(pip install pymysql)输入:

pip install pymysql

二、实现连接数据库进行增删改查

(V1):连接数据库,输出版本信息
import pymysql #连接数据库 conn = pymysql.Connect( host = 'localhost', port = 3306, user = 'root', password = '123456', database = 'mysql_sun', charset = 'utf8' ) #获取游标,使用cuisor方法 cursor = conn.cursor() #用excute方法执行sql语句 sql = 'select version()' cursor.execute(sql) #使用fetchall方法获取全部数据,fetchone方法获取一条数据, res = cursor.fetchone() print(res) #关闭数据库 conn.close()
(V2):连接数据库,创建数据库表
import pymysql #连接数据库 conn = pymysql.Connect( host = 'localhost', port = 3306, user = 'root', password = '123456', database = 'mysql_sun', charset = 'utf8' ) #获取游标,使用cuisor方法 cursor = conn.cursor() #用excute方法执行sql语句 sql = """ create table project( id int not null, pro_no int, pro_name char(20), start_time datetime, total_price double(32,2) ) """ cursor.execute(sql) #使用fetchall方法获取全部数据,fetchone方法获取一条数据, #关闭数据库 conn.close()
(V3):在创建数据库表中插入数据,并增加捕获异常

此处有个问题未解决:关于插入数据的字段start_time,通过程序没有插入正确

#在表中插入数据 import pymysql #连接数据库 conn = pymysql.Connect( host = 'localhost', port = 3306, user = 'root', password = '123456', database = 'mysql_sun', charset = 'utf8' ) #获取游标,使用cuisor方法 cursor = conn.cursor() #用excute方法执行sql语句 sql = """ insert into project(pro_no,pro_name,total_price) values(3,'WEB',9999.99) """ try: #执行SQL语句 cursor.execute(sql) #提交到数据库执行 conn.commit() except: #如果有错误,回滚数据库 conn.rollback() #关闭数据库连接 conn.close()
(V4):从数据库表中查询数据,并打印
#从表中,查询,并打印数据 import pymysql import csv #连接数据库 conn = pymysql.Connect( host = 'localhost', port = 3306, user = 'root', password = '123456', database = 'mysql_sun', charset = 'utf8' ) #获取游标,使用cuisor方法 cursor = conn.cursor() #用excute方法执行sql语句 sql = """ select pro_no,pro_name,total_price from project where total_price>4000 """ try: #执行SQL语句 cursor.execute(sql) #提交到数据库执行 table = cursor.fetchall() for row in table: print(row) conn.commit() except: #如果有错误,回滚数据库 conn.rollback() #关闭数据库连接 conn.close()
最新回复(0)