数据库连接整理
2014-08-26 16:41
134 查看
连接可以分为内连接、外连接、交叉连接、自连接。
2) 功能说明:交叉连接返回结果包含了所连接两表的记录两两组合。其返回结果所包含记录数为两表满足条件记录行数的乘积。CROSS JOIN后限制条件只能用WHERE
不能用ON。
3) 底层实现和性能:CROSS JOIN首先生产两张表的笛卡尔乘积表,如果包含WHERE则根据限制条件从笛卡尔乘积表(临时表)筛选出结果,如果不包含WHERE则直接返回笛卡尔乘积表。因为CROSS
JOIN要生产笛卡尔乘积,所以查询速度比较慢,而且没有实际意义,所以很多时候,使用外连接和内连接来代替。
2) 功能说明:LEFT JOIN/RIGHT JOIN、FULL JOIN属于外连接,在很多数据库,也可以写作LEFT OUTER
JOIN/RIGHT OUTER JOIN、FULL OUTER JOIN,LEFT JOIN(RIGHT JOIN)返回结果不管左(右)表记录是否满足条件,都会对左(右)表记录返回,左(右)连接包含了两表所有满足条件的记录以及左(右)表中不满足条件的记录,右(左)表中没有对应的记录则显示NULL。FULL
JOIN返回结果,将包含两表所有满足条件的记录,同时包含两表中不满足条件的记录,相应的空缺显示为NULL。
3) 底层实现:左连接/右连接根据左表/右表生产临时表。
2) 功能说明:如果两表中的字段名和数据类型都相同,那么NATURAL JOIN自动连接两表。如果字段名相同而类型不相同,则返回错误。
2) 功能说明:一般数据库,默认的连接就是内连接inner join,只返回两表同时满足条件的记录。
3) 底层实现和性能:inner join和on联合起来使用,生产的只是满足条件的临时表,因此innner join的性能是比较高的。
2) 功能说明:SELF JOIN通过一张表自己和自己连接,得到比较特殊的功能,事实上,自连接是对其他连接的使用,只不过使用对象只有一张表。可以用别名来实现同一张表的连接。
例子未完善,待完善……
1. Cross join
1) 支持的数据库:ORACLE、MYSQL、SQLServer、DB2。2) 功能说明:交叉连接返回结果包含了所连接两表的记录两两组合。其返回结果所包含记录数为两表满足条件记录行数的乘积。CROSS JOIN后限制条件只能用WHERE
不能用ON。
3) 底层实现和性能:CROSS JOIN首先生产两张表的笛卡尔乘积表,如果包含WHERE则根据限制条件从笛卡尔乘积表(临时表)筛选出结果,如果不包含WHERE则直接返回笛卡尔乘积表。因为CROSS
JOIN要生产笛卡尔乘积,所以查询速度比较慢,而且没有实际意义,所以很多时候,使用外连接和内连接来代替。
2. LEFT JOIN/RIGHT JOIN、FULL JOIN
1) 支持的数据库:ORACLE、MYSQL、SQLServer、DB2。2) 功能说明:LEFT JOIN/RIGHT JOIN、FULL JOIN属于外连接,在很多数据库,也可以写作LEFT OUTER
JOIN/RIGHT OUTER JOIN、FULL OUTER JOIN,LEFT JOIN(RIGHT JOIN)返回结果不管左(右)表记录是否满足条件,都会对左(右)表记录返回,左(右)连接包含了两表所有满足条件的记录以及左(右)表中不满足条件的记录,右(左)表中没有对应的记录则显示NULL。FULL
JOIN返回结果,将包含两表所有满足条件的记录,同时包含两表中不满足条件的记录,相应的空缺显示为NULL。
3) 底层实现:左连接/右连接根据左表/右表生产临时表。
3. NATURAL JOIN
1) 支持的数据库:ORACLE。2) 功能说明:如果两表中的字段名和数据类型都相同,那么NATURAL JOIN自动连接两表。如果字段名相同而类型不相同,则返回错误。
4. INNER JOIN
1) 支持的数据库:ORACLE、MYSQL、SQLServer、DB2。2) 功能说明:一般数据库,默认的连接就是内连接inner join,只返回两表同时满足条件的记录。
3) 底层实现和性能:inner join和on联合起来使用,生产的只是满足条件的临时表,因此innner join的性能是比较高的。
5. 自连接
1) 支持的数据库:ORACLE、MYSQL、SQLServer、DB2。2) 功能说明:SELF JOIN通过一张表自己和自己连接,得到比较特殊的功能,事实上,自连接是对其他连接的使用,只不过使用对象只有一张表。可以用别名来实现同一张表的连接。
例子未完善,待完善……
相关文章推荐
- 数据库连接字符串整理
- 连接数据库的整理点滴
- Informix数据库连接使用方法整理
- Java 连接数据库(MSSQL,MySQL,Oracle)整理
- ORACLE如何使用DBLINK连接另一个数据库[整理]
- 正好整理了一下,自己做了个连接数据库的组件,支持SQLSERVER,ACCESS,ORACLE,FoxPro,MySql,IBM DB2,DBF等数据库,并且支持事务处理
- Hibernate 数据库连接配置整理
- 各种数据库连接说明【同学_彪哥整理】
- Informix数据库连接使用方法整理
- ORACLE如何使用DBLINK连接另一个数据库[整理]
- ASP与数据库连接、写入、修改、删除、显示的代码整理
- 连接数据库的整理点滴
- 数据库连接字符串大全整理
- 【数据库连接】Sqlcommand与SqlDataAdapter用法摘录(待整理)
- 整理一下之前工作中记录过的一些东西——数据库连接
- 常用数据库JDBC连接写法(整理)
- 常用数据库JDBC连接写法(整理)
- 整理關於DBlink使用 数据库间连接方法
- 数据库连接整理
- Oracle数据库案例整理-删除和停止Oracle数据库失败-数据库用户session连接到数据库导致无法删除此用户