第三章 联接查询 T-SQL语言基础

联接查询

sql server 2008支持四种表运算符----JOIN,APPLY,PIVOT,UNPIVOT.

JOIN表运算符是ANSI标准,而APPLY,PIVOT,UNPIVOT是T-SQL对标准的扩展

JOIN表运算符,联接有三种基本类型:交叉联接,内联接和外联接.

交叉联接只有一个步骤:笛卡尔积;内联接有两个步骤:笛卡尔积和过滤;外联接有三个步骤:笛卡尔积,过滤,添加外部行.

(逻辑查询处理和物理查询处理的不同!)

3.1 交叉联接 (cross join)

最简单的联接,只实现了一个逻辑查询步骤(笛卡尔积)

3.1.1 ANSI SQL-92

一般标准都是用 ANSI-SQL 92的

-- ANSI SQL-92
USE TSQLFundamentals2008;

SELECT C.custid, E.empid
FROM Sales.Customers AS C
  CROSS JOIN HR.Employees AS E;

3.1.2 ANSI SQL-89

-- ANSI SQL-89
SELECT C.custid, E.empid
FROM Sales.Customers AS C, HR.Employees AS E;

3.1.3 自交叉联接

对同一个表的多个实例也可以进行联接,这种功能就是所谓的自联接,所有基本联接类型(交叉联接,内联接,以及外联接)都是支持自联接.

-- Self Cross-Join
SELECT
  E1.empid, E1.firstname, E1.lastname,
  E2.empid, E2.firstname, E2.lastname
FROM HR.Employees AS E1
  CROSS JOIN HR.Employees AS E2;
GO
--在自联接中,必须为表起别名.如果不为表指定别名,联接结果中的列名就会有歧义.
--自联接的笛卡尔积,与不是自联接的笛卡尔积不同!

111

时间: 2024-10-05 04:40:54

第三章 联接查询 T-SQL语言基础的相关文章

Java Persistence with MyBatis 3(中文版) 第三章 使用XML配置SQL映射器

关系型数据库和SQL是经受时间考验和验证的数据存储机制.和其他的ORM 框架如Hibernate不同,MyBatis鼓励开发者可以直接使用数据库,而不是将其对开发者隐藏,因为这样可以充分发挥数据库服务器所提供的SQL语句的巨大威力.与此同时,MyBaits消除了书写大量冗余代码的痛苦,它使使用SQL更容易. 在代码里直接嵌套SQL语句是很差的编码实践,并且维护起来困难.MyBaits使用了映射器配置文件或注解来配置SQL语句.在本章中,我们会看到具体怎样使用映射器配置文件来配置映射SQL语句.

SQL语言基础和数据库操作

Sql语言基础: 核心思想:我们自己构造一段查询的代码,然后添加到语句后,从而得到想要的某些数据. Mysql是一种开源数据库 APP Serv:Apache+php+mysql,相当于phpstudy(建议装在本机上,不建议装在虚拟机) 安装(主要):4个主件都要安装,本地网址需要自己命名,例如:www.test.com 然后设置Mysql密码,选择允许通过防火墙. 默认启动Apache和mysql Mysql操作: 打开mysql.exe和mysqld.exe所在的文件夹,复制路径地址; 登

Oracle SQL语言基础及环境准备_超越OCP精通Oracle视频教程培训26

Oracle SQL语言基础及环境准备_超越OCP精通Oracle视频教程培训26 本课程介绍: Oracle视频教程,风哥本套oracle教程培训是<<Oracle数据库SQL语言实战培训教程>>的第1/5套:SQL语言之基础入门及环境准备.主要学习Oracle数据库SQL语言基础介绍.PL/SQL语言介绍.数据库SQL对象与数据类型介绍.SQL语言实战环境准备等. Oracle SQL语言之基础及环境准备,课程内容详细如下: Oracle数据库SQL语言基础介绍Oracle数据

orcale 之 SQL 语言基础

SQL 全称是结构化查询语句(Structure Query Language),是数据库操作的国际化语言,对所有的数据库产品都要支持. SQL 语言的分类 我们按照其功能可以大致分为四类: 数据定义的功能 SQL 的数据定义功能通过数据定义语言(Data Definition Langulage, DDL)实现.一般可以定义数据库的逻辑结构,包括定义表,视图,索引.基本的 DDL 包括三大类:定义,修改和删除,分别对应 CREATE,ALTER 和 DROP 三条语句. 数据查询的功能 SQL

初识MySQL之——SQL语言基础

写在前面 在对数据库的日常管理和应用中,不论管理员合适要访问一个数据库,几乎都要使用到SQL语言,因此,熟练掌握SQL语言以及其脚本程序的编写是非常重要的.SQL(结构化查询语言)是目前最流行的关系型数据库查询语言,也是数据库的标准语言. 数据库语言分类 数据语言按照不同的功用可以分为四大类:数据库定义语言(DDL).数据库操作语言(DML).数据库控制语言(DCL).数据库查询语言(DSL). DDL:数据库定义语言由一组SQL命令组成,用于创建和定义数据库对象.比如可以创建数据库,创建表,修

浅谈PL/SQL语言基础

在前面的学习中,我们大部分接触的都是SQL语言,但是,在实现复杂操作的时候,SQL语言就无能为力了,这时候就需要引入新的语言,PL/SQL语言就是对SQL语言的扩展,可以实现存储过程,函数等的创建.下面是我对PL/SQL语言的总结,和大家分享一下. 一.基本结构 1.PL/SQL是一种块结构的语言,它将一组语句放在一个块中,一次性发送给服务器,当PL/SQL引擎分析收到PL/SQL语句块中的内容,把其中的过程语句由PL/SQL引擎自身去执行,把PL/SQL语句块中的SQL语句交给服务器的SQL语

【SQL语言】SQL语言基础01

1.了解sql 1.1数据库基础 1.1.1数据库(database) :保存有组织的数据的容器(通常是一个文件或一组文件)(也可理解为某种有组织的方式存储的集合) 注:数据库软件称为DBMS(数据库管理系统) 1.1.2表(table) :某种特定类型数据的结构清单(同一个类型且名字唯一) 特性: 定义了数据在表中如何存储,包含存储什么样的数据,和数据如何分解命名等~ 表名:使表名成为唯一的,实际上是数据库名和表名等的组合. 模式:关于数据库和表的布局等特性信息. 1.1.3列(column)

3 SQL语言基础-1

一.SQL (Structured Query Language)结构化查询语言 SQL是一个ANSI标准计算机语言,设计用来访问,操作数据库系统. 几乎所有现今的关系型数据库软件(mysql,Oracle.MS SQL Server.MS Access.DB2.Sybase.informix等等)都使用SQL进行查询,管理及常用操作. 包括一些非关系型数据库也使用SQL. SQL版本: 存在很多不同版本的SQL语言,但是为了与ANSI标准相兼容,它们必须以相似的方式共同地来支持一些的关键词(比

SQL语言基础-基本概念

SQL:IBM的圣约瑟(SanJose),SEQUEL 2(也就是现在的SQL语言) 1979.Oracle首先提出提供了商用的SQL语言 1986.10美国ANSI采用SQL作为关系数据库管理系统的标准语言(ANSI X3.135-1986),后来被ISO采纳为国际标准 目前大部分数据库都遵守ANSI SQL 89标准(99-最高) SQL语言分类: DQL(数据查询语言):SELECT DML(数据操作语言):INSERT UPDATE DELETE TCL(事务控制语言):COMMIT R