您好!欢迎访问家园网-www.jy.wang!

家园网

词源角度讲一下sql中like函数

网络 作者:本站 点击:

SQL 中 LIKE 运算符详解(词源角度)


一、LIKE 是什么?

LIKE 是 SQL 中的字符串模式匹配运算符,用于在 WHERE 子句中搜索符合某种模式的字符串。

sql

SELECT * FROM users WHERE name LIKE '张%';   -- 查找姓"张"的人SELECT * FROM products WHERE name LIKE '%手机%';  -- 查找名称中包含"手机"的商品


二、词源拆解

单词词源含义演变
LIKE古英语 gelīc(相似的、相同的)相似、像、如同

词源演变图

text

古英语 gelīc(相似的、相同的)
        ↓
中古英语 like(相似的)
        ↓
现代英语 like(像、如同、喜欢)
        ↓
计算机科学 LIKE(模式匹配、相似匹配)

核心含义"像...一样"、"与...相似"


三、gelīc 的词源拆解

古英语 gelīc 由两部分组成:

部分含义
ge-前缀,表示"一起、共同"
-līc身体、形状(同源词:lich)

字面意思"形状相同"、"具有相同的外形"

同源词

单词演变含义
lich古英语 līc身体、尸体(如 lichgate 教堂门廊)
likege-līc像、相似
alikea + like相同的、相似的
likelylike + ly很可能的(像真的会发生)
likenesslike + ness相似、相像

四、LIKE 的语义演变

阶段含义示例
古英语具有相同形状"两片叶子形状 gelīc"
中古英语相似的"他们容貌 like"
现代英语像、如同"她像她母亲"
日常用语喜欢"我喜欢苹果"(语义进一步泛化)
SQL 语境模式匹配"WHERE name LIKE '张%'"

五、LIKE 在 SQL 中的直观理解

text

条件:name LIKE '张%'
        ↑       ↑
        │       └── 模式(pattern)
        └────────── 像、匹配

含义:查找 name"像"这个模式的记录

通配符

通配符含义示例
%任意多个字符(包括0个)'张%' = 以"张"开头的任意字符串
_单个字符'张_' = "张"后面恰好跟一个字符

六、与其他语言中的"相似"表达对比

语言/工具语法含义
SQLWHERE name LIKE '张%'名字"像"张开头
Pythonif name.startswith('张')如果以"张"开头
JavaScript/^张/.test(name)正则匹配
英语name like 'Zhang*'像"Zhang*"这个模式
中文名字"张%"这样相似匹配

七、实际应用示例

1、前缀匹配

sql

-- 查找所有姓"王"的用户SELECT * FROM users WHERE name LIKE '王%';

2、后缀匹配

sql

-- 查找所有以".jpg"结尾的图片SELECT * FROM images WHERE filename LIKE '%.jpg';

3、包含匹配

sql

-- 查找标题中包含"手机"的文章SELECT * FROM articles WHERE title LIKE '%手机%';

4、单字符匹配

sql

-- 查找"张"后面跟一个字的姓名(如"张三"、"张四")SELECT * FROM users WHERE name LIKE '张_';

5、组合匹配

sql

-- 查找第二个字是"小"的三个字姓名(如"张小三"、"王小五")SELECT * FROM users WHERE name LIKE '_小%';


八、LIKE 与 = 的区别

运算符

含义

匹配方式

示例

=

等于

精确匹配

name = '张三'(必须完全相等)

LIKE

像、相似

模式匹配

name LIKE '张%'(以张开头即可)


sql

-- 精确匹配 vs 模式匹配SELECT '张三' = '张三';    -- 真(精确相等)SELECT '张三' LIKE '张%';  -- 真(模式匹配)SELECT '张三' = '张三丰';  -- 假(不完全相等)SELECT '张三' LIKE '张%';  -- 真(模式匹配)


九、总结

问题答案
LIKE 是什么?SQL 中的模式匹配运算符
词源古英语 gelīc(相似的、形状相同)
字面含义像、如同、相似
在 SQL 中的含义查找与指定模式相似的字符串
与 = 的区别= 是精确匹配,LIKE 是模糊匹配
核心比喻就像说"这个字符串这个模式"

一句话总结LIKE 的词源来自古英语 gelīc(形状相同、相似),在 SQL 中表示"像...一样"——不是要求字符串完全相等,而是要求它"像"某个模式(如以某字开头、包含某词等),就像我们说"他的长相他父亲"一样,是相似匹配而非精确相等


标签: