专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

SQL标准是什么意思,SQL标准有哪些?

来源:小易整编  作者:小易  发布时间:2023-02-08 12:09
摘要:SQL标准是什么意思,SQL标准有哪些?SQL的英文全称叫做StructuredQueryLanguage,它有一个很强大的功能,就是能在各个数据表之间进行连接查询(Query)。这是因为SQL是建立在关系型数据库基础上的一种语言。关系型数...

SQL标准是什么意思,SQL标准有哪些?SQL的英文全称叫做 Structured QueryLanguage,它有一个很强大的功能,就是能在各个数据表之间进行连接查询(Query)。这是因为SQL是建立在关系型数据库基础上的一种语言。关系型数据库的典型数据结构就是数据表,这些数据表的组成都是结构化的(Structured)。你可以把关系模型理解成一个二维表格模型,这个二维表格是由行(row)和列(column)组成的。每一个行(row)就是一条数据,每一列(column)就是数据在某一维度的属性。

正是因为在数据库中,表的组成是基于关系模型的,所以一个表就是一个关系。一个数据库中可以包括多个表,也就是存在多种数据之间的关系。而我们之所以能使用 SQL 语言对各个数据表进行复杂查询,核心就在于连接,它可以用一条 SELECT 语句在多张表之间进行查询。你也可以理解为,关系型数据库的核心之一就是连接。

既然连接在SQL中这么重要,那么针对今天的内容,需要你从以下几个方面进行掌握:

  1. SQL实际上存在不同的标准,不同标准下的连接定义也有不同。你首先需要了解常用的 SQL标准有哪些;

  2. 了解了SQL的标准之后,我们从SQL92标准入门,来看下连接表的种类有哪些;

  3. 针对一个实际的数据库表,如果你想要做数据统计,需要学会使用跨表的连接进行操作。

一、常用的SQL标准有哪些

在正式开始讲连接表的种类时,我们首先需要知道 SQL 存在不同版本的标准规范,因为不同规范下的表连接操作是有区别的。

SQL 有两个主要的标准,分别是 SQL92 和 SQL99。92 和99 代表了标准提出的时间,SQL92 就是 92 年提出的标准规范。当然除了 SQL92 和 SQL99 以外,还存在 SQL-86、SQL-89、SQL:2003、SQL:2008、SQL:2011 和 SQL:2016等其他的标准。

这么多标准,到底该学习哪个呢?实际上最重要的 SQL 标准就是 SQL92 和 SQL99。一般来说 SQL92 的形式更简单,但是写的 SQL 语句会比较长,可读性较差。而 SQL99相比于 SQL92 来说,语法更加复杂,但可读性更强。我们从这两个标准发布的页数也能看出,SQL92 的标准有 500页,而 SQL99 标准超过了 1000 页。实际上你不用担心要学习这么多内容,基本上从 SQL99 之后,很少有人能掌握所有内容,因为确实太多了。就好比我们使用 Windows、Linux 和 Office 的时候,很少有人能掌握全部内容一样。我们只需要掌握一些核心的功能,满足日常工作的需求即可。

二、在SQL92中是如何使用连接的

相比于 SQL99,SQL92 规则更简单,更适合入门。在这篇文章中,我会先讲 SQL92 是如何对连接表进行操作的,下一篇文章再讲 SQL99,到时候你可以对比下这两者之间有什么区别。

在进行连接之前,我们需要用数据表做举例。这里我创建了NBA 球员和球队两张表。

其中 player 表为球员表,一共有 37 个球员,如下所示:

team 表为球队表,一共有 3 支球队,如下所示:

有了这两个数据表之后,我们再来看下 SQL92 中的 5 种连接方式,它们分别是笛卡尔积、等值连接、非等值连接、外连接(左连接、右连接)和自连接。

三、笛卡尔积

笛卡尔乘积是一个数学运算。假设我有两个集合 X 和 Y,那么 X 和 Y 的笛卡尔积就是 X 和 Y 的所有可能组合,也就是第一个对象来自于 X,第二个对象来自于 Y 的所有可能。我们假定 player 表的数据是集合 X,先进行 SQL 查询:

SELECT * FROM player

再假定 team 表的数据为集合 Y,同样需要进行 SQL 查询:

SELECT * FROM team

你会看到运行结果会显示出上面的两张表格。

接着我们再来看下两张表的笛卡尔积的结果,这是笛卡尔积的调用方式:

SQL: SELECT * FROM player, team

运行结果(一共 37*3=111 条记录):

笛卡尔积也称为交叉连接,英文是 CROSS JOIN,它的作用就是可以把任意表进行连接,即使这两张表不相关。但我们通常进行连接还是需要筛选的,因此你需要在连接后面加上

WHERE 子句,也就是作为过滤条件对连接数据进行筛选。比如后面要讲到的等值连接。

四、等值连接

两张表的等值连接就是用两张表中都存在的列进行连接。我们也可以对多张表进行等值连接。

针对 player 表和 team 表都存在 team_id 这一列,我们可以用等值连接进行查询。

SQL: SELECT player_id, player.team_id, player_name, hei

运行结果(一共 37 条记录):

我们在进行等值连接的时候,可以使用表的别名,这样会让SQL 语句更简洁:

SELECT player_id, a.team_id, player_name, height, team_

需要注意的是,如果我们使用了表的别名,在查询字段中就只能使用别名进行代替,不能使用原有的表名,比如下面的SQL 查询就会报错:

SELECT player_id, player.team_id, player_name, height,

五、非等值连接


本文地址:网络知识频道 https://www.hkm168.com/jiqiao/903052.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


网络知识
小编:小易整编
相关文章相关阅读
  • mysql中的不等于符号是什么

    mysql中的不等于符号是什么

    mysql中的不等于符号有两种:“!=”和“”;它们都可用于判断数字、字符串、表达式是否不相等。对于“!=”和“”,如果两侧操作数不相等,返回值为1,否则返回值为0;如果两侧操作数有一个是null,那么返回值也是null。本教程操作环境:w...

  • mysql列转行函数是什么

    mysql列转行函数是什么

    在mysql中,列转行函数是“group_concat()”函数;该函数用于将非空列值按照分组条件进行合并并最终返回,如果其中有空值则返回的结果是空,语法为“selectgroup_concat(name separator';')列...

  • MySQL连接被重置,如何处理?

    MySQL连接被重置,如何处理?

    mysql连接被重置,如何处理?MySQL是一种常用的关系型数据库管理系统,广泛应用于各种不同规模的项目中。然而,在使用MySQL时,有时会遇到连接被重置的情况,这可能会给我们的项目带来一些麻烦。本文将介绍MySQL连接被重置的原因以及如何...

  • SQL中的有哪几种数据类型

    SQL中的有哪几种数据类型

    sql中的五种数据类型:字符型,文本型,数值型,逻辑型和日期型简要描述一下sql中的五种数据类型:字符型,文本型,数值型,逻辑型和日期型字符型VARCHAR和CHARVARCHAR型和CHAR型数据的这个差别是细微的,但是非常重要。他们...

  • mysql环境变量如何配置

    mysql环境变量如何配置

    mysql环境变量的配置方法:1、找到c盘中的mysql安装路径;2、在“我的电脑"中,依次点击“系统属性”-“高级系统设置”选项;3、在“环境变量”弹窗中,依次点击“高级”-“系统变量”;4、找到path路径,点击“编辑”选项,......

  • mysql查询怎么设置降序

    mysql查询怎么设置降序

    在mysql中,可以利用desc关键字对查询结果进行降序显示,该关键字是descend的缩写,常于orderby子句配合使查询结果降序,语法为“select字段1,字段2...from表名orderby指定字段desc”。本...

  • 一文搞懂MySQL索引下推

    一文搞懂MySQL索引下推

    本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于索引下推的相关内容,索引条件下推也叫索引下推,英文全称indexconditionpushdown,简称icp,用于优化数据查询,下面一起来看一下,希望对大家有帮助。推荐学...

  • 创建存储过程 mysql

    创建存储过程 mysql

    mysql是一款流行的开源关系数据库管理系统,在处理大量数据时表现出色。存储过程是一种可重复使用的代码块,它们可以与数据表交互,并可以在查询中调用。本文将介绍如何创建存储过程,以及如何在MySQL中调用和使用它们。一、创建存储过程在...

  • 周排行
  • 月排行
  • 年排行

精彩推荐