1、pymysql链接数据库相关参数: conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='root', db='smbms')
def __init__(
self,
*,
user=None,
password="",
host=None,
database=None,
unix_socket=None,
port=0,
charset="",
collation=None,
sql_mode=None,
read_default_file=None,
conv=None,
use_unicode=True,
client_flag=0,
cursorclass=Cursor,
init_command=None,
connect_timeout=10,
read_default_group=None,
autocommit=False,
local_infile=False,
max_allowed_packet=16 * 1024 * 1024,
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,
ssl=None,
ssl_ca=None,
ssl_cert=None,
ssl_disabled=None,
ssl_key=None,
ssl_verify_cert=None,
ssl_verify_identity=None,
compress=None, # not supported
named_pipe=None, # not supported
passwd=None, # deprecated
db=None, # deprecated
):
参数说明:
-
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_packet
- 发送到服务器的最大数据包大小(以字节为单位)。(默认值:16MB)仅用于限制小于默认值(16KB)的LOAD LOCAL INFILE
数据包的大小。 -
defer_connect
- 不要在构造上显式连接 - 等待连接调用。(默认值:False
) -
auth_plugin_map
- 插件名称的一个字典,用于处理该插件的类。该类将Connection
对象作为构造函数的参数。该类需要一个认证方法,将认证包作为参数。对于对话框插件,可以使用提示(echo
,prompt
)方法(如果没有authenticate
方法)从用户返回字符串。(实验) -
server_public_key
- SHA256身份验证插件公钥值。(默认:无) -
db
- 数据库的别名。(与MySQLdb兼容) -
passwd
- 密码的别名。(与MySQLdb兼容) -
binary_prefix
- 在字节和bytearray
上添加_binary
前缀。(默认值:False
)
2、相关方法:
-
begin()
开始事物。 -
close()
发送退出消息并关闭套接字。请参阅 规范中的Connection.close() -
commit()
提交更改为稳定存储。请参阅 规范中的Connection.commit() -
cursor(cursor = None)
创建一个新游标以执行查询。常用的游标类型如下:-
Cursor:使用此游标类,返回结果为元组类型。
-
DictCursor:使用此游标类,返回结果为字典类型。
-
SSCursor:使用此游标类,返回结果为元组类型。不缓存结果,适合处理大量数据,但对于内存敏感的应用,对性能的影响较大。
-
SSDictCursor:使用此游标类,返回结果为字典类型。不缓存结果,适合处理大量数据,但对于内存敏感的应用,对性能的影响较大。
-
其中,
Cursor
和DictCursor
是最常用的两种游标类。 -
使用
Cursor
游标类,返回的结果为元组类型,每个元组表示一行数据; -
使用
DictCursor
游标类,返回结果为字典类型,以字典的形式表示每行数据,字典的键是列名,值是对应的值。 -
SSCursor
和SSDictCursor
则是无缓存的游标类,适合处理大量数据,但对内存敏感的应用不友好,也不支持fetchmany()
和scroll()
方法。
-
-
open
如果连接打开,则返回True
-
ping(reconnect = True)
检查服务器是否处于活动状态。参数:重新连接 - 如果连接已关闭,请重新连接。rollback()
回滚当前事务。请参阅 规范中的Connection.rollback()。 -
select_db(db )
设置当前数据库。参数:db - 数据库的名称。 -
show_warnings()
发送SHOW WARNINGS
SQL命令。
3、代码如下所示:
import pymysql
def getInfo():
# 创建sql链接
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='root', db='smbms')
# 创建游标 返回数据为元组形式
cursor = conn.cursor(pymysql.cursors.DictCursor)
# 执行sql语句
cursor.execute('select * from smbms_user')
# 返回所有数据
rows = cursor.fetchall()
# 返回一行数据
row = cursor.fetchone()
# 提交事务
conn.commit()
# 关闭资源
cursor.close()
conn.close()
print(rows)
print(row)
if __name__ == "__main__":
getInfo()