当前位置:  数据库>sqlserver

SQL语句的并集UNION 交集JOIN(内连接,外连接)等介绍

    来源: 互联网  发布时间:2014-10-14

    本文导语:  1. a. 并集UNION SELECT column1, column2 FROM table1 UNION SELECT column1, column2 FROM table2 b. 交集JOIN SELECT * FROM table1 AS a JOIN table2 b ON a.name=b.name c. 差集NOT IN SELECT * FROM table1 WHERE name NOT IN(SELECT name FROM table2) d. 笛卡尔积 SELECT * FROM table1 CROSS J...

1. a. 并集UNION SELECT column1, column2 FROM table1 UNION SELECT column1, column2 FROM table2 b. 交集JOIN SELECT * FROM table1 AS a JOIN table2 b ON a.name=b.name c. 差集NOT IN SELECT * FROM table1 WHERE name NOT IN(SELECT name FROM table2) d. 笛卡尔积 SELECT * FROM table1 CROSS JOIN table2 与 SELECT * FROM table1,table2相同 2. SQL中的UNION 与UNION ALL的区别是,前者会去除重复的条目,后者会仍旧保留。 a. UNION SQL Statement1 UNION SQL Statement2 b. UNION ALL SQL Statement1 UNION ALL SQL Statement2 3. SQL中的各种JOIN SQL中的连接可以分为内连接,外连接,以及交叉连接(即是笛卡尔积) a. 交叉连接CROSS JOIN 如果不带WHERE条件子句,它将会返回被连接的两个表的笛卡尔积,返回结果的行数等于两个表行数的乘积; 举例 SELECT * FROM table1 CROSS JOIN table2 等同于 SELECT * FROM table1,table2 一般不建议使用该方法,因为如果有WHERE子句的话,往往会先生成两个表行数乘积的行的数据表然后才根据WHERE条件从中选择。 因此,如果两个需要求交际的表太大,将会非常非常慢,不建议使用。 b. 内连接INNER JOIN 如果仅仅使用 SELECT * FROM table1 INNER JOIN table2 没有指定连接条件的话,和交叉连接的结果一样。 但是通常情况下,使用INNER JOIN需要指定连接条件。 -- 等值连接(=号应用于连接条件, 不会去除重复的列) SELECT * FROM table1 AS a INNER JOIN table2 AS b on a.column=b.column -- 不等连接(>,>=,,!) 例如 SELECT * FROM table1 AS a INNER JOIN table2 AS b on a.columnb.column -- 自然连接(会去除重复的列) c. 外连接OUTER JOIN 首先内连接和外连接的不同之处: 内连接如果没有指定连接条件的话,和笛卡尔积的交叉连接结果一样,但是不同于笛卡尔积的地方是,没有笛卡尔积那么复杂要先生成行数乘积的数据表,内连接的效率要高于笛卡尔积的交叉连接。 指定条件的内连接,仅仅返回符合连接条件的条目。外连接则不同,返回的结果不仅包含符合连接条件的行,而且包括左表(左外连接时), 右表(右连接时)或者两边连接(全外连接时)的所有数据行。 1)左外连接LEFT [OUTER] JOIN 显示符合条件的数据行,同时显示左边数据表不符合条件的数据行,右边没有对应的条目显示NULL 例如 SELECT * FROM table1 AS a LEFT [OUTER] JOIN ON a.column=b.column 2)右外连接RIGHT [OUTER] JOIN 显示符合条件的数据行,同时显示右边数据表不符合条件的数据行,左边没有对应的条目显示NULL 例如 SELECT * FROM table1 AS a RIGHT [OUTER] JOIN ON a.column=b.column 3)全外连接显示符合条件的数据行,同时显示左右不符合条件的数据行,相应的左右两边显示NULL

    
 
 

您可能感兴趣的文章:

  • 如何实现连接一次数据库,提交多个sql语句。(sql的批处理)
  • Linux下的C++程序怎么连接WIN2000下的SQL Server 2000?或者如何连接MySQL?
  • jsp 连接sql server 2008 连接不上的解决方法
  • JSP连接MySql/MS SQL Server/Oracle数据库连接方法[整理]
  • [ODBC SQL Server Driver]连接占线导致另一个 hstmt--------100
  • 一个方法中,用Connection con变量连接数据库,执行完sql以后,关闭con,返回resultset,报错“关闭的连接: next”
  • jdbc连接sql server 2000 出现
  • 用sql获取SQL Server中连接的客户端IP地址
  • 大虾帮忙,怎样用JDBC-ODBC连接SQL2000并使用呀?
  • tomcat连接sql server如何配置环境?
  • 解决MSSQL2005远程连接sql2000非默认端口数据库的问题
  • 解决:未与信任SQL Server连接相关联的问题
  • 那位大哥给我发份连接sql2000的jdbc驱动,高分!
  • 怎么在jb6里连接sql2000,我怎么搞不定啊
  • java连接SQL SERVER
  • Oracle中SQL语句连接字符串的符号使用介绍
  • 如何连接sql sever2000
  • [Microsoft][ODBC SQL Server Driver]连接占线导致另一个 hstmt
  • 在使用中,经常出现提示为:java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]连接占线导致另一个 hstmt,是什么意思,怎样解
  • 如何建立一个连接数据库的应用?例如连接access、和sql sever.
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • mysql中查询当前正在运行的SQL语句并找出mysql中运行慢的sql语句
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • Mysql增加主键或者更改表的列为主键的sql语句
  • sql语句实例 取得日志条目的sql语句
  • Mysql下在某一列后即表的某一位置添加新列的sql语句
  • SQL Server统计SQL语句执行时间的脚本
  • sql语句实例 统计页面链接的sql语句
  • 一条SQL语句搞定Sql2000 分页
  • SQL客户端管理工具 SQuirreL SQL Client iis7站长之家
  • SQL Server数据库的修复SQL语句
  • SQL 语句拦截 P6SPY
  • C#使用带like的sql语句时防sql注入的方法
  • t-sql/mssql用命令行导入数据脚本的SQL语句示例
  • 在SQL Server的try...catch语句中获取错误消息代码的的语句
  • sql2005创建远程登录帐户的sql语句分享
  • SQL SERVER 查询正在实行的SQL语句
  • SQL语句中含有乘号报错的处理办法
  • sql无效字符引起的执行sql语句报错的解决方法
  • C#代码验证sql语句是否正确(只验证不执行sql)的方法
  • SQL Server中选出指定范围行的SQL语句代码
  • C#调用SQL语句时乘号的用法
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • SQL查询分析工具 SQL Workbench/J
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • SQL客户端软件 PKLite SQL Client
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • SQL客户端管理工具 SQuirreL SQL Client


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3