java MySQL数据库编程 第四章 高级查询(二)

第四章 高级查询(二)

(1)通过在子查询中使用EXISTS子句,可以对子查询中的行是否存在进行检查。子查询可以出现在表达式出现的如何位置

(2)子查询语句可以嵌套在SQL语句中任何表达式出现的位置。

一、EXISTS子查询

1.使用EXISTS语句判断该数据库对象是否存在:

DROP TABLE IF EXISTS temp;

2. EXISTS作为WHERE语句的子查询:

SELECT .....FROM 表名 WHERE EXISTS(子查询);

3. EXISTS关键字后面的参数是一个任意的子查询,如果该子查询有返回行。则EXISTS子查询的结果为true,此时再执行外层查询语句。如果子查询有没返回行。则EXISTS子查询的结果为false,此时不再执行外层查询语句。

二、NOT EXISTS子查询

EXISTS和IN一样,同样允许添加NOT关键字实现取返操作,NOT EXISTS表示不存在。

三、子查询注意事项

1)子查询可以嵌套在SQL语句中任何表达式出现的位置

在SELECTE语句中,子查询可以被嵌套在SELECT语句的列、表和查询条件中,即SELECT子句、FROM子句、WHERE子句、GROUP BY子句和HAVING子句。

2)只出现在子查询中而没有出现在父查询中的的表不能包含在输出列中

多层嵌套子查询的最终数据集只包含父查询的SELECT子句中出现的字段,而子查询的输出结果通常会作为其外层子查询数据源或用于数据判断匹配

时间: 2024-10-26 15:51:06

java MySQL数据库编程 第四章 高级查询(二)的相关文章

使用Java实现数据库编程—02 第二章 初始MySQL

1. MySQL:        ●  MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.            MySQL最流行的关系型数据库管理系统,在Web应用方面MySQL是最好的RDBMS(Relational Database Management System,关系数据库管理系统)应用软件之一.            MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度

使用Java实现面向对象编程——第四章 异常

1. 接口:接口就是给出一些没有内容的方法,封装到一起,到某个类要使用的时候,在根据具体情况把这些方法写出来. 接口是更加抽象的抽象的类, 抽象类里的方法可以有方法体, 接口里的所有方法都没有方法体. 接口体现了程序设计的多态和高内聚低偶合的设计思想. 接口是一种规范和标准,他们可以约束类的行为,是一些方法特征的集合,但是没有方法的实现. 接口可以看作一种特殊的"抽象类",但是采用与抽象类按群不同的语法来表示: 抽象类有利于代码的重用,接口有利于代码的扩展和维护: 接口的特性: 接口不

使用Java实现数据库编程—01 第一章 数据库的设计

 1.        数据库设计:将数据库中的数据实体及这些数据实体之间的关系进行规划和结构化的过程: 良好的数据库设计: 节省数据的存储空间 能够保证数据的完整性 方便进行数据库应用系统的开发 糟糕的数据库设计: 数据冗余.存储空间浪费 内存空间浪费 数据更新和插入的异常  2.        数据库设计的步骤: 1.  需求分析阶段:分析客户的业务和数据处理需求 2.概要设计阶段:设计数据库的E-R模型图,确认需求信息的正确和完整 3. 详细设计阶段:将E-R图转换为多张表,进行逻辑设计,确

第四章 高级查询

EXLSTS 子查询 OROP TABLE IF EXISTS temp; 注意   [必须指定表名.一般返回多行多列数据记录, 可以当做一张零时表] 多层嵌套子查询的最终数据集只包含父查询[即最外层的查询] 的SELECT子句中出现的字段, 而子查询的输出结果通常会作为其外层子查询数据源或用于数据判断匹配. 通过在子查询中使用 EXISTS子句,可以对子查询中的行是否存在进行检查.子查询可以出现在表达式出现的任何位置. 子查询语句可以嵌套在SQL 语句中任何表达式出现的位置.

MySQL数据库基础(四)——MySQL数据库创建实例

MySQL数据库基础(四)--MySQL数据库创建实例 一.创建数据库 1.创建数据库 创建数据库,指定数据库的默认字符集为utf8.create database schoolDB default character set utf8;连接数据库,客户端必须选择UTF8字符集.数据库中的三张表分别为学生表(student).课程表(TSubject).分数表(TScore). 2.创建学生表 CREATE TABLE `TStudent` ( `StudentID` varchar(15) N

MySQL数据库优化、设计与高级应用

MySQL数据库优化主要涉及两个方面,一方面是对SQL语句优化,另一方面是对数据库服务器和数据库配置的优化. 数据库优化 SQL语句优化 为了更好的看到SQL语句执行效率的差异,建议创建几个结构复杂的数据表,多导入一些数据进行测试,看到的效果比较直观. 尽量避免在列上进行运算,这样会导致索引失效. 优化前SELECT * FROM t WHERE YEAR(d)>=2011; 优化后SELECT * FROM t WHERE d>='2011-01-01'; 使用JOIN时,应该用小结果集驱动

使用C语言调用mysql数据库编程实战以及技巧

今天编写使用C语言调用mysql数据库编程实战以及技巧.为其它IT同行作为參考,当然有错误能够留言,共同学习. 一.mysql数据库的C语言经常使用接口API 1.首先当然是链接数据库mysql_real_connect,原型例如以下: MYSQL * STDCALL mysql_real_connect( MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned

MySQL数据库中的四种隔离级别

原文:MySQL数据库中的四种隔离级别 事务的隔离性比想象的要复杂,在 SQL 标准中定义了四种级别的隔离级别.通常而言,较低级别的隔离通常可以执行更高的并发,系统的开销也更低 READ UNCOMMITTED 该级别为未提交读.在该级别中,事务中的修改即使没有提交,对其他事务也都是可见的.事务可以读取未提交的数据,这也被称为脏读.这个级别会导致很多的问题,从性能上来说,它不会比其他级别好太多,但缺乏其他级别的很多好处.除非真的有非常必要的理由,在实际应用中一般很少使用. READ COMMIT

MySQL数据库 高级查询(二)

高级查询(二)  EXISTS 子查询 语法: SELECT ..... FROM  表名 WHERE EXISTS (子查询); EXISTS 关键字后面的参数是一个任意的子查询,如果该子查询有返回值,则EXISTS 子查询的结果为true,此时再执行外层查询语句.如果没有返回行,则EXISTS 子查询 的结果为false,此时外层语句不再执行查询.  NOT EXISTS 子查询 EXISTS 子查询和NOT EXISTS 子查询的结果只取决于是否有返回记录,不取决于这些记录的内容,所以EX