当前位置:首页>python>Python开发从零开始-49.9-数据库操作

Python开发从零开始-49.9-数据库操作

  • 2026-10-11 06:07:41
Python开发从零开始-49.9-数据库操作

接上文Python开发从零开始-49.8-数据库操作,本文小编与大家分享 Python 数据库操作的相关知识。

(13)使用一个表的记录来填充另一个表

熟悉 WHERE 子句后,可以很容易理解使用一个表的记录来填充另一个表,它实质上是将 A 表的查询记录插入到 B 表中,其基本语法为:

INSERT INTO insert_table_name

[(column1, column2,,, columnN)] 

SELECT

column1, column2,,, columnN 

FROM select_table_name

[WHERE condition];

  • insert_table_name:插入记录的表名(B 表);

  • select_table_name:查询记录的表名(A 表);

  • [(column1, column2,,, columnN)]:B 表的插入字段列表,如果省略则 A 表的查询记录需与之对应;

  • column1, column2,,, columnN:A 表查询字段列表,应与 B 表的插入字段列表顺序一致;如果查询所有记录,可以使用 * 号;

  • [WHERE condition]:可选条件子句,若无该条件子句,将修改表中所有记录;可以在该条件子句中综合使用运算符和表达式。

先新建一个新表 COMPANY_BAK,表定义与  COMPANY 相同。

然后将前文中 COMPANY 表记录插入 COMPANY_BAK 表中。

(14)更新记录

UPDATE 语句用于修改表中已有的记录。可以使用带有 WHERE 子句的 UPDATE 语句来更新符合条件的记录,否则所有记录都会被修改。

UPDATE 语句的基本语法如下:

UPDATE table_name

SET column1 = value1, column2 = value2,,, columnN = valueN

[WHERE condition];

  • table_name:表名;

  • column1 = value1, column2 = value2,,, columnN = valueN:字段名1 = 值1, 字段名2 =值2,,, 字段名N = 值N;

  • [WHERE condition]:可选条件子句,若无该条件子句,将修改表中所有记录;可以在该条件子句中综合使用运算符和表达式。

前文中 COMPANY 表中,ID 为 3 的记录中 ADDRESS、SALARY 字段为 NULL 

使用 UPDATE 语句将该记录的 NULL 值修改为非 NULL 值。

(15)删除记录

DELETE 语句用于删除表中已有的记录。可以使用带有 WHERE 子句的 DELETE 语句来删除符合条件的记录,否则所有的记录都会被删除。

DELETE 语句的基本语法如下:

DELETE FROM table_name

[WHERE condition];

  • table_name:表名;

  • [WHERE condition]:可选条件子句,若无该条件子句,将删除表中所有记录;可以在该条件子句中综合使用运算符和表达式。

以前面新建的 COMPANY_BAK 为例,删除 ID 为 3 的记录。

(16)LIKE 模糊查询

SQLite 模糊查询是通过运算符配合‌通配符‌,对字段值进行‌部分匹配‌而非精确匹配的检索方式,用于查找符合特定模式的数据记录。‌‌LIKE 运算符是用来匹配通配符指定模式的文本值,默认不区分大小写。如果文本值与模式表达式匹配,LIKE 运算符将返回真(true),也就是 1。与 LIKE 运算符一起使用的通配符主要包括:

1)百分号 (%)

代表零个、一个或多个数字或字符。例如:

  • 'A%' 匹配以 A 开头的字符串,如 'Apple'、'Ant';

  • '%com' 匹配以 com 结尾的字符串,如 'welcome'、'becom';

  • '%abc%' 匹配包含 abc 的字符串,任意位置都可以。

2)下划线 (_)

代表一个单一的数字或字符。例如:

  • '张_' 匹配 '张三'、'张四' 这类两个字的姓名;

  • '_a%' 匹配第二个字符是 a 的字符串;

  • '___' 匹配刚好 3 个字符的字符串。‌‌

3)% 与 _ 组合使用‌

可以将 % 与 _ 混合搭配实现更灵活的匹配。例如:'_p%le' 匹配任意一个字符开头(_),然后是具体的 'p',接着是任意数量的字符(%),最后是具体的 'le',如 'Apple'。

通配符与其他字符一起组合为 “模式” 表达式,与 LIKE 运算符一同构成 LIKE 子句。LIKE 运算符的基本语法为:

SELECT column_list 

FROM table_name

WHERE column LIKE pattern [ESCAPE 'escape_char']

  • column_list:字段列表;

  • table_name:表名;

  • column:字段名;

  • pattern:模式表达式;

  • [ESCAPE 'escape_char']:可选的 ESCAPE 子句,用于在 LIKE 查询中指定‌转义字符‌,使紧随其后的 %(任意多字符)或 _(任意单字符)被当作‌字面量‌而非通配符处理,escape_char 必须是‌单个字符‌。‌‌如:LIKE '%50!%%' ESCAPE '!' 语句中 !% 表示字面 %,首尾 % 仍为通配符;LIKE '%!_name' ESCAPE '!' 语句中 !_ 表示字面 _ 。

使用前文中 COMPANY 表,采用 AGE 字段以 '2' 开头的记录。

【小编提示】

  • LIKE 运算符仅适用于文本/数字类型,自动转换非字符串参数;

  • LIKE 运算符默认不区分大小写;

  • 转义符自身处理‌:若需匹配模式中的转义字符本身,需将其写两次(如转义符为 !,匹配 ! 需写 !!);

  • SQLite 不自动识别 \ 为转义符,写 ESCAPE '\' 可能因字符串层转义导致错误,建议优先用非反斜杠字符;

  • ESCAPE ''(空字符串)或 ESCAPE 'ab'(多字符)会导致语法错误。

受文章篇幅所限,下文将继续介绍 Python 数据库操作的相关知识。

最新文章

随机文章