通过python看世界

Python学习

2021-04-13  本文已影响0人  逛逛_堆栈

第二十天

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数据库交互是比较简单的,添加/删除/修改其实是一样的,重在实践。下次我们来说下多表的操作(查询)。

上一篇下一篇

猜你喜欢

热点阅读