第二十天
Python与MySQL交互(一)
1、数据库数据准备
创建数据库并添加数据
#学生表
CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
`province` varchar(20) NOT NULL,
`city` varchar(20) NOT NULL,
`town` varchar(20) NOT NULL,
`address` varchar(100) NOT NULL,
`num` char(10) DEFAULT NULL,
`cid` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
)
#班级表
CREATE TABLE `class` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
)
2、Python中操作MySQL数据库
2.1、引入模块pymysql
pymysql类似java中的数据库驱动,有了这个驱动我们才可以连接MySQL数据库。pymysql是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。我们要想引入pymysql,第一步就需要安装pymysql。两种方式:
1、pip3 install PyMySQL
2、PyCharm安装
2.2、创建连接
import pymysql
#创建连接
db = pymysql.connect(host='localhost',port=3306,user='root',
passwd='root',database='python_db')
#对数据的增删改查操作在这里
# 关闭连接
db.close()
其中各个参数:
1、host、连接的MySQL主机,若是本地则为localhost;
2、port、连接的MySQL主机端口,默认3306;
3、user、连接的用户名;
4、passwd、连接的密码;
5、database、数据库名字;
6、charset、编码方式,建议utf-8
2.3、获取cursor
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
2.4、执行操作
2.4.1、执行查询操作
2.4.1.1、查询一行数据
import pymysql
#创建连接
db = pymysql.connect(host='localhost',port=3306,user='root',
passwd='root',database='python_db')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
#创建SQL语句 cursor.execute执行
sql = 'select * from student where id = 1'
count = cursor.execute(sql) # count 查询的同时 返回行数
print(count)
data = cursor.fetchone()
print(data)
# 关闭游标与数据库连接
cursor.close()
db.close()
2.4.1.1、查询多行数据
import pymysql
#创建连接
db = pymysql.connect(host='localhost',port=3306,user='root',
passwd='root',database='python_db')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
#创建SQL语句 cursor.execute执行
sql = 'select * from student'
count = cursor.execute(sql) # count 查询的同时 返回行数
print(count)
data = cursor.fetchall()
if data:
for row in data:
id = row[0]
name = row[1]
province = row[2]
city = row[3]
town = row[4]
address = row[5]
num = row[6]
cid = row[7]
print('编号:%s,姓名:%s,学号:%s,地址:%s%s%s%s' %(id,name,num,province,city,town,address))
# 关闭游标与数据库连接
cursor.close()
db.close()
2.4.2、执行添加操作
#添加
import pymysql
#创建连接
db = pymysql.connect(host='localhost',port=3306,user='root',
passwd='root',database='python_db')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
#创建SQL语句 cursor.execute执行
sql = 'insert into Student(name,num,province,city,town,address,cid)' \
' values ("王五","5410050505","河南省","郑州市","金水区","A地",1)'
try:
#执行SQL语句
cursor.execute(sql)
# 提交执行
db.commit()
except:
#发生异常回滚
db.rollback()
# 关闭游标与数据库连接
cursor.close()
db.close()
2.4.3、执行修改操作
#修改
import pymysql
#创建连接
db = pymysql.connect(host='localhost',port=3306,user='root',
passwd='root',database='python_db')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
#创建SQL语句 cursor.execute执行
sql = 'update Student set name = "%s" where id = %d' %('哈哈哈',3)
try:
#执行SQL语句
cursor.execute(sql)
# 提交执行
db.commit()
except:
#发生异常回滚
db.rollback()
# 关闭游标与数据库连接
cursor.close()
db.close()
2.4.4、执行删除操作
#删除
import pymysql
#创建连接
db = pymysql.connect(host='localhost',port=3306,user='root',
passwd='root',database='python_db')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
#创建SQL语句 cursor.execute执行
sql = 'delete from Student where id = %d' %(3)
try:
#执行SQL语句
cursor.execute(sql)
# 提交执行
db.commit()
except:
#发生异常回滚
db.rollback()
# 关闭游标与数据库连接
cursor.close()
db.close()
2.5、关闭cursor与连接
及时资源的释放。
# 关闭游标与数据库连接
cursor.close()
db.close()
3、最后
Python与MySQL数据库交互是比较简单的,添加/删除/修改其实是一样的,重在实践。下次我们来说下多表的操作(查询)。