`

关于SQL语句的多表连接查询

阅读更多
附件为mysql、mssqlserver和oracle的建表脚本

# 多表连接查询

# SQL92 
# 笛卡尔积
select * from student_table s, teacher_table t;
# 等值连接 =
select * from student_table s, teacher_table t where s.java_teacher = t.teacher_id;
# 非等值连接 > < 
select * from student_table s, teacher_table t where s.java_teacher > t.teacher_id;
select * from student_table s, teacher_table t where s.java_teacher < t.teacher_id;
# 多条件连接
select * from student_table s, teacher_table t where s.java_teacher = t.teacher_id and s.student_id > 1 and t.teacher_id < 2;
# 外连接
# (MySql和MSSQLServer不支持,使用Oracle测试)左外连接(显示满足连接条件的行,并把右边表不满足条件的行与左边表虚构的所有值为null的行连接起来)
select * from student_table s, teacher_table t where s.java_teacher(+) = t.teacher_id;
# (MySql和MSSQLServer不支持,使用Oracle测试)右外连接(显示满足连接条件的行,并把左边表不满足条件的行与右边表虚构的所有值为null的行连接起来)
select * from student_table s, teacher_table t where s.java_teacher = t.teacher_id(+);

# SQL99
# 交叉连接(SQL92中的笛卡尔积) cross join
select * from student_table s cross join teacher_table t;
# (MSSQLServer不支持,MySql和Oracle支持)自然连接(同名列连接) natural join , 若无同名列则为交叉连接
select * from student_table s natural join teacher_table t;
# (MSSQLServer不支持,MySql和Oracle支持)使用using子句进行指定多个同名列连接(若没有同名属性则报错)
select * from student_table s join teacher_table t using (teacher_name);
# 使用join...on子句进行等值连接 =
select * from student_table s join teacher_table t on s.java_teacher = t.teacher_id;
# 使用join...on子句进行非等值连接 > <
select * from student_table s join teacher_table t on s.java_teacher > t.teacher_id;
select * from student_table s join teacher_table t on s.java_teacher < t.teacher_id;
# 使用join...on子句进行多条件连接
select * from student_table s join teacher_table t on s.java_teacher = t.teacher_id and s.student_id > 1 and t.teacher_id < 2;
# 左外连接 left joinj...on 与SQL92标准相反(显示满足连接条件的行,并把左边表不满足条件的行与右边表虚构的所有值为null的行连接起来)
select * from student_table s left join teacher_table t on s.java_teacher = t.teacher_id;
# 右外连接 right join...on 与SQL92标准相反(显示满足连接条件的行,并把右边表不满足条件的行与左边表虚构的所有值为null的行连接起来)
select * from student_table s right join teacher_table t on s.java_teacher = t.teacher_id;
# (MySql不支持,MSSQLServer和Oracle支持)全外连接 full join...on (显示满足连接条件的行,并把左边表不满足条件的行与右边表虚构的所有值为null的行连接起来,同时把右边表不满足条件的行与左边表虚构的所有值为null的行连接起来)
select * from student_table s full join teacher_table t on s.java_teacher = t.teacher_id;
0
1
分享到:
评论

相关推荐

    sql语句学习 多表连接查询

    自己学习的笔记--查询计算机系CS男学生学号、姓名和考试成绩 SELECT A.Sno,A.Sname,B.degree FROM student A,sc B WHERE A.Sdept = 'CS' AND A.Ssex = '男' AND A.Sno = B.sno SELECT A.Sno,A.Sname,B.degree FROM ...

    Oracle sql语句多表关联查询

    Oracle SQL 语句多表关联查询是数据库管理系统中的一种常见查询方式,通过了解字符串和数字的比较、分组查询、HAVING 子句、查询顺序、Oracle 中的伪列、子查询和表连接等知识点,可以帮助我们更好地编写 SQL 语句,...

    java执行SQL语句实现查询的通用方法详解

    JDBCTools工具类是Java执行SQL语句实现查询的通用方法的辅助工具类,该类提供了获取数据库连接的方法getConnection()。在getConnection()方法中,使用Properties对象来存储数据库连接的配置信息,然后使用...

    数据库连接,sql语句执行,表查询

    在IT行业中,数据库连接、SQL语句执行以及表查询是至关重要的操作,尤其在软件开发和数据分析领域。这里我们将深入探讨这些概念,并结合"插件开发"、"sql"、"rcp"(Rich Client Platform)和"表查询"、"数据库连接...

    Python使用sql语句对mysql数据库多条件模糊查询.pdf

    Python 使用 SQL 语句对 MySQL 数据库多条件模糊查询 Python 是一种广泛使用的编程语言,而 MySQL 是一种常用的关系型数据库管理系统。在实际应用中,我们经常需要使用 Python 连接 MySQL 数据库,并执行多条件...

    oracle利用批处理文件执行SQL语句,bat连接oracle数据库并执行语句

    批处理文件(如.bat文件)在Windows环境中是一种高效的方式,可以自动化执行一系列命令,包括连接数据库和执行SQL语句。在这个场景中,我们可以利用批处理文件来简化Oracle数据库的操作,如删除用户、创建用户、创建...

    Oracle Sql语句转换成Mysql Sql语句

    本项目提供了一个Java源码工具,能够帮助用户便捷地将Oracle SQL语句转换为MySQL SQL语句。 Oracle SQL与MySQL SQL的主要差异在于以下几个方面: 1. **数据类型**:Oracle支持的数据类型如NUMBER、LONG、RAW等在...

    SQL语句多表查询

    一、外连接 1、左连接 left join 或 left outer join 2、右连接 right join 或 right outer join 3、完全外连接 full join 或 full outer join ...四、两表关系为一对多,多对一或多对多时的连接语句

    sql 查询 语句 常用sql语句(有表结构)

    从给定的文件信息中,我们可以提取到一系列与SQL查询语句相关的知识点,涉及表结构、数据查询、分组统计、连接操作等多个方面。以下是对这些知识点的详细解析: ### 表结构 - **books**: 包含字段`book_id`, `book...

    在VS2005用SQL语句连接数据库并创建表

    在Visual Studio 2005 (VS2005) 中使用SQL语句连接数据库并创建表是一项基础但至关重要的任务,特别是在开发基于数据库的应用程序时。本篇将详细讲解如何实现这一过程,并重点关注SQL SERVER 2005环境下创建表的步骤...

    SQL语句高级查询

    本次实验主要聚焦于SQL语句的高级查询技术,旨在深化学生对SQL查询的理解,并熟练掌握SQL Server 2000查询分析器的使用,以及如何运用SELECT语句进行多表查询。实验设定在Windows XP Professional操作系统环境下,...

    VBA+ADO 连接Excel表格查询操作数据(SQL语句操作)

    VBA+ADO 连接Excel表格查询操作数据(SQL语句操作) SQL语句操作表格

    获取SQL语句多个查询结果表 编程小实例,

    本实例将探讨如何在C++.NET环境中,通过编程方式获取SQL语句执行后返回的多个查询结果表。这个话题对于任何需要与数据库进行交互的应用程序开发人员来说都至关重要。 首先,我们需要了解SQL语句的特性。在SQL中,一...

    SQLServer中复杂sql语句查询

    综上所述,掌握SQL Server中的复杂SQL语句查询涉及理解多表查询、索引设计、触发器的应用和存储过程的编写,以及查询优化技巧。只有深入理解并灵活运用这些知识,才能在实际工作中有效地管理和优化数据库查询,提高...

    SQL 执行超长语句

    3. **报表生成**:生成复杂的报表时,往往需要从多个表中抽取数据并进行复杂的联接操作,从而构建出超长SQL语句。 4. **历史数据分析**:在分析历史数据时,为了确保数据准确性,可能会涉及到大量的JOIN操作以及复杂...

    sql语句命令-sql语句命令sql语句命令

    在开发数据库应用程序时,SQL语句是至关重要的工具,用于查询、插入、更新和删除数据库中的数据。本文将深入探讨SQL语句命令及其在数据库操作中的应用,特别是使用ADO.NET框架进行数据库交互。 首先,我们需要了解...

    SQL 语句大全 SQL 语句大全

    - **创建视图**:CREATE VIEW语句创建虚拟表,基于一个或多个表的查询结果。 - **使用视图**:查询和更新通过视图访问的数据,简化复杂查询并保护底层数据。 7. **索引** - **创建索引**:提高查询性能,如...

    实验2 数据定义与查询 SQL语句

    1、掌握使用SQL语句创建和删除数据表,创建各种完整性约束。 2、掌握使用SQL语句修改表的结构。 3、掌握查询语句的使用方法,重点掌握连接查询和嵌套查询。 1.创建名为“Project”的数据库 2.在Project数据库下...

    oracle监听执行sql语句

    通常情况下,SQL语句会被分割成多个片段,该查询可以帮助我们查看这些片段的详细内容。注释中的`machine`过滤器可以根据实际需求进行调整。 2. **查找最耗时的SQL语句** ```sql SELECT * FROM ( SELECT ...

Global site tag (gtag.js) - Google Analytics