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区别
fetchone
和 fetchall
是用于从数据库查询结果中提取数据的方法,通常与 cursor
对象一起使用。它们之间的主要区别在于从查询结果中提取的记录数量:1. fetchone
- 功能:提取查询结果集中的下一行数据。
- 返回值:返回一个元组(tuple),其中包含下一行的列值。如果结果集中没有更多行,则返回
None
。
- 用途:当你只需要获取一行数据时使用,或者你想逐行处理结果集中的数据。
- 示例:
下面是一个使用
fetchone
方法的示例代码,它演示了如何从查询结果集中提取一行数据。示例代码
假设我们有一个名为
users
的表,表结构如下:并且表中已经插入了以下数据:
现在,我们用 Python 从这个表中查询数据并使用
fetchone
方法提取每一行:Python 代码示例
解释
- 连接数据库:首先,我们使用
mysql.connector.connect
来连接到 MySQL 数据库。
- 执行查询:我们使用
cursor.execute("SELECT * FROM users")
执行查询,从users
表中选择所有行。
- 提取一行数据:
fetchone()
方法会从查询结果集中提取当前的下一行数据。- 在第一次调用
fetchone()
时,它会提取第一行,即(1, 'Alice', 30)
。 - 每次调用
fetchone()
时,游标都会移动到下一行,因此,下一次提取到的将是(2, 'Bob', 25)
,然后是(3, 'Charlie', 28)
。 - 当没有更多的行可以提取时,
fetchone()
将返回None
,这意味着已经遍历了所有结果。
- 输出:通过
print(row)
,我们依次输出了每一行的数据。
- 结束:当提取完所有数据后,关闭游标和数据库连接。
运行结果
运行上面的代码时,输出将会是:
这个例子展示了
fetchone
是如何逐行提取查询结果集中的数据的。2. fetchall
- 功能:提取查询结果集中的所有行数据。
- 返回值:返回一个包含所有行数据的列表,每行数据都是一个元组。如果结果集中没有行,则返回一个空列表
[]
。
- 用途:当你需要获取查询结果集中的所有数据时使用。
- 示例:
总结
fetchone
是逐行提取数据,适合于处理大型数据集或只需要单行数据的情况。
fetchall
一次性提取所有数据,适合于数据集较小或需要一次性处理所有数据的情况。
实战例子:用户管理系统
要求:实现注册登录等功能
第一步
在mysql客户端创建相关的数据库和表来存储
创建数据库
创建表
第二步
编写相关python代码
防止SQL注入
如果用户再输入user时候输入了:
' or 1=1 --
即使输入的密码不存在,也可以通过验证
为什么呢?因为再SQL拼接时,拼接的结果是:
避免SQL注入版本
打赏
如果您觉得我的内容对你有所帮助,不要吝啬你的一键三连!如果你有能力的话也可以通过下面请我喝杯咖啡~金额您随意~如果对文章内容有任何疑问,欢迎加入群组联系我~
- 作者:Don Mark
- 链接:null/article/416afd53-8287-4296-856d-c6d14279e95a
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。