🗒️Python MySQL数据库4—数据行操作(增删改查)
00 分钟
2024-8-13
2024-8-22
type
status
date
slug
summary
tags
category
icon
password

增删改查

1. 插入数据(新增数据)

  • insert into 表名(列名, 列名, 列名) values(对应列的值, 对应列的值, 对应列的值);
  • 示例:

    2. 删除数据

    • delete from 表名;
    • delete from 表名 where 条件;
    • 示例:

      3. 修改数据

      • update 表名 set 列名=值;
      • update 表名 set 列名=值 where 条件;
      • 示例:

        4. 查询数据

        • select * from 表名;
        • select 列名, 列名 from 表名;
        • select 列名, 列名 as 别名 from 表名;
        • select * from 表名 where 条件;
         
        这些内容主要涉及SQL中常用的增、删、改、查操作。
         
         
         

        Python操作

         

        fetchone和fetchall区别

        fetchonefetchall 是用于从数据库查询结果中提取数据的方法,通常与 cursor 对象一起使用。它们之间的主要区别在于从查询结果中提取的记录数量:

        1. fetchone

        • 功能:提取查询结果集中的下一行数据。
        • 返回值:返回一个元组(tuple),其中包含下一行的列值。如果结果集中没有更多行,则返回 None
        • 用途:当你只需要获取一行数据时使用,或者你想逐行处理结果集中的数据。
        • 示例
          下面是一个使用 fetchone 方法的示例代码,它演示了如何从查询结果集中提取一行数据。

          示例代码

          假设我们有一个名为 users 的表,表结构如下:
          并且表中已经插入了以下数据:
          现在,我们用 Python 从这个表中查询数据并使用 fetchone 方法提取每一行:

          Python 代码示例

          解释

          1. 连接数据库:首先,我们使用 mysql.connector.connect 来连接到 MySQL 数据库。
          1. 执行查询:我们使用 cursor.execute("SELECT * FROM users") 执行查询,从 users 表中选择所有行。
          1. 提取一行数据
              • fetchone() 方法会从查询结果集中提取当前的下一行数据。
              • 在第一次调用 fetchone() 时,它会提取第一行,即 (1, 'Alice', 30)
              • 每次调用 fetchone() 时,游标都会移动到下一行,因此,下一次提取到的将是 (2, 'Bob', 25),然后是 (3, 'Charlie', 28)
              • 当没有更多的行可以提取时,fetchone() 将返回 None,这意味着已经遍历了所有结果。
          1. 输出:通过 print(row),我们依次输出了每一行的数据。
          1. 结束:当提取完所有数据后,关闭游标和数据库连接。

          运行结果

          运行上面的代码时,输出将会是:
          这个例子展示了 fetchone 是如何逐行提取查询结果集中的数据的。

           
           
           
           

          2. fetchall

          • 功能:提取查询结果集中的所有行数据。
          • 返回值:返回一个包含所有行数据的列表,每行数据都是一个元组。如果结果集中没有行,则返回一个空列表 []
          • 用途:当你需要获取查询结果集中的所有数据时使用。
          • 示例

            总结

            • fetchone 是逐行提取数据,适合于处理大型数据集或只需要单行数据的情况。
            • fetchall 一次性提取所有数据,适合于数据集较小或需要一次性处理所有数据的情况。

             
             

            实战例子:用户管理系统

             
            要求:实现注册登录等功能
             

            第一步

            在mysql客户端创建相关的数据库和表来存储
             
            创建数据库
            创建表
             

            第二步

            编写相关python代码
             

            防止SQL注入

             
            如果用户再输入user时候输入了: ' or 1=1 --
            即使输入的密码不存在,也可以通过验证
             
            为什么呢?因为再SQL拼接时,拼接的结果是:
             
             
            避免SQL注入版本
             
             
             
             
             
             

            打赏

            如果您觉得我的内容对你有所帮助,不要吝啬你的一键三连!如果你有能力的话也可以通过下面请我喝杯咖啡~金额您随意~如果对文章内容有任何疑问,欢迎加入群组联系我~
            notion image
            上一篇
            Python MySQL数据库3—数据表操作
            下一篇
            Python MySQL数据库5—必备SQL知识