据我观察,中国的开发者创造了一种独特的SQL发音:/'sɜːkl/,既好听,又好读,挺好的。但是今年我开始做数据库相关的工作,作为一个专业人士,决定对SQL发音进行一些考证。

直接说结论吧,很多人沿用了/ˈsiːkwəl/这个读音,因为这门语言以前叫做“SEQUEL”。但更官方一些的读音应该是ISO标准规定的/ˌɛsˌkjuːˈɛl/。这个说法的依据是,有好事者给Don Chamberlin(SQL语言发明者之一)发邮件[1],内容如下:

Hello Don,

I’m sorry to waste your time with such a silly question, but I’ve often heard SQL pronounced S-Q-L or as Sequel. I’ve also seen the official pronunciation listed both ways. According to wikipedia, you and Raymond Boyce created the language and it was shortened to SQL after some legal dispute. So my question is, is there an official pronunciation to SQL? Thank you for your time.

– Pat

To my delight, he replied back:

Hi Pat,

Since the language was originally named SEQUEL, many people continued to pronounce the name that way after it was shortened to SQL. Both pronunciations are widely used and recognized. As to which is more “official”, I guess the authority would be the ISO Standard, which is spelled (and presumably pronounced) S-Q-L.

Thanks for your interest,
Don Chamberlin

看到Don的邮件后,我好像也感受到了一点Pat当时的激动心情。于是在wiki上找到了ISO 9075的下载地址,然而在翻个底朝天后,并没有找到规定发音的内容。

首先就怀疑是标准的版本不对,事实果然如此,因为又在网上发现了这句话:"The 1986 ANSI SQL standard declared the official pronunciation of SQL to be "es queue el"." [2]。说是在1986年,还是ANSI标准的时候规定的读音。

这个86版的古董并不好找,首先wiki上的dialects里SQL-86的连接是灰的,然后又听到了一个不幸的传闻:"Being unable to find a copy and having ANSI unwilling to sell a copy, it seems that SQL-86 is lost in the age of the internet."[3]。

最后我实在没办法放弃了找SQL-86这条路,还是放在博客上,借助网友的力量一起搜寻吧。如果没有这个标准,其实以上的考据全是站不住脚的,比如Don的邮件可能是杜撰的,网上的只言片语更是不能作为依据。

不过不要伤心,在找到SQL-86之前,我们还是可以通过官方资料来“证明”SQL的发音的。打开这个页面https://www.iso.org/standard/63555.html,它是ISO/IEC 9075-1:2016标准官方的销售页面,大概1160元,[提示]不要点"Buy"。

继续往下看商品介绍,第一段的最后,写的是"an SQL-implementation"而不是"a SQL-implementation",这基本说明官方发音应该是/ˌɛsˌkjuːˈɛl/。

后记

MySQL的读音是遵守ISO标准的,"The official way to pronounce “MySQL” is “My Ess Que Ell” (not “my sequel”), but we do not mind if you pronounce it as “my sequel” or in some other localized way."。[4]

而Oracle依然是复古发音/ˈsiːkwəl/。"SEQUEL later became SQL (still pronounced "sequel")."。[5]

[Warning] 去Oracle面试的话,千万不要用ISO发音,因为有人因此被拒了(10年前):"If you can't pronounce it correctly, then I have doubts as to your ability to use it correctly."[6]

参考资料:

[1] http://patorjk.com/blog/2012/01/26/pronouncing-sql-s-q-l-or-sequel/

[2] http://www.learn.geekinterview.com/database/sql/sql-standardization.html

[3] https://dba.stackexchange.com/questions/168595/where-can-i-find-the-first-standardization-of-sql-sql-86

[4] https://dev.mysql.com/doc/refman/5.7/en/what-is-mysql.html

[5] https://docs.oracle.com/cd/B19306_01/server.102/b14200/intro001.htm#i1712

[6] https://community.oracle.com/thread/632585?start=15&tstart=0

最新文章

  1. 破解SQLServer for Linux预览版的3.5GB内存限制 (RHEL篇)
  2. 【BZOJ-1086】王室联邦 分块 + 块状树
  3. CLGeocoder "Lost connection to geod" #error# when use geocodeAddressString:completionHandler
  4. C# 中excel操作
  5. sencha grid列tooltip提示
  6. POJ3749 破译密码
  7. [Android Tips] 3. Launch CallLog Activity
  8. win8以上版本离线安装.NET
  9. codeforces 336D. Vasily the Bear and Beautiful Strings 组合数学 dp
  10. C++Builder 2010 Release版本配置
  11. 二分法查找(大于,大于等于x的最小,小于,小于等于x的最大值)
  12. 指针数组  数组指针的区别.xml
  13. 数据库中substring的使用方法 CONVERT(varchar(12) , getdate(), 112 )
  14. redis常见错误
  15. Codeforces #345 Div.1
  16. 关于spring的注解方式注入默认值(转) -- 首字母小写
  17. Java中线程的yield(),sleep()以及wait()的区别
  18. auth模块用户认证
  19. python学习Day6 元组、字典、集合set三类数据用法、深浅拷贝
  20. 用大O记号法测量算法的效率(Algorithm efficiency Asymptotic notation Big O notation)

热门文章

  1. http.request请求及在node中post请求参数解析
  2. 什么是DOM,DOM level 1\2\3 的区别是什么
  3. (转)Android 仿订单出票效果 (附DEMO)
  4. 微信公众平台开发,API接入与推送事件(1)
  5. Dynamics 365 for CRM:修改ADFS的过期时间,TokenLifetime
  6. jsp pageEncoding属性详解
  7. 有关java中的hashCode问题
  8. Scrum 冲刺 第六日
  9. EXT3文件系统误删除导致文件系统中的邮件丢失恢复方法
  10. 使用C#开发Android应用之WebApp