当前位置:  数据库>sqlserver

SQL连接查询介绍

    来源: 互联网  发布时间:2014-09-05

    本文导语:  连接可以在Select 语句的FROM子句或Where子句中建立,似是而非在FROM子句中指出连接时有助于将连接操作与Where子句中的搜索条件区分开来。所以,在Transact-SQL中推荐使用这种方法。   SQL-92标准所定义的FROM子句的连接语法格...

连接可以在Select 语句的FROM子句或Where子句中建立,似是而非在FROM子句中指出连接时有助于将连接操作与Where子句中的搜索条件区分开来。所以,在Transact-SQL中推荐使用这种方法。

  SQL-92标准所定义的FROM子句的连接语法格式为:

  FROM join_table join_type join_table
  [ON (join_condition)] 

  其中join_table指出参与连接操作的表名,连接可以对同一个表操作,也可以对多表操作,对同一个表操作的连接又称做自连接。

  join_type 指出连接类型,可分为三种:内连接、外连接和交叉连接。内连接(INNER JOIN)使用比较运算符进行表间某(些)列数据的比较操作,并列出这些表中与连接条件相匹配的数据行。根据所使用的比较方式不同,内连接又分为等值连接、自然连接和不等连接三种。外连接分为左外连接(LEFT OUTER JOIN或LEFT JOIN)、右外连接(RIGHT OUTER JOIN或RIGHT JOIN)和全外连接(FULL OUTER JOIN或FULL JOIN)三种。与内连接不同的是,外连接不只列出与连接条件相匹配的行,而是列出左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的数据行。 

  交叉连接(CROSS JOIN)没有Where 子句,它返回连接表中所有数据行的笛卡尔积,其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。

  连接操作中的ON (join_condition) 子句指出连接条件,它由被连接表中的列和比较运算符、逻辑运算符等构成。

  无论哪种连接都不能对text、ntext和image数据类型列进行直接连接,但可以对这三种列进行间接连接。例如:

  Select p1.pub_id,p2.pub_id,p1.pr_info
  FROM pub_info AS p1 INNER JOIN pub_info AS p2
  ON DATALENGTH(p1.pr_info)=DATALENGTH(p2.pr_info) 

  (一)内连接

  内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。内连接分三种:

  1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。

  2、不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括>、>=、

    
 
 

您可能感兴趣的文章:

  • 如何实现连接一次数据库,提交多个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.
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • SQL语句执行顺序图文介绍
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • SQL的SUBSTR()函数使用介绍
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • SQL Server 2000 JDBC驱动程序介绍,很值得一看!!!
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量) iis7站长之家
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • sql 添加删除修改字段的方法介绍
  • java命名空间java.sql接口databasemetadata的类成员方法: getsqlkeywords定义及介绍
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • mysql的SQL_NO_CACHE(在查询时不使用缓存)和sql_cache用法
  • sql中count或sum为条件的查询示例(sql查询count)
  • mysql中查询当前正在运行的SQL语句并找出mysql中运行慢的sql语句
  • SQL查询分析工具 SQL Workbench/J
  • mysqli多查询特性 实现多条sql语句查询
  • sql server简单查询的例子(sql入门)
  • 根据时间范围条件查询数据sql语句
  • 在SQL Server中使用SQL语句查询一个存储过程被其它所有的存储过程引用的存储过程名
  • shell中关于sql查询结果的判断?
  • SQL查询工具 SuperQuaiL
  • HBase上使用SQL查询 Phoniex
  • sql 查询所有数据库、表名、表字段的代码
  • 查询SQL Server中所有数据库的数据文件位置的sql脚本
  • 在SQL Server中查询资料库的TABLE数量与名称的sql语句
  • 在线等待!一个简单的SQL查询问题?
  • SQL SERVER 查询正在实行的SQL语句
  • SQLServer中用T—SQL命令查询一个数据库中有哪些表的sql语句
  • SQL查询问题
  • SQL日期查询与比较方法
  • SQL Server日志过大会影响查询结果
  • 将string数组转化为sql的in条件用sql查询
  • java命名空间java.sql接口sqlinput的类成员方法: readref定义及介绍
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • java命名空间java.sql接口sqlinput的类成员方法: readblob定义及介绍
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • java命名空间java.sql接口sqlinput的类成员方法: readarray定义及介绍
  • SQL Server统计SQL语句执行时间的脚本
  • java命名空间java.sql接口sqlinput的类成员方法: readsqlxml定义及介绍
  • SQL客户端软件 PKLite SQL Client
  • java命名空间java.sql接口sqlinput的类成员方法: readrowid定义及介绍
  • SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)


  • 站内导航:


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

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

    浙ICP备11055608号-3