一、准备
软件 | 版本 |
---|---|
python | 版本3.7 |
pycharm | 版本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()