码迷,mamicode.com
首页 > 数据库 > 详细

pymysql模块

时间:2018-12-09 13:59:58      阅读:359      评论:0      收藏:0      [点我收藏+]

标签:支持   ddr   ant   mysqldb   保存   out   row   字符   需要   

pymysql模块

一、模块方法

1.安装pymysql模块

pip install pymysql


2.卸载pymysql模块

pip uninstall pymysql

 

3.连接

db = pymsql.connect()    创建一个连接

参数:
host - 数据库服务器所在的主机
user - 以登录身份登录的用户名
password - 要使用的密码。
database - 要使用的数据库,None不使用特定的数据库。
port - 要使用的MySQL端口,默认通常都可以。(默认值:3306)
bind_address - 当客户端具有多个网络接口时,请指定从中连接到主机的接口。参数可以是主机名或IP地址。
unix_socket - 您可以选择使用unix套接字而不是TCP / IP。
read_timeout - 以秒为单位读取连接的超时(默认值:无 - 无超时)
write_timeout - 以秒为单位写入连接的超时(默认值:无 - 无超时)
charset - 你要使用的Charset。
sql_mode - 要使用的默认SQL_MODE。
read_default_file - 指定my.cnf文件以从[client]部分下读取这些参数。
conv - 使用转换字典而不是默认字典。这用于提供类型的自定义编组和解组。见转换器。
use_unicode - 是否默认为unicode字符串。对于Py3k,此选项默认为true。
client_flag - 要发送给MySQL的自定义标志。在constants.CLIENT中查找潜在值。
cursorclass - 要使用的自定义游标类。
init_command - 建立连接时要运行的初始SQL语句。
connect_timeout - 连接时抛出异常之前的超时。(默认值:10,最小值:1,最大值:31536000)
ssl - 类似于mysql_ssl_set()参数的参数的dict。
read_default_group - 要在配置文件中读取的组。
compress - 不支持
named_pipe - 不支持
autocommit - 自动提交模式。无表示使用服务器默认值。(默认值:False)
local_infile - 允许使用LOAD DATA LOCAL命令的布尔值。(默认值:False)
max_allowed_pa??cket - 发送到服务器的最大数据包大小(以字节为单位)。(默认值:16MB)仅用于限制小于默认值(16KB)的“LOAD LOCAL INFILE”数据包的大小。
defer_connect - 不要明确连接contruction - 等待连接调用。(默认值:False)
auth_plugin_map - 插件名称的一个字典,用于处理该插件的类。该类将Connection对象作为构造函数的参数。该类需要一个认证方法,将认证包作为参数。对于对话框插件,可以使用提示(echo,prompt)方法(如果没有authenticate方法)从用户返回字符串。(实验)
server_public_key - SHA256 authenticnticaiton插件公钥值。(默认:无)
db - 数据库的别名。(与MySQLdb兼容)
passwd - 密码的别名。(与MySQLdb兼容)
binary_prefix - 在字节和bytearray上添加_binary前缀。(默认值:False)

常用连接参数:
    host:数据库服务器的主机名或者IP地址(localhost,IP,10.127.1.1)
    user:数据库服务器的登录用户名
    password:密码
    database:数据库名称
    port:   数据库端口,默认3306
    charset:设置字符集名称

  

4.conn(连接)对象支持的方法

conn = pymysql.connect(host=‘localhost‘,user=‘root‘,password=‘‘,database=‘test‘,charset=‘utf8‘)

conn.cursor(cursor=None)   #创建一个游标
    cursor默认为None,设置为pymysql.cursors.DictCursor,返回值为字典形式
conn.commit()   #提交当前事务 在增、删、改数据时,才会保存数据。
conn.rollback() #回滚当前事务
conn.close()    #关闭连接

  

5.cursor(游标)对象支持的方法

cursor.execute(query,args=None)    #执行一个SQL语句
    参数:
        query 要执行查询的SQL语句
        args  传递的参数可为 元组、列表或字典
    返回值:
        返回值为受影响的行数,类型为int;
        受影响的行数也可以用cursor.rowcount获得

cursor.executemany()    #执行多条语句

cursor.fetchone()   #取得结果的一条数据
cursor.fetchmany(size=None)  #取得结果的多条数据,指定size的值可以设置取多少数据
cursor.fetchall()   #取得结果的所有数据

cursor.close()  #关闭游标对象

  

二、pymysql操作mysql数据库

创建数据库 userinfo
create database userinfo default charset utf8;

创建数据表 user
Create Table: CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` char(32) NOT NULL,
  `password` char(64) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8

插入数据
insert into user(username,password) values (‘felix‘,‘123‘);

 

技术分享图片

 

1.增

 (1)增加1条记录

import pymysql
conn = pymysql.connect(host=‘localhost‘,user=‘root‘,password=‘‘,database=‘userinfo‘,charset=‘utf8‘)  #连接数据库
cursor = conn.cursor()  #创建游标
# sql = "insert into user(username,password) values(‘test‘,‘123‘)"  #SQL语句
sql = "insert into user(username,password) values(%s,%s)"
try:
    # res = cursor.execute(sql)  #执行一个SQL语句
    res = cursor.execute(sql, (‘test‘, 123))
    print(‘受影响的行数:‘,res)
    conn.commit()   #提交数据
except BaseException as err:
    print(‘错误:‘,err)
    conn.rollback()
finally:
    cursor.close()
    conn.close()

 

执行结果:

技术分享图片


(3)增加多条记录
import pymysql
conn = pymysql.connect(host=‘localhost‘,user=‘root‘,password=‘‘,database=‘userinfo‘,charset=‘utf8‘)
cursor = conn.cursor()
# sql = "insert into user(username,password) values(‘test‘,‘123‘)"
sql = "insert into user(username,password) values(%s,%s)"
try:
    # res = cursor.execute(sql)
    res = cursor.executemany(sql, [(‘test1‘, ‘123‘), (‘test2‘, ‘123‘), (‘test3‘, ‘123‘)])
    print(‘受影响的行数:‘,res)
    conn.commit()   #提交数据
except BaseException as err:
    print(‘错误:‘,err)
    conn.rollback()
finally:
    cursor.close()
    conn.close()

 技术分享图片

 

2.删

 

3.改

 

 

4.查

 

 



















pymysql模块

标签:支持   ddr   ant   mysqldb   保存   out   row   字符   需要   

原文地址:https://www.cnblogs.com/Felix-DoubleKing/p/10090668.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!