当前位置:首页 » 编程语言 » connectorpython

connectorpython

发布时间: 2025-05-14 09:48:50

㈠ 如何使用python连接mysql数据库

在 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 服务端发出响应包,这个包里记录了登录是否成功,如果没有成功也会给出错误信息。

㈡ Python 进阶知识全篇-Python MySQL - mysql-connector

MySQL 是广泛使用的数据库管理系统,如果你对 MySQL 不够熟悉,建议先阅读我们的 MySQL 教程。此教程将带你深入了解如何通过 mysql-connector 来连接和操作 MySQL。

mysql-connector 是 MySQL 官方提供的驱动程序,能够帮助你轻松实现 Python 与 MySQL 之间的交互。你只需要使用 pip 命令安装它,具体命令如下:

python -m pip install mysql-connector

为验证安装是否成功,可以尝试运行以下测试代码:

import mysql.connector

执行此代码后若未出现错误提示,说明安装已成功。

若你的 MySQL 版本为 8.0,则需注意密码验证方式已从 mysql_native_password 更改为 caching_sha2_password。因此,在安装驱动后,还需对 my.ini 配置文件进行修改,并执行相应的 SQL 命令以确保密码验证方式符合新版本要求。更多详细操作,可以参考:阙赞:Python MySQL8.0 错误创建数据库连接。

连接数据库的操作可以通过以下 Python 代码实现:

import mysql.connector

尝试连接数据库,如果数据库不存在,代码将输出相应的错误信息。

数据库的创建则使用 "CREATE DATABASE" 语句。以下代码示例创建了一个名为 runoob_db 的数据库:

创建数据库前,可以使用 "SHOW DATABASES" 命令查看当前是否存在特定数据库:

执行此命令后,你将看到数据库列表。若数据库已存在,尝试再次创建将收到错误信息。

为了实现数据表的创建,我们使用 "CREATE TABLE" 语句。例如,以下代码创建了一个名为 sites 的数据表,包含字段 name 和 url:

执行此代码后,数据库中将出现名为 sites 的数据表。

可以使用 "SHOW TABLES" 命令查看数据表是否已成功创建。

通常,我们会为主键设置一个 INT AUTO_INCREMENT PRIMARY KEY,确保起始值为 1,并逐步递增。如果表已创建,可通过 ALTER TABLE 命令添加主键。

插入数据的关键操作使用 "INSERT INTO" 语句。以下代码插入了一条数据至 sites 表:

执行后,数据表中应新增一条记录。

批量插入数据时,利用 executemany() 方法,该方法接收元组列表作为参数,包含要插入的数据。下面代码示例批量插入多条记录至 sites 表:

执行后,输出应为插入记录成功的信息。

在数据插入后,若需获取新记录的 ID,可使用以下代码:

执行此代码后,输出应为插入记录成功,并显示其 ID。

查询数据使用 SELECT 语句,以下代码示例展示如何获取 sites 表中的所有数据:

执行后,输出结果将包含所有记录。

若仅需读取特定字段的数据,可以通过指定字段来获取。同样,利用 SELECT 语句,以下代码展示如何获取 sites 表中指定字段的数据:

执行后,输出结果将只包含指定字段。

如果只读取一条数据,可以使用 fetchone() 方法。以下代码示例展示如何仅读取第一条数据:

执行此代码后,输出结果应为一条记录。

使用 where 语句可以读取特定条件的数据。以下代码示例读取 name 字段为 'SHUAIGEGE' 的记录:

执行后,输出结果应为符合条件的记录。

通配符 % 可以用来匹配包含特定字符串的数据。以下代码示例读取包含 'google' 的记录:

执行后,输出结果应为包含 'google' 的所有记录。

为了防止 SQL 注入攻击,使用 %s 占位符来转义查询条件。以下代码示例展示如何安全地执行查询:

执行此代码后,输出结果应为安全查询到的数据。

数据查询结果可以通过 ORDER BY 语句进行排序,默认为升序,关键字为 ASC。若需设置降序排序,使用 DESC 关键字。以下代码示例展示如何按 name 字段升序排序查询结果:

执行后,输出结果应为按 name 字段升序排序后的所有记录。

降序排序的实现方法与升序类似,只需将 ASC 替换为 DESC 关键字。以下代码示例展示如何按 name 字段降序排序查询结果:

执行后,输出结果应为按 name 字段降序排序后的所有记录。

限制查询结果的数量可通过 LIMIT 语句实现,该语句允许指定返回的具体记录数。以下代码示例展示如何获取前 3 条记录:

执行后,输出结果应为前 3 条记录。

OFFSET 关键字用于指定起始位置,从而获取特定范围内的记录。以下代码示例展示如何从第二条记录开始获取前 3 条记录:

执行后,输出结果应为从第二条记录开始的前 3 条记录。

删除记录时,使用 DELETE FROM 语句,确保使用 WHERE 条件语句来指定要删除的记录,避免误删整个表。以下代码示例展示如何删除 name 为 'stackoverflow' 的记录:

执行后,输出结果应为删除的记录数量。

为了防止 SQL 注入攻击,使用 %s 占位符转义删除条件。以下代码示例展示如何安全地执行删除操作:

执行后,输出结果应为删除的记录数量。

更新表数据使用 UPDATE 语句,确保使用 WHERE 条件语句指定更新的数据行。以下代码示例展示如何将 name 为 'Zhihu' 的记录更新为 'ZH':

执行后,输出结果应为更新的记录数量。

使用 %s 占位符转义更新条件,以防止 SQL 注入攻击。以下代码示例展示如何安全地执行更新操作:

执行后,输出结果应为更新的记录数量。

删除表使用 DROP TABLE 语句,确保使用 IF EXISTS 关键字来判断表是否存在,避免操作不存在的表。以下代码示例展示如何删除名为 sites 的表:

热点内容
interbase数据库 发布:2025-05-14 13:49:50 浏览:691
微商海报源码 发布:2025-05-14 13:49:42 浏览:345
分布式缓存部署步骤 发布:2025-05-14 13:24:51 浏览:610
php获取上一月 发布:2025-05-14 13:22:52 浏览:90
购买云服务器并搭建自己网站 发布:2025-05-14 13:20:31 浏览:689
sqlserver建立视图 发布:2025-05-14 13:11:56 浏览:485
搭建httpsgit服务器搭建 发布:2025-05-14 13:09:47 浏览:256
新电脑拿回来我该怎么配置 发布:2025-05-14 13:09:45 浏览:241
视频服务器新建ftp用户 发布:2025-05-14 13:03:09 浏览:225
php花生 发布:2025-05-14 12:54:30 浏览:551