一.数据构建 先建表,再说话 create database Test use Test create table A ( AID ,) primary key, name ), age int ) create table B ( BID ,) primary key, name ), gender int ) 创建完之后,插入数据 ) ) ) ) ) ) ) ) 现在建完两张表,Table A,Table B其各有四条记录,其中有两条记录name是相同的: 二.对比测试 缺省情况下是inne…
突然发现个很吊的链接,我们来看看学习数据库要做些什么,胆小慎点:DBA工作内容!!!! 今天来翻译一篇关于T-SQL的文章,本文可供微软认证70-461:QueryingMicrosoft SQL Server 2012的学习和练习之用.本文以翻译为主,引出个人工作中的一些思考,详见最后部分. 我会尽可能抽时间翻译本系列(见原文出处的相关链接,这是一系列的文章)的其他文章,除了回顾一些知识之外,重点是总结一下自己的所得. -------------------------------------…
[译注:此文为翻译,由于本人水平所限,疏漏在所难免,欢迎探讨指正] 原文链接:传送门. 性能考虑产生了笛卡尔积的这个CROSS JOIN操作符具有一些性能方面的问题需要考虑.因为SQL引擎需要将一个数据集的每一行与另一个数据集的每一行进行关联,其结果集合将会非常巨大.如果我将一个具有 1,000,000行数据的表与另一张具有 1,000,000行数据的表进行CROSS JOIN,那么我的结果集将会包含 1,000,000* 1,000,000行数据,也就是100,000,000,000行数据.这…
[译注:此文为翻译,由于本人水平所限,疏漏在所难免,欢迎探讨指正] 原文连接:传送门. 当一个CROSS JOIN 表现得如同一个INNER JOIN 在上一章节我提到当你使用一个CROSS JOIN 操作符时候它会产生一个笛卡尔积.然而这并不总是真实的情况.当你使用WHERE 子句对涉及到CROSS JOIN操作符的表的关联进行约束,SQL SERVER便不会产生笛卡尔积.反而它的功能更像是一个正常的 JOIN 操作符.为了演示这种行为,请查看列表5的代码: SELECT * FROM Pro…
下面列出了您可以使用的 JOIN 类型,以及它们之间的差异. JOIN: 如果表中有至少一个匹配,则返回行(join=inner join) LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行 RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行 FULL JOIN: 只要其中一个表中存在匹配,就返回行 cross join:笛卡尔积,N*M 前提条件:假设有两个表,一个是学生表,一个是学生成绩表. 表的数据有: 一.内连接-inner jion : 最常见的连接查询可能…
最近在讲到T-SQL查询的Join部分时,一下子没有想起来CROSS JOIN的用法,因为其实平常也确实基本不用到.特意找了一个例子,以供参考 CROSS JOIN又称为笛卡尔乘积,实际上是把两个表乘起来.以下资料摘自:http://www.sqlguides.com/sql_cross_join.php SQL CROSS JOIN will return all records where each row from the first table is combined with each…
原文:CROSS JOIN 最近在讲到T-SQL查询的Join部分时,一下子没有想起来CROSS JOIN的用法,因为其实平常也确实基本不用到.特意找了一个例子,以供参考 CROSS JOIN又称为笛卡尔乘积,实际上是把两个表乘起来.以下资料摘自:http://www.sqlguides.com/sql_cross_join.php SQL CROSS JOIN will return all records where each row from the first table is comb…
测试必备的Mysql常用sql语句 https://www.cnblogs.com/poloyy/category/1683347.html 前言 交叉连接就是求多表之间的笛卡尔积 讲道理..这个我都不怎么常用..因为能用到的地方太少了:但还是要介绍的啦 啥是笛卡尔积 这属于数学的内容,不介绍概念,直接看栗子来知道吧! 假设,有两个集合A.B A = {1,2} B = {3,4} 集合A和集合B的笛卡尔积 = 集合A * 集合B:即,两表相乘,如下: AxB = {(1,3),(1,4),(2…
对于SQL中inner join.outer join和cross join的区别简介:现有两张表,Table A 是左边的表.Table B 是右边的表.其各有四条记录,其中有两条记录name是相同的: 1.INNER JOIN 产生的结果是AB的交集 SELECT * FROM TableA INNER JOIN TableB ON TableA.name = TableB.name          2.LEFT [OUTER] JOIN 产生表A的完全集,而B表中匹配的则有值,没有匹配的…
z       --     -- select   a.*,b.*   from   a   left   join   b   on   a.k   =   b.k      select   a.*,b.*   from   a   left   outer   join   b   on   a.k   =b.k    ----------上面两种一样left   join是left   outer   join的简写    select   a.*,b.*   from   a   l…