• SQL基础理论篇(一):什么是SQL


    什么是SQL

    SQL的全称是Structured Query Language,即结构化查询语句。

    其最早诞生于1974年,IBM研究员发布的一篇论文"SEQUEL:一门结构化的英语查询语言"。这几十年里,太多的语言诞生,太多的语言消失,但是SQL的发展却愈久弥坚,甚至都没有发生过太大的变化,可以说,它的半衰期是很长的。

    SQL作为与数据直接打交道的语言,是与各种前端后端语言进行交互的"中台"语言。

    技术人员或多或少都会使用SQL,但是不同的人编写的SQL效率是不一样的,比如说一份好的SQL执行计划就会尽量减少IO操作,因为IO是DBMS最容易出现瓶颈的地方,可以说数据库操作中大量的时间都花在了IO上。

    相比其他编程语言,SQL语言是非常直观的,即使没有SQL基础,也能凭借英语基础猜出大致意思。

    SQL的四大部分

    按照功能的不同,我们可以把SQL语言划分成4部分:

    • DDL,即Data Definition Language,数据定义语言。通过DDL,我们可以创建、删除和修改数据库和表结构;
    • DML,即Data Manipulation Language,数据操作语言。通过DML,我们可以增加、删除和修改数据表中的记录;
    • DCL,即Data Control Language,数据控制语言。通过DCL,我们可以来定义访问权限和安全级别;
    • DQL,即Data Query Language,数据查询语言。通过DQL,我们可以查询我们需要的数据记录。

    SQL是我们与DBMS交流的语言,我们在创建DBMS之前,还需要对它进行设计,对于RDBMS(对象关系型数据库管理系统)来说,是采用ER图(Entity Relationship Diagram),即实体 - 关系图的方式进行设计。

    ER图评审通过后,我们再使用SQL或者其他可视化管理工具,来创建数据表。

    实体 - 关系图是我们用来描述现实世界的概念模型,在这个模型里有3个要素:实体,属性和关系。

    实体就是我们要管理的对象,属性是标识每个实体的属性,关系则是指实体对象之间的关系。比如客户这个实体,有姓名、性别和证件号等属性。

    关系型数据库中最重要的一种数据结构就是数据表,这些数据表的组成都是结构化的。你可以把关系模型理解成一个二维表格模型。

    常用的SQL标准

    SQL自诞生后已经发行了很多版本的标准规范,不同规范下的SQL操作是有区别的。

    SQL有两个主要的标准,分别是SQL92SQL99。数字代表了它们提出的年份。除了这两种标准以外,还存在SQL-86、SQL-89、SQL:2003、SQL:2008、SQL:2011和SQL:2016等其他的标准,但最重要且应用最广泛的还是SQL92和SQL99。

    SQL92和SQL99各有各自的特点。SQL92标准更简单,但是写出的SQL可读性差,可能会比较长。而SQL99语法稍微复杂,但是可读性更强。从这两个标准发布的页数中也可窥一斑,92版本有500页,但是99标准超过了1000页。(这两个标准我们日常其实都在使用)

    SQL92和SQL99是最经典的SQL标准,也被称为是SQL-2、SQL-3标准。从这两个标准发布后,SQL的影响力越来越大,逐渐超脱了数据库领域,在信息处理等方面崭露头角。

    此外,我们所使用的DBMS,即MySQL、DB2等,都支持SQL语言,但是它们只符合大部分的SQL标准,因为它们大都在常用SQL标准的基础上,根据自身产品的特点做出了拓展(方言化)。

    目前oracle仍然支持92标准,但是MySQL已经不支持92标准的连接语句了。

    SQL语言跟其他语言不同,它的半衰期是很长的。SQL92标准发布于1992年,同期也发布了Windows3.1,但是现在我们早已经不适用windows3.1了,而92标准却持续使用至今。

    参考文献

    1. 01丨了解SQL:一门半衰期很长的语言
  • 相关阅读:
    Mac电脑其他文件太占内存?如何进行删除
    CListCtrl控件为只显示一列,持滚动显示其他,不用SetScrollFlags
    Vue页面使用Vue3语法
    Java 图像处理(一)
    物联网浏览器(IoTBrowser)-顶尖OS2电子秤协议实现
    内网渗透之PTH&PTT&PTK(域控)
    python+pytest接口自动化(4)-requests发送get请求
    Mybatis-Plus前后端分离多表联查模糊查询分页
    【MindSpore】【BatchNorm1d】Fused batchnorm only support nchw input!
    基于springboot+vue的便捷网住宿预约系统(前后端分离)
  • 原文地址:https://blog.csdn.net/wlh2220133699/article/details/134403984