当前位置: 首页 > article >正文

SQL 语句:从产生、发展到内容全景

引言数据世界的通用语言SQLStructured Query Language结构化查询语言是当今数据领域最核心、最通用的语言。无论是数据分析师、后端工程师还是数据科学家都离不开 SQL。它就像数据世界的“普通话”连接着用户与庞大的数据库系统。本文将带你穿越时空回顾 SQL 的诞生与发展历程并全景式地介绍其核心内容帮助你构建完整的 SQL 知识体系。一、 SQL 的诞生关系模型的产物SQL 的诞生与“关系模型”这一革命性的理论密不可分。时代背景20 世纪 60-70 年代计算机开始用于商业数据处理。当时的数据管理方式如层次数据库、网状数据库复杂且难以使用数据与程序高度耦合。理论奠基1970 年IBM 的研究员埃德加·科德Edgar F. Codd发表了论文《A Relational Model of Data for Large Shared Data Banks》首次提出了“关系模型”。该模型用简单的二维表关系来组织数据极大地简化了数据的概念结构。语言诞生有了优秀的数据模型还需要一种与之匹配的、易于理解的语言来操作它。IBM 的另一个团队在 Codd 理论的基础上于 1974 年开发了最初的SEQUELStructured English Query Language后因商标问题更名为SQL。商业化与标准化1979 年关系软件公司现 Oracle 公司发布了第一个商业化的 SQL 数据库系统。为了统一规范美国国家标准学会ANSI和国际标准化组织ISO分别在 1986 年和 1987 年发布了 SQL 标准SQL-86/SQL-87奠定了 SQL 作为国际标准语言的地位。核心思想SQL 的设计哲学是声明式编程。用户只需“声明”想要什么数据What而无需关心数据库底层“如何”获取How。这与传统的命令式编程如 C、Java有本质区别。二、 SQL 的发展从标准到百花齐放SQL 标准并非一成不变它随着技术发展和需求变化而不断演进。SQL-86 / SQL-87第一个官方标准定义了基本的数据定义DDL、数据操纵DML和简单查询。SQL-92SQL2一个里程碑式的版本被广泛认为是现代 SQL 的基础。它极大地丰富了语言特性包括更完善的连接语法JOIN ... ON。标量子查询。新的数据类型如DATE,TIME。动态 SQL。SQL:1999SQL3引入了许多面向对象和高级特性公用表表达式CTEWITH子句支持递归查询。窗口函数OVER()子句用于进行复杂的行间计算如排名、累计和。用户自定义类型UDT和更完善的触发器。SQL:2003, SQL:2008, SQL:2011, SQL:2016…后续标准持续加入新功能例如MERGE语句UPSERT 操作。FETCH子句分页。JSON相关函数适应半结构化数据。时态表支持。现实情况虽然存在国际标准但各大数据库厂商如Oracle, MySQL, PostgreSQL, SQL Server, SQLite在实现时都会有自己的“方言”和扩展。它们大部分遵循核心的 SQL-92 标准但在高级功能、函数、性能优化语法上各有特色。因此学习 SQL 时既要掌握通用标准也要了解目标数据库的特性。三、 SQL 内容全景四大组成部分SQL 语句按其功能可以清晰地划分为四大类通常简称为DDL、DML、DQL、DCL。1. 数据定义语言DDL - Data Definition Language功能定义和管理数据库中的所有对象的结构如数据库、表、索引、视图等。核心语句CREATE创建数据库对象。CREATETABLEemployees(idINTPRIMARYKEY,nameVARCHAR(100)NOTNULL,department_idINT,hire_dateDATE);ALTER修改已有对象的结构。ALTERTABLEemployeesADDCOLUMNemailVARCHAR(255);DROP删除对象。DROPTABLEtemporary_data;TRUNCATE快速清空表中的所有数据不可回滚。2. 数据操纵语言DML - Data Manipulation Language功能对表中的数据进行增、删、改操作。核心语句INSERT插入新数据。INSERTINTOemployees(id,name,department_id)VALUES(1,张三,10);UPDATE更新已有数据。UPDATEemployeesSETsalarysalary*1.1WHEREdepartment_id10;DELETE删除数据可带条件。DELETEFROMemployeesWHEREhire_date2020-01-01;MERGEUPSERT根据条件插入或更新数据高级功能。3. 数据查询语言DQL - Data Query Language功能从数据库中检索数据这是 SQL 中最常用、最核心的部分。核心语句SELECT。一个完整的SELECT查询包含了 SQL 的精华SELECTe.nameAS员工姓名,d.nameAS部门名称,SUM(s.amount)AS总销售额FROMemployees eJOINdepartments dONe.department_idd.idLEFTJOINsales sONe.ids.employee_idWHEREe.hire_date2023-01-01GROUPBYe.id,e.name,d.nameHAVINGSUM(s.amount)100000ORDERBY总销售额DESCLIMIT10;关键子句解析SELECT指定要返回的列。FROM/JOIN指定数据来源和表连接方式。WHERE对行进行过滤。GROUP BY对数据进行分组。HAVING对分组后的结果进行过滤。ORDER BY对结果进行排序。LIMIT/OFFSET限制返回的行数分页。4. 数据控制语言DCL - Data Control Language功能控制对数据库的访问权限和事务。核心语句GRANT授予用户或角色权限。GRANTSELECT,INSERTONemployeesTOanalyst_role;REVOKE撤销权限。REVOKEDELETEONemployeesFROMintern_user;事务控制语句BEGIN TRANSACTION/START TRANSACTION开始一个事务。COMMIT提交事务使所有修改永久化。ROLLBACK回滚事务撤销所有未提交的修改。BEGINTRANSACTION;UPDATEaccountSETbalancebalance-100WHEREid1;UPDATEaccountSETbalancebalance100WHEREid2;-- 如果两条更新都成功则提交COMMIT;-- 如果任何一条失败则回滚-- ROLLBACK;四、 高级特性与未来展望现代 SQL 早已超越了简单的“增删改查”包含了许多强大的高级特性窗口函数在不聚合数据的前提下进行跨行的计算如排名、移动平均。公用表表达式CTE提高复杂查询的可读性支持递归查询处理树形结构数据。JSON/XML 函数在关系数据库中直接处理半结构化数据。存储过程与函数将业务逻辑封装在数据库端。触发器在数据变更时自动执行特定操作。未来趋势随着大数据和云原生的发展SQL 正在与新的计算范式结合例如流式 SQL用于实时处理无界数据流如 Apache Flink SQL。联邦查询用一条 SQL 语句查询多个异构数据源。在机器学习中的应用越来越多的数据库内置了机器学习函数允许用 SQL 进行简单的模型训练和预测。总结SQL 是一门经久不衰的语言。它的强大之处在于其简单的语法背后蕴含着处理复杂数据关系的巨大能力。从关系模型的学术论文到成为所有数据库的通用接口再到如今处理实时流数据和半结构化数据SQL 一直在进化。学习 SQL 的最佳路径是先精通 DQLSELECT掌握连接、分组、过滤的核心思想然后熟悉 DML 和 DDL 来完成数据操作与管理最后根据工作需要探索窗口函数、CTE 等高级特性以及特定数据库的优化技巧。掌握 SQL你就拥有了打开数据宝库的万能钥匙。

相关文章:

SQL 语句:从产生、发展到内容全景

引言:数据世界的通用语言 SQL(Structured Query Language,结构化查询语言)是当今数据领域最核心、最通用的语言。无论是数据分析师、后端工程师还是数据科学家,都离不开 SQL。它就像数据世界的“普通话”,连…...

大中小型企业数据配置年度成本估算分析

引言 在数字化转型浪潮下,数据已成为企业的核心资产。无论是初创公司、中型企业还是大型集团,合理规划数据存储、处理与分析的成本,对于优化IT预算、提升投资回报率至关重要。本文旨在为不同规模的企业提供一个清晰、可操作的年度数据配置成本…...

大中小型企业数据层配置规模分析与选型指南

引言 在数字化转型浪潮中,数据已成为企业的核心资产。无论是初创公司、中型企业还是大型集团,构建一个稳定、高效、可扩展的数据层架构都是支撑业务发展的基石。然而,不同规模的企业在数据量、业务复杂度、团队能力和预算投入上存在显著差异&…...

SQL 最常用技能详解与实战示例

引言 SQL(Structured Query Language,结构化查询语言)是与关系型数据库交互的核心工具。无论是数据分析师、后端开发工程师还是产品经理,掌握 SQL 的核心技能都至关重要。本文将系统性地介绍 SQL 中最常用、最核心的技能&#xff…...

AI辅助编程:发展现状、效率评估与未来展望

引言:AI如何重塑编程范式? 在过去的几年里,人工智能(AI)正以前所未有的速度渗透到软件开发的各个角落。从最初的代码补全工具,到如今能够理解复杂需求、生成完整函数甚至设计系统架构的智能体,AI辅助编程已经从科幻概念演变为开发者日常工作中不可或缺的“副驾驶”。它…...

Dism++:你的Windows系统优化瑞士军刀,16国语言支持的免费神器

Dism:你的Windows系统优化瑞士军刀,16国语言支持的免费神器 【免费下载链接】Dism-Multi-language Dism Multi-language Support & BUG Report 项目地址: https://gitcode.com/gh_mirrors/di/Dism-Multi-language 你是否曾为Windows系统越来越…...

Windows热键冲突终极指南:如何用Hotkey Detective一键精准定位占用程序

Windows热键冲突终极指南:如何用Hotkey Detective一键精准定位占用程序 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detecti…...

WarcraftHelper:5分钟解决魔兽争霸III现代兼容性问题的终极指南

WarcraftHelper:5分钟解决魔兽争霸III现代兼容性问题的终极指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为经典魔兽争霸III在W…...

视频硬字幕提取神器:3分钟将任何视频字幕转为可编辑SRT文件

视频硬字幕提取神器:3分钟将任何视频字幕转为可编辑SRT文件 【免费下载链接】video-subtitle-extractor 视频硬字幕提取,生成srt文件。无需申请第三方API,本地实现文本识别。基于深度学习的视频字幕提取框架,包含字幕区域检测、字…...

KMS_VL_ALL_AIO终极指南:三步永久激活Windows和Office系统

KMS_VL_ALL_AIO终极指南:三步永久激活Windows和Office系统 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统频繁弹出激活提示而烦恼吗?Office文档突然变…...

森林-服务器存档

对于想要自建游戏服务器的玩家,云鸢互联是一个不错的专业联机平台选择。它提供稳定、低延迟且724小时在线的服务器环境,助你轻松打造专属游戏世界。平台主打极致的新手友好——全图形化控制面板,无需编写代码,也无需掌握Linux命令…...

森林The Forest - 服务器开服

对于想要自建游戏服务器的玩家,云鸢互联是一个不错的专业联机平台选择。它提供稳定、低延迟且724小时在线的服务器环境,助你轻松打造专属游戏世界。平台主打极致的新手友好——全图形化控制面板,无需编写代码,也无需掌握Linux命令…...

Agent 时代的开发者技能树重构指南

1. 标题选项 核心关键词:AI Agent、开发者转型、技能树重构、职业跃迁 《Agent 时代降临:普通开发者的技能树重构全指南,从CRUD Boy到AI应用工程师的跃迁之路》 《别再只会写CRUD了!AI Agent浪潮下,你必须掌握的新技能树体系》 《从软件开发到AI Agent开发:2024年开发者技…...

Linux】2026 年 13 款最强视频播放器(含安装命令 + 优缺点)

Linux视频播放器选择多样,如榛名、MPlayer、VLC等,功能强大、支持多格式,满足各类用户需求 一、榛名视频播放器 榛名视频播放器是一款基于Qt的开源视频播放器,提供了许多基本功能。其特点包括支持Youtube-dl、控制播放速度、丰富…...

浙大联合腾讯让AI“看懂“三维世界

这项由浙江大学、腾讯混元大模型团队、香港科技大学及深圳湾区研究院联合完成的研究,以预印本形式发布于2026年5月,论文编号为arXiv:2605.15876,有兴趣深入了解的读者可通过该编号查询完整论文。当你拿起手机拍下一张客厅照片,现在…...

从零开发游戏需要学习的c#模块,第二十章(2D 敌人与战斗触发)

本节课我们要学习的内容在地图上随机生成红色敌人玩家碰到敌人后,进入战斗模式战斗胜利后敌人消失,获得分数屏幕显示敌人数量using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Syst…...

AI 时代的平台工程

两个月前,正是我 Aha moment 不断,多巴胺爆炸的时刻,每天都会记录下很多灵感和想法,准备在未来写成文章,或者开发成工具。其中有一条是这样的:AI 时代的平台工程(CLISkillMCP,可访问…...

加印了!谢谢大家,这本不讲空话的“AI落地说明书”为什么能卖爆?

想不到有一天我也会有“书竟然卖爆了”的感觉,机械工业出版社要紧急加印才能供上货的那种。特别感谢机械工业出版社的朋友们从策划到发布的全程细致高效的工作,感谢微软中国首席技术官韦青老师亲临发布会现场为我们共同的理想发声,更要感谢各…...

MongoDB 连接详解

MongoDB 连接详解 引言 MongoDB 是一款强大的 NoSQL 数据库,以其灵活的文档存储和强大的扩展性而备受青睐。在开发过程中,与 MongoDB 的连接是至关重要的第一步。本文将详细讲解 MongoDB 的连接方式、连接参数以及连接池的使用,帮助您更好地理解并使用 MongoDB。 MongoDB…...

C++学习笔记23:const 成员函数

目录 一、为什么需要 const 成员函数? 二、const 成员函数的写法 三、const 修饰的到底是什么? 四、const 成员函数不能修改成员变量 五、const 对象和普通对象的调用规则 1. const 对象只能调用 const 成员函数 2. 普通对象可以调用 const 成员函…...

Blender 3MF插件:实现CAD到3D打印的无缝转换完整指南

Blender 3MF插件:实现CAD到3D打印的无缝转换完整指南 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 在3D打印和数字制造领域,3D Manufacturing F…...

终结拟合式智能:记忆博弈心智架构重塑硅基生命进化逻辑

当前全球AGI研发赛道,正陷入一场难以破局的同质化内卷。无论是头部科技企业的超大参数模型,还是轻量化垂直AI产品,核心底层始终沿用Transformer概率拟合逻辑。这套技术体系虽然实现了人工智能的规模化落地,却从根源上锁死了AI的智…...

从概率拟合到内生心智:七层投影架构重构AGI数字生命新范式

自2017年Transformer架构问世以来,人工智能领域正式迈入大模型迭代时代。十余年间,千亿、万亿参数模型不断涌现,依托自注意力机制的概率拟合算法,AI在文本生成、多模态交互、逻辑问答等领域实现了规模化突破,彻底改变了…...

3步搞定显卡风扇异常:用FanControl彻底解决NVIDIA风扇噪音和转速问题

3步搞定显卡风扇异常:用FanControl彻底解决NVIDIA风扇噪音和转速问题 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitH…...

Supervisely完整指南:5步打造AI视觉标注神器

Supervisely完整指南:5步打造AI视觉标注神器 【免费下载链接】supervisely Supervisely SDK for Python - convenient way to automate, customize and extend Supervisely Platform for your computer vision task 项目地址: https://gitcode.com/gh_mirrors/su…...

B/S架构模式在校园管理系统中的应用研究

随着校园信息化建设的不断普及,各类校园管理系统层出不穷,系统架构模式直接决定系统的使用便捷性、运维难度与适配场景。传统C/S架构即客户端/服务器架构,需要用户下载安装专属客户端,存在部署繁琐、升级困难、跨终端适配差、运维…...

MyBatis-Plus持久层框架应用技术研究

在Web应用系统开发过程中,数据持久层承担着数据库交互、数据读写、数据统计、条件查询的核心作用,持久层框架的性能与便捷性直接决定项目开发效率与系统运行稳定性。传统MyBatis框架虽能够实现数据库增删改查操作,但存在代码冗余、重复代码多…...

《技术底稿 40》别只看文件大小:一次 “反常 OOM” 背后的内存缓存重构

一、反常现象:小文件报错,大文件反倒正常业务场景需批量导入文献类 ZIP 压缩包。本次测试出现诡异问题:一个 282MB 的 ZIP 包导入时,直接抛出 java.lang.OutOfMemoryError: Java heap space 堆内存溢出。当前服务 JVM 堆内存固定配…...

基于Spring Security与JWT的权限认证技术研究

在高校信息化管理系统中,数据安全与权限隔离是系统设计的核心重点。学生奖惩信息属于高校学生核心隐私数据,包含学生奖励记录、违纪处分记录、档案信息、审批流程信息等敏感内容,若缺乏完善的权限管控机制,极易出现数据泄露、越权…...

如何让微信聊天记录成为你的数字记忆银行?WeChatMsg完全指南

如何让微信聊天记录成为你的数字记忆银行?WeChatMsg完全指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we…...