3.pymysql .connect属性方法(tcy)

mysql连接 2019/1/24

1.connect()创建connection连接

         connect() 方法生成一个 connect 对象, 我们通过这个对象来访问数据库

  2.connect对象方法:

2 begin()

作用:开启一个事务,类似于BEGIN TRANSACTION

3 commit()将任何挂起的事务提交到数据库

作用:提交事务的所有操作,具体地说就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,如果是支持事务的数据库执行增删改后没有commit则数据库默认回滚

 注意:

只有对磁盘上的数据进行更新时,才会调用commit()。比如INSERT和REPLACE等操作。此操作结束表示事务的正常结束。

数据库支持自动提交功能则必须先关闭此功能。可以提供接口方法以将其重新打开。

不支持事务的数据库模块应该使用void功能实现此方法。

4 rollback()回滚当前事务

如果数据库提供了事务,此方法会导致数据库回滚到任何挂起事务的开头。

在不提交更改的情况下关闭连接将导致执行隐式回滚。

5 cursor(cursor=None) 创建游标对象用于执行对数据的操作

参数cursor用来指定创建cursor对象的类型是Cursor,SSCursor,DictCursor,SSDictCursor。None的意思是使用Cursor。

从同一连接创建的游标不是孤立,即游标对数据库所做的任何更改都会被其他游标立即看到

6 open判断连接是否打开,如果打开返回True否在返回False


con=pymysql.connect(host='localhost',user='root',password='1234')

con.select_db('pymysql')

print(con.open) # True


7 ping(reconnect=True)

作用:检查服务器是否处于活动状态。 正常返回None

参数reconnect表示重新连接默认设置为True,意思是:如果连接已经关闭就重新连接。当连接关闭并且reconnect=False时会抛出错误。


8 select_db(db)选择数据库。参数db表示选择数据库的名字。

9 close()关闭连接; 关闭后无法再进行操作,除非再次创建连接

3.实例

import pymysql as mysql
    
# 实例1:
con=mysql.connect( host='localhost',user='root',password='root',database='new_futures')
#一般连接将数据读入本地内存
    
# 实例2:
con=mysql.connect(host='localhost',port=3306,user='root',passwd='root',con='new_futures',
               charset='utf8',cursorclass = mysql.cursors.SSCursor)# '大数据连接
    
# 实例3:
#连接配置信息
 config = {
          'host':'127.0.0.1',#'localhost'
          'port':3306,     #MySQL默认端口
          'user':'root',    #mysql默认用户名
          'password':'1234',
          'con':'house',  #数据库
          'charset':'utf8mb4',
          'cursorclass':mysql.cursors.DictCursor,
             }
mysql= mysql.connect(**config)# 创建连接

 

实例3.4:创建一个连接(不连接到指定的DB)

con = mysql.connect(host = 'localhost', user= 'root', passwd = 'root',port=3306,charset='utf8')
cursor = con.cursor()# 获取操作游标

cursor.execute("SELECT VERSION()")# 使用 execute 方法执行SQL语句
dbversion = cursor.fetchone()# 使用 fetchone 方法获取一条数据库。
print ("Database version : %s " % dbversion) #Database version : 8.0.14
#
#创建数据库
cursor.execute("create database if not exists new_futures1")
# 选择要操作的数据库
con.select_db('new_futures1')
con.commit()

实例3.5:主要连接属性方法

con.db # b'new_futures'
con.select_db(db_name)#设置默认数据库

con.autocommit() #设置自动回滚
con.autocommit_mode #False
con.get_autocommit() # False

con.server_charset# 'utf8mb4'
con.charset # 'utf8'
con.encoding # 'utf8'
con.use_unicode # True
con.set_charset() #设置字符集
con.character_set_name()

con.affected_rows()# 5

con.host_info# 'socket localhost:3306'
con.get_host_info()# 'socket localhost:3306'
con.host # 'localhost'
con.user # b'root'
con.password # b'root'
con.port # 3306
con.connect_timeout# 10

实例3.6:连接属性方法

con.escape()
con.escape_string()
con.insert_id()
con.ping()
con.get_proto_info()# 10
con.get_server_info()# '8.0.14'
con.show_warnings()# ()
con.thread_id()# 18

con.bind_address
con.client_flag# 3842573
con.max_allowed_packet# 16777216
con.protocol_version# 10
con.salt# b's\x10\x0b*o3tu\x02h 8}\x10l\x12/\x04oi'
con.server_capabilities# 3288334335
con.server_language# 255
con.server_status# 1
con.server_thread_id# (18,)
con.server_version# '8.0.14'
con.sql_mode
con.ssl# False

实例3.7:

con.decoders
'''''''''
{16: <function pymysql.converters.through(x)>,
1: int, 2: int,3: int,4: float, 5: float,8: int, 9: int,13: int,
7: <function pymysql.converters.convert_mysql_timestamp(timestamp)>,
12: <function pymysql.converters.convert_datetime(obj)>,
11: <function pymysql.converters.convert_timedelta(obj)>,
10: <function pymysql.converters.convert_date(obj)>,
248: <function pymysql.converters.convert_set(s)>,
252: <function pymysql.converters.through(x)>,
249: <function pymysql.converters.through(x)>,
250: <function pymysql.converters.through(x)>,
251: <function pymysql.converters.through(x)>,
254: <function pymysql.converters.through(x)>,
253: <function pymysql.converters.through(x)>,
15: <function pymysql.converters.through(x)>,
0: decimal.Decimal, 246: decimal.Decimal}
'''

实例3.8:

con.encoders
'''''''''
{bool: <function pymysql.converters.escape_bool(value, mapping=None)>,
int: <function pymysql.converters.escape_int(value, mapping=None)>,
float: <function pymysql.converters.escape_float(value, mapping=None)>,
str: <function pymysql.converters.escape_unicode(value, mapping=None)>,
tuple: <function pymysql.converters.escape_sequence(val, charset, mapping=None)>,
list: <function pymysql.converters.escape_sequence(val, charset, mapping=None)>,
set: <function pymysql.converters.escape_sequence(val, charset, mapping=None)>,
frozenset: <function pymysql.converters.escape_sequence(val, charset, mapping=None)>,
dict: <function pymysql.converters.escape_dict(val, charset, mapping=None)>,
NoneType: <function pymysql.converters.escape_None(value, mapping=None)>,
datetime.date: <function pymysql.converters.escape_date(obj, mapping=None)>,
datetime.datetime: <function pymysql.converters.escape_datetime(obj, mapping=None)>,
datetime.timedelta: <function pymysql.converters.escape_timedelta(obj, mapping=None)>,
datetime.time: <function pymysql.converters.escape_time(obj, mapping=None)>,
time.struct_time: <function pymysql.converters.escape_struct_time(obj, mapping=None)>,
decimal.Decimal: <function pymysql.converters.escape_object(value, mapping=None)>,
bytes: <function pymysql.converters.escape_bytes(value, mapping=None)>}
'''

4.pymysql.connections:

class pymysql.connections.Connection(host=None, user=None, password='', database=None,
port=0, unix_socket=None, charset='', sql_mode=None, read_default_file=None, conv=None,
use_unicode=None, client_flag=0, cursorclass=<class 'pymysql.cursors.Cursor'>,
init_command=None, connect_timeout=10, ssl=None, read_default_group=None,
compress=None, named_pipe=None, autocommit=False, db=None, passwd=None,
local_infile=False, max_allowed_packet=16777216, defer_connect=False, auth_plugin_map=None,
read_timeout=None, write_timeout=None, bind_address=None, binary_prefix=False,
program_name=None, server_public_key=None)

参数:

  • 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 - 要在配置文件中读取的组。
  • 压缩 - 不支持
  • 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)

https://pymysql.readthedocs.io/en/latest/modules/connections.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值