python pymysql(6)

连接数据库

①在终端下载安装 pymysql库:pip install pymysql

②并导入pymyqsl包: import pymysql

③连接:pymysql.connect(host='localhost',user='root', password='密码', database='数据库名称',port=3306)                   

注:红色字体均为默认下的状态,一般无需更改

创建数据库表    

import pymysql

db=pymysql.connect(host='localhost',user='root', password='密码', database='数据库名称称',port=3306) 

try:
    cursor = db.cursor()#使用 cursor() 方法创建一个游标对象 cursor
    cursor.execute('DROP TABLE IF EXISTS table1')#创建表之前检验是否已有该表,有则删除
    #用sql语句创建表table1,并定义各参数
    sqlQuery = "CREATE TABLE table1(Name CHAR(20) NOT NULL ,professional CHAR(20),number int )"
    cursor.execute(sqlQuery)
except pymysql.Error as error:
    print('表创建失败' + str(error))

db.close()# 关闭数据库连接

数据库的插入

import pymysql

db=pymysql.connect(host='localhost',user='root', password='密码', database='数据库名称称',port=3306) #数据库连接

cursor = db.cursor()#创建一个游标对象

try:
    sqlQuery = " INSERT INTO table1(Name, professional,number) VALUE (%s,%s,%s) "
    #使用sql语句,这里要接收的参数都用%s占位符.要注意的是,无论你要插入的数据是什么类型,占位符永远都要用%s
    value = ('姓名', '专业', 110)#插入内容
    cursor.execute(sqlQuery, value)
    db.commit()#真正提交到数据库

except pymysql.Error as error:
    print('数据插入失败' + str(error))
    db.rollback()## 如果发生错误则回滚

数据库查询操作

Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。

  • fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
  • fetchall(): 接收全部的返回结果行.
  • rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。

SQL 查询语句示例

sql = "SELECT * FROM table1 WHERE Name=%s"
value = ('姓名')
cursor.execute(sql,value)
sql = "SELECT * FROM table1 WHERE Name='姓名'"
cursor.execute(sql)

sql = "SELECT * FROM table1 WHERE number=%s"%(数值)
cursor.execute(sql)
import pymysql

db=pymysql.connect(host='localhost',user='root', password='密码', database='数据库名称称',port=3306) #数据库连接

cursor = db.cursor()#创建一个游标对象
 
# SQL 查询语句
sql = "SELECT * FROM 表名 WHERE 参数名 = %s" % (值)
try:
   # 执行SQL语句
   cursor.execute(sql)

   # 获取所有记录列表
   results = cursor.fetchall()

   for row in results:
      参数1 = row[0]
      参数2 = row[1]

       # 打印结果
      print ("参数1=%s,参数2=%s" %(参数1,参数2 ))
except:
   print ("Error: unable to fetch data")
 
# 关闭数据库连接
db.close()

更新表中数据

import pymysql

db=pymysql.connect(host='localhost',user='root', password='密码', database='数据库名称称',port=3306) #数据库连接

cursor = db.cursor()#创建一个游标对象
try:
    #更新表中数据
    sql = "UPDATE 表名 SET 需改的参数= %s WHERE 需改的参数=%s"
    value = ('新的内容', '原先的内容')
    cursor.execute(sql, value)
    db.commit()
    print('数据更新成功!')
except pymysql.Error as error:
    print("数据更新失败:" + str(error))
    db.rollback()  # 如果发生错误则回滚

删除表中数据

import pymysql

db=pymysql.connect(host='localhost',user='root', password='密码', database='数据库名称称',port=3306) #数据库连接

cursor = db.cursor()#创建一个游标对象
try:
    sql="DELETE FROM table1 where Name=%s"
    value=('姓名1')
    cursor.execute(sql,value)
    db.commit()
    print('Date Deleted Successfully')
except pymysql.Error as error:
    print("数据删除失败:" + str(error))
    db.rollback()  # 如果发生错误则回滚

删除表中数据

import pymysql

db=pymysql.connect(host='localhost',user='root', password='密码', database='数据库名称称',port=3306) #数据库连接

cursor = db.cursor()#创建一个游标对象   
try:
    #删除表
    sql="DROP TABLE IF EXISTS 表名"
    cursor.execute(sql)
    db.commit()
    print('表删除成功')
except pymysql.Error as error:
    print("表删除失败:" + str(error))
    db.rollback()  # 如果发生错误则回滚

cursor游标对象

概念

  • 游标(Cursor)它使用户可逐行访问由SQL Server返回的结果集。 
  • 把集合操作转换成单个记录处理方式。
  • 用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的集合。
  • 游标机制允许用户在SQL server内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。

用途    

  ①执行命令,

  •  callproc(self, procname, args):用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数
  • execute(self, query, args):执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数
  • executemany(self, query, args):执行单挑sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数
  • nextset(self):移动到下一个结果集

②接收返回值

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值