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

家园网

词源角度讲一下fn_helpcollations()

网络 作者:本站 点击:

好,从词源角度拆解 fn_helpcollations() 这个函数名的来历和构造逻辑。


逐词拆解

text

fn _ help collations ( )
│    │   │    │
│    │   │    └─ 复数后缀
│    │   └────── 核心动词
│    └────────── 分隔符(下划线)
└─────────────── 前缀


第一层:fn = function(函数)

词源: 编程领域的通用缩写

语言/系统缩写全称
C 语言fnfunction(早期命名习惯)
Pascalfnfunction
SQL Serverfn_系统函数前缀
数学f(x)function

为什么用 fn 而不是 func

  • 早期编程内存宝贵,能省一个字母是一个

  • fn 是 1980-1990 年代程序员的标准简写

  • SQL Server 7.0(1998 年)设计时沿用了这个习惯

类比:

  • fn_dblog → function database log

  • fn_helpcollations → function help collations

  • fn_trace_getinfo → function trace get info


第二层:help = 帮助(动词词源)

词源: 古英语 helpan(帮助),日耳曼语系

进入计算机术语的路径:

text

古英语 helpan(帮助)
  → 命令行时代的 help 命令(DOS、Unix)
    → 软件内置的"帮助系统"
      → SQL Server 的"返回信息"类函数

在 fn_helpcollations 中,help 的意思是:

“请告诉我关于...的信息”

类似用法的 SQL Server 函数:

  • sp_help → 帮助查看表结构

  • sp_helptext → 帮助查看存储过程代码

  • fn_helpcollations → 帮助查看排序规则

命名逻辑: help + 名词 = “返回关于这个名词的元数据/列表”


第三层:collations = 排序规则(拉丁语词源)

这是最深的一层,要追溯到拉丁语。

词源树

text

拉丁语 conferre(聚集、比较)
  ↓
过去分词 collatus(被聚集的、被比较的)
  ↓
中世纪拉丁语 collatio(比较、汇集)
  ↓
古法语 collation(比较、核对)
  ↓
英语 collation(比较、排序、校对)
  ↓
SQL Server collation(字符排序和比较规则)

详细拆解

阶段含义
拉丁语con-一起、共同
拉丁语ferre携带、拿、比较
拉丁语collatus被带到一起的、被比较过的
中世纪拉丁语collatio比较、汇集、讨论
古法语collation比较、核对(文本)
英语(印刷)collation校勘、核对版本
英语(图书馆)collation整理书页顺序
计算机collation字符串排序和比较规则

为什么数据库用这个词?

在数据库之前,collation 主要用于:

  1. 印刷/出版:校对多个手稿,找出差异(比较文本)

  2. 图书馆学:整理书页顺序(排序)

  3. 语言学:比较不同文字系统的规则

数据库借用了这个已有 2000 年历史的词,表示:

“如何比较和排序字符串的一套规则”


完整词源路径图

text

公元前 100 年(拉丁语)
con- (一起) + ferre (携带) = conferre (聚集比较)
           ↓
公元 200 年(拉丁语)
collatus (被聚集、被比较)
           ↓
公元 500 年(中世纪拉丁语)
collatio (比较、汇集)
           ↓
公元 1100 年(古法语)
collation (核对、比较)
           ↓
公元 1400 年(英语)
collation (文本校勘)
           ↓
公元 1800 年(图书馆学)
collation (整理排序)
           ↓
公元 1970 年(计算机科学)
collation (字符排序算法)
           ↓
公元 1998 年(SQL Server 7.0)
fn_helpcollations() 函数


为什么叫 fn_helpcollations 而不是其他名字?

候选名字为什么没用
sp_list_collationssp_ 是存储过程,这是函数
fn_get_collations太啰嗦,help 更简洁
fn_show_collationsshow 偏向显示,help 偏向信息查询
fn_collations没有动词,不直观
sys.collations后来新版确实有了这个视图,但老函数保留

微软的命名习惯:

  • fn_ + 动词 + 名词 = 表值函数

  • 动词优先用 help(信息查询)、get(获取)、db(数据库相关)


跨语言对比

语言/数据库

类似功能的名称

词源特点

SQL Server

fn_helpcollations

英语 + 拉丁语

MySQL

SHOW COLLATION

纯英语命令

PostgreSQL

pg_collation

希腊前缀 pg_

Oracle

NLS_SESSION_PARAMETERS

缩写堆叠

Python

locale.collation

从拉丁语直接借

总结

fn_helpcollations 是一个 1990 年代程序员用英语缩写 fn、英语动词 help、和 2000 年历史的拉丁语 collation 拼出来的名字。

text

fn          = 1990s 编程缩写(实用主义)
help        = 古英语日耳曼词根(用户友好)
collations  = 拉丁语借词,经印刷→图书馆→计算机(学术传统)

这个函数名就像 SQL Server 本身的性格:

  • 实用fn 省字母)

  • 友好help 帮助)

  • 传统collation 两千年历史)

下次你看到 fn_helpcollations(),就知道你看到的不是一个简单的函数名,而是一块跨越两千年的语言化石


标签: