大英做网站微信商城后台管理系统
大英做网站,微信商城后台管理系统,如何提升网站流量,浙江高端网站建设公司如果我们从集合论#xff08;关系代数#xff09;的角度来看#xff0c;一张数据库的表就是一组数据元的关系#xff0c;而每个 SQL 语句会改变一种或数种关系#xff0c;从而产生出新的数据元的关系#xff08;即产生新的表#xff09;。我们学到了什么#xff1f;思考…如果我们从集合论关系代数的角度来看一张数据库的表就是一组数据元的关系而每个 SQL 语句会改变一种或数种关系从而产生出新的数据元的关系即产生新的表。我们学到了什么思考问题的时候从表的角度来思考问题提这样很容易理解数据如何在 SQL 语句的“流水线”上进行了什么样的变动。4、 灵活引用表能使 SQL 语句变得更强大灵活引用表能使 SQL 语句变得更强大。一个简单的例子就是 JOIN 的使用。严格的说 JOIN 语句并非是 SELECT 中的一部分而是一种特殊的表引用语句。 SQL 语言标准中表的连接定义如下table reference :: table name | derived table | joined table 就拿之前的例子来说FROM a, b a 可能输如这样的连接a1 JOIN a2 ON a1.id a2.id 将它放到之前的例子中就变成了FROM a1 JOIN a2 ON a1.id a2.id, b 尽管将一个连接表用逗号跟另一张表联合在一起并不是常用作法但是你的确可以这么做。结果就是最终输出的表就有了 a1a2b 个字段了。译者注原文这里用词为 degree 译为维度。如果把一张表视图化我们可以想象每一张表都是由横纵两个维度组成的横向维度即我们所说的字段或者列英文为columns纵向维度即代 表了每条数据英文为 record 根据上下文作者这里所指的应该是字段数。在 SQL 语句中派生表的应用甚至比表连接更加强大下面我们就要讲到表连接。我们学到了什么思考问题时要从表引用的角度出发这样就很容易理解数据是怎样被 SQL 语句处理的并且能够帮助你理解那些复杂的表引用是做什么的。更重要的是要理解 JOIN 是构建连接表的关键词并不是 SELECT 语句的一部分。有一些数据库允许在 INSERT 、 UPDATE 、 DELETE 中使用 JOIN 。5、 SQL 语句中推荐使用表连接我们先看看刚刚这句话FROM a, b 高级 SQL 程序员也许学会给你忠告尽量不要使用逗号来代替 JOIN 进行表的连接这样会提高你的 SQL 语句的可读性并且可以避免一些错误。利用逗号来简化 SQL 语句有时候会造成思维上的混乱想一下下面的语句FROM a, b, c, d, e, f, g, h WHERE a.a1 b.bx AND a.a2 c.c1 AND d.d1 b.bc ... 我们不难看出使用 JOIN 语句的好处在于安全。 JOIN 和要连接的表离得非常近这样就能避免错误。更多连接的方式JOIN 语句能去区分出来外连接和内连接等。我们学到了什么记着要尽量使用 JOIN 进行表的连接永远不要在 FROM 后面使用逗号连接表。6、 SQL 语句中不同的连接操作SQL 语句中表连接的方式从根本上分为五种EQUI JOINSEMI JOINANTI JOINCROSS JOINDIVISIONEQUI JOIN这是一种最普通的 JOIN 操作它包含两种连接方式INNER JOIN或者是 JOIN OUTER JOIN包括 LEFT 、 RIGHT、 FULL OUTER JOINSEMI JOIN这种连接关系在 SQL 中有两种表现方式使用 IN或者使用 EXISTS。“ SEMI ”在拉丁文中是“半”的意思。这种连接方式是只连接目标表的一部分。这是什么意思呢再想一下上面关于作者和书名的连接。我们想象一下这样的情况我们不 需要作者 / 书名这样的组合只是需要那些在书名表中的书的作者信息。那我们就能这么写 Using IN FROM authorWHERE author.id IN (SELECT book.author_id FROM book) Using EXISTSFROM authorWHERE EXISTS (SELECT 1 FROM book WHERE book.author_id author.id) 尽管没有严格的规定说明你何时应该使用 IN 何时应该使用 EXISTS 但是这些事情你还是应该知道的1IN比 EXISTS 的可读性更好2EXISTS 比IN 的表达性更好更适合复杂的语句3二者之间性能没有差异但对于某些数据库来说性能差异会非常大因为使用 INNER JOIN 也能得到书名表中书所对应的作者信息所以很多初学者机会认为可以通过 DISTINCT 进行去重然后将 SEMI JOIN 语句写成这样 SELECT DISTINCT first_name, last_nameFROM authorJOIN book ON author.id book.author_id 这是一种很糟糕的写法原因如下SQL 语句性能低下因为去重操作 DISTINCT 需要数据库重复从硬盘中读取数据到内存中。译者注 DISTINCT 的确是一种很耗费资源的操作但是每种数据库对于 DISTINCT 的操作方式可能不同。沈阳463美容医院程序提醒这么写并非完全正确尽管也许现在这么写不会出现问题但是随着 SQL 语句变得越来越复杂你想要去重得到正确的结果就变得十分困难。转载于:https://www.cnblogs.com/chaorenman/p/4157686.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91767.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!