python与数据库连接

    • 一.安装三方库pymysql
    • 二.数据库连接操作
    • 三.pysql相关操作介绍
      • 1. 创建数据库表
      • 2. 插入数据
      • 3. 数据库查询
      • 4. 更新数据
      • 5. 删除数据
    • 四.总结

一.安装三方库pymysql

下载命令:

pip install PyMySQL
一般我们会使用镜像下载,这样会比较快,比如清华镜像: pip install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple

连接数据库之前,我们需要知道自己需要连接数据库的用户名,密码,数据库名等信息

二.数据库连接操作

步骤:

  • 连接connect()
  • 创建cursor()对象
  • 使用excute()执行SQL语句
  • 使用fetchone()或者fetchall()返回查询结果
  • 关闭数据连接close()
import pymysql# 打开数据库连接,database是所需要访问的数据库db=pymysql.connect(host='localhost',user='root',password='自己的密码',database='数据库名')cursor=db.cursor()#使用cursor()方法创建一个游标对象cursorcursor.execute("select version()")#使用execute()方法执行SQL语句data=cursor.fetchone()#返回单个元组,也就是一条记录,如果没有则返回None# data=cursor.fetchall()#返回多条记录,如果没有,则返回()print("SQL语句执行后返回的结果:",data)db.close()#关闭数据的连接

三.pysql相关操作介绍

1. 创建数据库表

  • 这里写sql语句与MYSQL里面有一点不一样,这里创建数据表,含有中文字段不需要加单引号,加了反而会报错
  • 如果需要执行的SQL语句语法有误,执行后,python这边也会返回错误原因
import pymysql# 打开数据库连接,database是所需要访问的数据库db=pymysql.connect(host='localhost',user='root',password='',database='stumis')cursor=db.cursor()#使用cursor()方法创建一个游标对象cursorcreate_sql="CREATE TABLE shopinfo(店名 CHAR(20) NOT NULL,销售量 INT)"cursor.execute(create_sql)#使用execute()方法执行SQL语句# data=cursor.fetchall()#返回多条记录,如果没有,则返回()db.close()#关闭数据的连接

2. 插入数据

插入数据,需要加一步操作,使用commit()提交给数据库执行

import pymysql# 打开数据库连接,database是所需要访问的数据库db=pymysql.connect(host='localhost',user='root',password='',database='stumis')cursor=db.cursor()#使用cursor()方法创建一个游标对象cursorcreate_sql="""INSERT INTO shopinfo VALUES("小小呀",343),("大惠",232),("课课",34)"""cursor.execute(create_sql)#使用execute()方法执行SQL语句db.commit()#提交到数据库执行db.close()#关闭数据的连接print("wancheng")

使用另一种方法插入数据
注意%s有双引号与没有双引号的区别,有的是表示数据为字符,没有表示属于数字型

import pymysql# 打开数据库连接,database是所需要访问的数据库db=pymysql.connect(host='localhost',user='root',password='',database='stumis')cursor=db.cursor()#使用cursor()方法创建一个游标对象cursort_data=(("小呀",343),("惠",232),("课",34))for i in t_data:print(type(i))create_sql="INSERT INTO shopinfo VALUES('%s',%s)"%icursor.execute(create_sql)#使用execute()方法执行SQL语句db.commit()#提交到数据库执行db.close()#关闭数据的连接print("wancheng")

结果如下:

3. 数据库查询

简单查询:

import pymysqldb=pymysql.connect(host='localhost',user='root',password='',database='stumis')cursor=db.cursor()sele_sql='SELECT * FROM shopinfo'cursor.execute(sele_sql)data=cursor.fetchall()db.close()print(data)#返回结果:#(('小小呀', 343), ('大惠', 232), ('课课', 34))

其他查询方式:
中文字段不需要加单引号在这里,不然会返回空元组

import pymysqldb=pymysql.connect(host='localhost',user='root',password='',database='stumis')cursor=db.cursor()sele_sql="SELECT * FROM shopinfo WHERE 销售量>%s"%100cursor.execute(sele_sql)data=cursor.fetchall()db.close()print(data)##返回结果:#(('小小呀', 343), ('大惠', 232))

4. 更新数据

import pymysqldb=pymysql.connect(host='localhost',user='root',password='',database='stumis')cursor=db.cursor()sele_sql="SELECT * FROM shopinfo"update_sql="update shopinfo SET 销售量=%s WHERE 店名='%s'"%(100,'大惠')#也可以这样写#update_sql="update shopinfo set 销售量=100 where 店名='大惠'"cursor.execute(update_sql)db.commit()#修改后需要提交#修改后查询shopinfocursor.execute(sele_sql)data=cursor.fetchall()db.close()print(data)#返回结果:#(('小小呀', 343), ('大惠', 100), ('课课', 34), ('课', 34))

5. 删除数据

import pymysqldb=pymysql.connect(host='localhost',user='root',password='',database='stumis')cursor=db.cursor()sele_sql="SELECT * FROM shopinfo"# update_sql="update shopinfo SET 销售量=%s WHERE 店名='%s'"%(100,'大惠')delete_sql="DELETE FROM shopinfo WHERE 店名='大惠'"cursor.execute(delete_sql)db.commit()#修改后需要提交#修改后查询shopinfocursor.execute(sele_sql)data=cursor.fetchall()db.close()print(data)'''返回结果:(('小小呀', 343), ('课课', 34), ('课', 34)),删除的部分没有在表里面了'''

四.总结

以上关于直接使用python连接mysql数据库,对数据库进行增删改查操作,这个可以使用在,当我们的数据量很大的时候,可以选择使用sql来存储数据。在python里,只要是对表进行修改,都需要增加一步操作commit()提交操作,不然不会执行成功,其次就是注意汉字在这里的书写方式不同于MySQL语句那样添加单引号。