Python之MySQL *** 作

Python之MySQL *** 作,第1张

MySQL 是目前使用最广泛的数据库之一,它有着良好的性能,能够跨平台,支持分布式,能够承受高并发。下载地址: MySQL :: Download MySQL Community Server 安装参考: 图解MySQL5.7.20免安装版配置方法-百度经验 (baidu.com)

Python 大致有如下 5 种方式 *** 作 MySQL。

先使用如下建表语句创建一张简单的数据库表。

2.1 mysqlclient

执行 pip install mysqlclient 进行安装,看一下具体 *** 作。

新增

查询

cursor 查看方法

修改

删除

2.2 PyMySQL

执行 pip install pymysql 进行安装,使用方式与 mysqlclient 基本类似。

2.3 peewee

执行 pip install peewee 进行安装,看一下具体 *** 作。

定义映射类

新增

查询

修改

删除

2.4 SQLAlchemy

执行 pip install sqlalchemy 进行安装,看一下具体 *** 作。

定义映射类

新增

查询

修改

删除

Python学习日记

MySQLdb.connect是python 连接MySQL数据库的方法,在Python中 import MySQLdb即可使用,至于connect中的参数很简单:\x0d\x0ahost:MySQL服务器名\x0d\x0auser:数据库使用者\x0d\x0apassword:用户登录密码\x0d\x0adb: *** 作的数据库名\x0d\x0acharset:使用的字符集(一般是gb2312)\x0d\x0acursor = db.cursor() 其实就是用来获得python执行Mysql命令的方法,也就是\x0d\x0a我们所说的 *** 作游标\x0d\x0a下面cursor.execute则是真正执行MySQL语句,即查询TABLE_PARAMS表的数据。\x0d\x0a至于fetchall()则是接收全部的返回结果行 row就是在python中定义的一个变量,用来接收返回结果行的每行数据。同样后面的r也是一个变量,用来接收row中的每个字符,如果写成C的形式就更好理解了\x0d\x0afor(string row = ''row 回答于 2022-11-16

在 Python 语言环境下我们这样连接数据库。

In [1]: from mysql import connector

In [2]: cnx = connector.connect(host="172.16.192.100",port=3306,user="appuser",password="xxxxxx")

但是连接数据库的背后发生了什么呢?

答案

当我们通过驱动程序(mysql-connector-python,pymysql)连接 MySQL 服务端的时候,就是把连接参数传递给驱动程序,驱动程序再根据参数会发起到 MySQL 服务端的 TCP 连接。当 TCP 连接建立之后驱动程序与服务端之间会按特定的格式和次序交换数据包,数据包的格式和发送次序由 MySQL 协议 规定。MySQL 协议:https://dev.mysql.com/doc/internals/en/client-server-protocol.html整个连接的过程中 MySQL 服务端与驱动程序之间,按如下的次序发送了这些包。

MySQL 服务端向客户端发送一个握手包,包里记录了 MySQL-Server 的版本,默认的授权插件,密码盐值(auth-data)。

2. MySQL 客户端发出 ssl 连接请求包(如果有必要的话)。

3. MySQL 客户端发出握手包的响应包,这个包时记录了用户名,密码加密后的串,客户端属性,等等其它信息。

4. MySQL 服务端发出响应包,这个包里记录了登录是否成功,如果没有成功也会给出错误信息。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6105509.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-14
下一篇 2023-03-14

发表评论

登录后才能评论

评论列表(0条)

保存