SQL 五十周年:何去何从?

2024-09-02 19:52

本文主要是介绍SQL 五十周年:何去何从?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文地址 https://www.infoworld.com/article/2337457/sql-at-50-whats-next-for-the-structured-query-language.html

SQL 即使被生成式 AI 隐藏在幕后,也将继续在数据交互和使用方面发挥关键作用。

在这里插入图片描述

CREDIT: PAVEL L PHOTO AND VIDEO / SHUTTERSTOCK

1974 年 5 月,Donald Chamberlin 和 Raymond Boyce 发表了一篇关于 SEQUEL 的论文,这是一种可用于管理和分类数据的结构化查询语言。由于另一家公司拥有 SEQUEL 一词的版权,「结构化查询语言」更名为 SQL。20 世纪 70 年代晚些时候,SQL 被甲骨文等数据库公司与他们的新式关系型数据库产品一起使用。剩下的,就像人们常说的那样,就是历史了。

SQL 至今已有 50 年历史,是围绕数据库设计和采用的。作为一种管理和交互数据的方式,它一直在不断发展。根据 Stack Overflow 的数据,SQL 是专业程序员经常使用的第三大语言。2023 年,国际电气和电子工程师协会(IEEE)指出,SQL 是开发者找工作时最需要掌握的语言,因为它可以与其他编程语言相结合。

纵观当今其他老式语言,COBOL(1959 年推出)、FORTRAN(1958 年首次编译)等也仍在使用。虽关系着高薪职位,它们仍部署在传统项目而非令人兴奋的新项目中。另一方面,SQL 仍被用作人工智能、分析和软件开发工作的一部分,是我们日常与数据交互的标准。

(一)为什么 SQL 仍如此重要?

你可能会问,为什么 SQL 能存活这么久,甚至活得挺好。

它语法非常奇特,与时代格格不入,新手不容易学习。此外,每个数据库供应商都必须支持 SQL,但都有具体差别,因此一个数据库中的操作可能无法轻松转换到另一个数据库,增加了工作和支持需求。

更糟的是,在 SQL 中很容易犯错误,而这些错误可能会带来真正的灾难性后果。例如,如果在指令中缺少 WHERE 子句,可能导致删除整个表而不是执行所需的操作,从而需要大量恢复丢失的数据。这就要求写代码时检查语法逻辑、预先推演代码的实际运行结果,保证准确无误。

那么,为什么在 SQL 首次设计和发布 50 年后的今天,它仍然是处理数据的主要方法呢?

SQL 以强大的数学理论为基础,因此还能有效执行和支持其设计初衷。事实上,当你将 SQL 与关系型数据库相结合时,你就可以将创建的数据以及管理数据的方式映射到许多业务实践中,且这种方式是可靠、有效、可扩展的。简言之,SQL 行之有效、无以替代。

例如,SQL 是第一种可在单次请求中返回多行的编程语言。这样能更容易地获取一组数据(进而项目及其应用)中正在发生的变更,并将其转化供项目使用。SQL 也能将信息分割到不同的表中,用于特定的任务。比如将客户数据放到一个表中,将生产数据放到另一个表中。执行变更的能力是当今大多数流程的支柱,而 SQL 使大规模变更成为可能。

SQL 取得成功的另一个重要原因是,它始终与时俱进。多年来,SQL 从关系型语言的根基出发,增加了对地理信息系统 (GIS) 数据、JSON 文档以及 XML 和 YAML 的支持。这使 SQL 与开发人员理想的数据交互方式保持同步。现在,SQL 可以与矢量数据相结合,使开发者能够使用 SQL 与数据交互,同时为生成式 AI 应用进行矢量搜索。

(二)SQL 的未来如何?

过去曾有人试图取代 SQL。NoSQL(不仅是 SQL)数据库的开发是为了取代关系型数据库,摆脱大规模处理和管理数据的传统模式。然而,这些数据库并没有取代 SQL,而是添加了自己的类 SQL 语言,复制了 SQL 在开发者工作方式中根深蒂固的一些方法和途径。

过去,自然语言处理的倡导者曾呼吁采用新方法来摒弃 SQL 笨拙的标准化方法。然而,这些尝试最终产生的方法与它们试图取代的方法一样笨拙,最终还是被边缘化、被忽视。生成式 AI 可能会为开发者承担更多编写 SQL 的任务,因为作为训练的一部分,大型语言模型已经接触了大量的 SQL 代码。不过,虽然这种方法可能会逐渐发展并变得更流行,但它仍然依赖于 SQL 来与这些数据集进行实际交互,并将结果反馈给用户。如果说有什么变化的话,这可能会使 SQL 在未来变得更加重要,而不是更加不重要,尽管开发者对它的可见度会降低。

即使 SQL 最终会退居幕后,它也将继续在我们与数据交互和使用数据的过程中发挥关键作用。在我们所有的 IT 系统中,有很大一部分都依赖于数据来运行,因此 SQL 不会在短期内消失。因此,让我们庆祝 SQL 50 周年,并考虑未来如何继续开发和使用它。


💡 更多资讯,请关注 Bytebase 公号:Bytebase

这篇关于SQL 五十周年:何去何从?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1130915

相关文章

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

mysql出现ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)的解决方法

《mysql出现ERROR2003(HY000):Can‘tconnecttoMySQLserveron‘localhost‘(10061)的解决方法》本文主要介绍了mysql出现... 目录前言:第一步:第二步:第三步:总结:前言:当你想通过命令窗口想打开mysql时候发现提http://www.cpp

MySQL大表数据的分区与分库分表的实现

《MySQL大表数据的分区与分库分表的实现》数据库的分区和分库分表是两种常用的技术方案,本文主要介绍了MySQL大表数据的分区与分库分表的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. mysql大表数据的分区1.1 什么是分区?1.2 分区的类型1.3 分区的优点1.4 分

MySQL错误代码2058和2059的解决办法

《MySQL错误代码2058和2059的解决办法》:本文主要介绍MySQL错误代码2058和2059的解决办法,2058和2059的错误码核心都是你用的客户端工具和mysql版本的密码插件不匹配,... 目录1. 前置理解2.报错现象3.解决办法(敲重点!!!)1. php前置理解2058和2059的错误

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE

MySQL Workbench 安装教程(保姆级)

《MySQLWorkbench安装教程(保姆级)》MySQLWorkbench是一款强大的数据库设计和管理工具,本文主要介绍了MySQLWorkbench安装教程,文中通过图文介绍的非常详细,对大... 目录前言:详细步骤:一、检查安装的数据库版本二、在官网下载对应的mysql Workbench版本,要是

mysql数据库重置表主键id的实现

《mysql数据库重置表主键id的实现》在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,本文主要介绍了mysql数据库重置表主键id的实现,具有一定的参考价值,感兴趣的可以了... 目录关键语法演示案例在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,当我们