|
```html sql之父鱼皮数据网站 1995年,之站一个叫“鱼皮”的父鱼ID在某个BBS上发了张帖子,标题是皮数《关系模型查询语言的实现草稿》。没人回。据网三天后他自己顶了一楼,之站贴出十几行SQL雏形,父鱼用星号代替字段名,皮数末尾加了一句“这玩意儿能跑”。据网那就是之站后来被称作“SQL之父”的鱼皮,以及他那个至今还在线的父鱼数据网站——一个连UI都像上世纪的页面,却让几代数据库工程师边骂边用。皮数 我第一次打开鱼皮数据网站是据网在2012年。页面顶栏是之站灰绿色,背景是父鱼重复的方格纹理,像老式Excel。皮数左侧导航栏写着“表结构”“查询示例”“性能对比”,点进去全是纯文本。没有搜索框,没有用户系统,连个“关于”页面都找不到。但就是这么一个东西,每天有几十万次查询请求。鱼皮本人从没公开过真实姓名,只在一次采访里说“我就是个写SQL的,别叫我之父”。 网站的核心其实就三块。第一块是“语法速查”,按字母顺序排列SQL关键字,每个关键字下面挂三五个例子。比如`JOIN`下面写着:“别用逗号连接,会死。”第二块是“执行计划实验室”,你输入一条查询,它返回不同数据库的优化器解释,MySQL、PostgreSQL、Oracle、SQL Server并排对比。第三块最邪门,叫“鱼皮吐槽”,专门收录他骂各种SQL方言的帖子。有一条是:“`LIMIT`和`TOP`吵了二十年,谁也没赢,因为标准委员会自己都忘了`FETCH FIRST`。”另一条:“`NULL`不是值,是状态。你拿等于号去比,等于问一个睡着的人你醒着吗。” 为什么一个技术网站能活这么久?我观察过它的更新日志。2020年3月,它加了一行:“支持`JSON_TABLE`,虽然我觉得这玩意儿迟早被淘汰。”2021年7月:“`WINDOW`函数例子补了,但别问我为什么`RANGE`和`ROWS`差那么多。”最近一次是今年二月:“`MERGE`语句的坑,我写了二十条,自己看。”没有版本号,没有发布说明,像一个人随手记的笔记。可偏偏这些笔记,比大多数官方文档都准。 鱼皮数据网站有个隐藏功能:你连续输入五条错误查询,页面底部会弹出一行小字——“你连`WHERE`和`HAVING`都分不清,建议先看三天基础。”这不是段子。我试过。后来我才知道,那行字是鱼皮自己写的正则匹配,检测到特定错误模式就触发。他说:“教不会的人,骂醒也行。” 有人问过鱼皮为什么不商业化。他在一次邮件列表里回:“数据网站的服务器是我家旧笔记本改的,一年电费不到两百块。加广告?那我还不如去写`COBOL`。”去年有人发现网站底部多了一行:“本站由鱼皮手动维护,如果挂了,就是挂了。”没有备份,没有CDN。但奇怪的是,它从没挂过。 我最后一次访问是昨天。首页多了一行小字:“`SQL`没有之父,只有一群懒得改方言的人。”下面还是那个灰绿色界面,还是那些例子。我输入`SELECT * FROM users WHERE id = 1;`,它返回了执行计划,末尾加了一句:“别用`SELECT *`,你妈没教过你吗?”我笑了。这大概就是鱼皮数据网站的全部秘密——一个脾气不好的老头,用二十年时间,把SQL的真相钉在了一个连CSS都没写全的页面上。 ``` |