当前位置:  数据库>sqlserver

SQL语言查询基础:连接查询 联合查询 代码

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

    本文导语:  SQL语言查询基础:连接查询  通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。  在关系数据库管理系统中,表建立时各数据之间的关系不必确定,...

SQL语言查询基础:连接查询 
通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。 
在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带来很大的灵活性,他们可以在任何时候增加新的数据类型。为不同实体创建新的表,尔后通过连接进行查询。 
连接可以在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、不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括>、>=、

    
 
 

您可能感兴趣的文章:

  • 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查询问题?
  • 移动开发 iis7站长之家
  • SQLServer中用T—SQL命令查询一个数据库中有哪些表的sql语句
  • SQL查询问题
  • SQL日期查询与比较方法
  • SQL Server日志过大会影响查询结果
  • 将string数组转化为sql的in条件用sql查询
  • 如何实现连接一次数据库,提交多个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如何配置环境?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • EJB2.0提供了许多新特性,包括EJB SQL语言,谁有EJB SQL语言的帮助文档,100分求助!
  • 求助:linux脚本语言写SQL语句
  • 请问Linux数据库编程是否也可以支持通用的SQL语言进行数据库编写.
  • 请问,怎样用C语言连接SQL2000数据库?
  • 关于sql查询语言的一个问题!
  • ·····进门就送分!····· 如何运行一个包含多国语言的SQL语句
  • LINUX下如何用C语言访问WINDOWS下的SQL..急啊
  • 谁能告诉我sql语言中的update怎么用呀?
  • sql语言中delete删除命令语句详解
  • JSP中如何动态生成SQL语言?
  • 关于使用DB-Library用C语言连接SQL Server数据库的问题
  • jdbc-odbc的SQL语言使用的疑问
  • 有关Sql语言中的日期格式化
  • Oracle PL/SQL语言入门基础
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • SQL Server统计SQL语句执行时间的脚本
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • SQL客户端软件 PKLite SQL Client
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)
  • java命名空间java.sql接口databasemetadata的类成员方法: getsqlkeywords定义及介绍
  • SQL客户端管理工具 SQuirreL SQL Client
  • java命名空间java.sql接口rowid的类成员方法: tostring定义及介绍
  • 如何处理此错误:java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]没有执行可选特性
  • java命名空间javax.sql.rowset接口joinrowset的类成员方法: getwhereclause定义及介绍
  • sql2005 大数据量检索分页的sql代码
  • java命名空间java.sql接口statement的类成员方法: execute定义及介绍


  • 站内导航:


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

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

    浙ICP备11055608号-3