Python 第三方模块 MySQL

4 篇文章 0 订阅

一.pymysql模块
1.简介
(1)简介:

pymsql是Python中用于操作MySQL的模块

(2)安装:

pip install pymysql

2.使用:

关于commit 与roback:https://www.cnblogs.com/1832921tongjieducn/p/11128951.html
关于游标:https://blog.csdn.net/qq_27825451/article/details/81477618

import pymysql

#连接数据库:
pymysql.connect(host='...',port=...,user='...',passwd='...',db='...')
#返回1个连接对象,用于获得游标
#参数说明:
  host:IP地址
  port:端口号
  user:用户名
  passwd:密码;没有密码时为passwd=''
  db:要连接的数据库名;必需已经存在,否则报错
#实例:
  conn=pymysql.connect(host='127.0.0.1',port=3306,user='root',passwd='',db='y')

#添加数据:
obj.cursor(cursor=...)
#obj为.connect()返回的连接对象
#返回1个游标(cursor),用于进行具体操作
#参数说明:
  cursor:返回数据结果的数据类型;默认是tuple
    cursor=pymysql.cursors.DictCursor:指定返回dict
#实例:
  cursor=conn.cursor()
  cur_dict=conn.cursor(cursor=pymysql.cursors.DictCursor)

sql="""CREATE TABLE EMPLOYEE (
       FIRST_NAME  CHAR(20) NOT NULL,
       LAST_NAME  CHAR(20),
       AGE INT,
       SEX CHAR(1),
       INCOME FLOAT)"""
#执行命令:
cursor.execute("cmd")
#cursor是.cursor()返回的游标
#返回受命令影响的行数(如插入/修改/删除记录数)
#参数说明:
  cmd:要执行的命令;可以是str/variable(变量需为命令的str形式)
#实例:
  cursor.execute(sql)

#创建表:
row_affected=cursor.execute("create table t1(id INT ,name VARCHAR(20))")
#插入数据:
row_affected=cursor.execute("INSERT INTO t1(id,name) values (1,'alvin'),(2,'xialv')")
#更新表:
cursor.execute("update t1 set name = 'silv2' where id=2")
#查询数据
row_affected=cursor.execute("select * from t1")

#查询数据:
cursor.fetchone():返回第1条记录
cursor.fetchmany(n):返回前n条记录
cursor.fetchall():返回所有记录
#每条记录为1个tuple,如一多条共同构成1个外层tuple
#没有结果时fetchone()返回None,fetchmany()/fetchall()返回()
#取出后游标移动到下1条记录开头
#实例:
  one=cursor.fetchone()
  many=cursor.fetchmany(2)
  all=cursor.fetchall()

#移动游标:
cursor.scroll(n,mode='...'):将游标移动指定记录数
#参数说明:
  n:移动几条记录;>0向下,<0向上,=0不移动(absolute下为移至开头)
  mode:移动模式;可为relative(以当前位置为基准),absolute(以开始位置为基准)
#实例:
  cursor.scroll(-1,mode='relative')#相对当前位置上移1条记录
  cursor.scroll(1,mode='absolute')#相对绝对位置下移1条记录;接下来再取将取到第2条

#提交:
conn.commit()
#如果不提交,相当于没有执行

#关闭游标/连接
cursor.close()
conn.close()

在这里插入图片描述
二.MySQLdb与MySQLClient模块
1.简介
(1)简介:

这是Python中用于操作MySQL的另外2个模块.MySQLdb只支持python2;而MySQLClient则是MySQLdb的1个分支,解决了与python3的兼容问题
MySQLClient与pymysql的作者是同1个人.相较而言,前者是1个C扩展模块,编译安装时可能出现各种错误,但速度更快;而后者是纯Python实现的,可
很好地与gevent/eventlet结合,但速度较慢

mysqlclient-python is much faster than PyMySQL.
When to use PyMySQL is:
You can’t use libmysqlclient for some reason
You want to use monkeypatched socket of gevent or eventlet
You wan’t to hack mysql protocol

(2)安装:

pip install MySQLClient

2.使用:

import MySQLdb#注意:不是import MySQLClient

语法与pymysql模块几乎相同
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值