【手写数据库内核miniToadb】第2天 与数据库交互的桥梁--SQL解绍 ...

打印 上一主题 下一主题

主题 837|帖子 837|积分 2511

专栏内容
  

  • 手写数据库toadb
    本专栏主要先容如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的题目等,让各人能跟上并且可以一起开发,让每个必要的人成为到场者,在开源无穷的公众号更新会更及时。
  一、概述


上一节通过一个简单的C语言步伐来模仿数据库的行为,从处理能力来看,也有创建表,插入、删除、更新、查询等操纵,但是与各人以为的数据库差距很大。
关系型数据库的一个很明显的特点,就是有标准的操纵数据库的语言,它就是常用的SQL。我们来开发的数据库内核支持这一标准SQL,如许才能符合数据库的一个审美。
说到语言,就不得不做语言的解析了,雷同于自然语经过人脑分析后,转换为一系列人的动作行为;而数据库中的解析模块要把用户的SQL表达的意图经过词法和语法分析,转换成步伐可处理的数据结构。
这听起来还是很有意思的,那么我们现在就开始这第一步吧。
在开始之前再补充一些内容,整个开发过程主要使用C语言开发,在解析中会用到正则表达式和上下文无关语法,它们占比非常小。
开发所用的系统是CentOS 8.2,当然其它linux版本可能命令会有差异,Centos系列还是比力一致,可以看到后面都会使用Makefile、gcc等编译工具;
源码编辑器可以使用流行的VScode,支持跨平台,当然也可以使用Eclipse,大概本身熟悉的其它工具,差别编辑器之间的默认字符集可能差别,最好设置为UTF-8,Linux下的换行模式,统一的格式避免一些奥妙的题目。
二、SQL简述


SQL,全称为Structured Query Language,即结构化查询语言,是一种专门用来与数据库举行通讯的语言。
2.1 发展历史



  • SQL语言的发展始于1974年,由IBM公司的Boyce和Chamberlin提出,并在IBM研制的关系数据库系统System R上实现。SQL的计划初衷是为了进步数据库查询效率,但随着时间的发展,SQL的功能已经扩展到数据的插入、更新和删除等操纵。
  • 1986年,SQL成为美国国家标准(ANSI)和国际标准化构造(ISO)的标准,随后在1987年成为国际标准。
2.2 SQL的功能

按功能的差别,将SQL划分为DQL,DDL,DML,DCL等类型,常常使用的查询,插入更新等就属于DQL和DML范围。



  • 数据查询(DQL):Data Query Language, 使用SELECT语句从数据库中检索数据。查询操纵的灵活性表现在能够根据必要选择特定的列或行,使用WHERE子句举行条件筛选,以及通过ORDER BY举行排序等。
  • 数据界说(DDL):Data Definition Language, 使用CREATE、ALTER和DROP等语句来界说数据库结构,如创建新表或修改、删除表。CREATE语句用于生成新的数据库对象、视图或索引;ALTER用于修改现有结构,如添加或删除列;DROP语句则用于删除数据库对象。
  • 数据操纵(DML):Data Manipulation Language, 使用INSERT、UPDATE和DELETE等语句来插入、更新或删除数据库中的数据。
  • 数据控制(DCL):Data Control Language, 使用GRANT和REVOKE等语句来控制数据库的访问权限。
  • 事务控制(TCL):Transaction Control Language, 提供BEGIN TRANSACTION、COMMIT和ROLLBACK等语句用于管理事务,确保数据库操纵的原子性、一致性、隔离性和恒久性(ACID属性)。
  • 存储过程和触发器:允许创建存储过程和触发器,这些数据库对象可以在特定事件或条件下自动执行一系列预界说的SQL语句。
  • 嵌入式SQL和SQL API:SQL的嵌入式实现允许它被直接嵌入到高级编程语言中,如Java、C#等,通过特定的API调用来执行数据库操纵。
2.3 SQL标准的发展

SQL标准的发展是一个不停演进的过程,旨在进步数据库的互操纵性、可扩展性和性能。

  • 早期发展

    • 1970年代初,IBM公司的埃德加·科德提出了关系数据库的概念,为SQL的诞生奠定了基础。
    • 1974年,IBM的D.D.Chamberlin和R.F.Boyce在研制关系数据库管理系统System R时,研制出一套规范语言SEQUEL(Structured English QUEry Language),并在1976年11月的IBM Journal of R&D上公布新版本的SQL(叫SEQUEL/2)。1980年改名为SQL。

  • 标准化过程

    • 1986年,美国ANSI采用SQL作为关系数据库管理系统的标准语言(ANSI X3.135-1986),后为国际标准化构造(ISO)采纳为国际标准。
    • 1989年,美国ANSI采纳在ANSI X3.135-1989报告中界说的关系数据库管理系统的SQL标准语言,称为ANSI SQL 89,该标准替换ANSI X3.135-1986版本。

  • 持续更新

    • 自1989年以来,SQL标准经历了多次更新和完善,如SQL-92、SQL-99等版本。
    • 这些更新旨在添加新功能、进步性能、加强与其他技能的集成等。

  • 最新标准

    • 国际标准化构造ISO于2023年6月1日正式发布了最新SQL标准,即SQL:2023。
    • SQL:2023标准包含了多个部分,涵盖了SQL语言的基本框架、基本原则、调用级接口、恒久存储模块、外部数据管理、对象语言绑定、信息与界说概要等多个方面。
    • 新增了第16部分SQL/PGQ,支持图形查询语言GQL,加强了SQL对图形数据处理的能力。
    • 强化了SQL语言和JSON功能,以更好地支持现代应用的需求。

SQL标准的发展经历了多个阶段,并持续得到更新和完善。最新SQL标准(SQL:2023)的发布为数据库技能的发展注入了新的活力,并推动了数据库系统的不停创新和进步。
各人对数据库内核有兴趣的话,可以关注我,从今天开始从零编写一个可以使用的数据库内核。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

笑看天下无敌手

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表