`

sql 中 exists 关键字的用法

 
阅读更多

好久没发表博客了,今日偶有闲暇 仔细研究了一遍oracle中exists 的用法,整理了在一起, 记录在itieye,以防后忘。。。。嘎嘎

1. 关于数据首先做好数据的初始化工作

-- Create table
create table CUSTOMERS
(
  CID    NUMBER not null,
  CNAME  VARCHAR2(50) not null
)
alter table CUSTOMERS
  add constraint CUSTOMERS_PK primary key (CID)
  using index
  tablespace USERS


-- Create sequence

create sequence SEQ_CUSTOMERS
minvalue 1
maxvalue 999999
start with 1
increment by 1
cache 20;


select * from customers;

insert into customers values(seq_customers.nextval,'张三');

insert into customers values(seq_customers.nextval,'李四');
insert into customers values(seq_customers.nextval,'王五');

 

--------------------------------------------------------------------------
-- Create table
create table ORDERS
(
  OID   NUMBER not null,
  ONAME VARCHAR2(50) not null,
  CID   NUMBER
)
-- Create/Recreate primary, unique and foreign key constraints
alter table ORDERS
  add constraint ORDERS_PK primary key (OID)
  using index
  tablespace USERS
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );

-- Create sequence
create sequence SEQ_ORDERS
minvalue 1
maxvalue 999999
start with 1
increment by 1
cache 20;

insert into orders values(seq_orders.nextval,'订单1','1');
insert into orders values(seq_orders.nextval,'订单2','2');
insert into orders values(seq_orders.nextval,'订单3','2');

 

2.

/* 查询图书的标题,这些图书是有出版商的,换句话 查询的是 有出版商的图书 的图书标题*/

1.使用exists 关键字

select title from books where exists (select 1 from publishers where pub_id = books.pub_id);

2. 使用in

select * from books where pub_id in (select pub_id from publishers);


----------------------------------------------------------------------

not exists 和exists

/*  查询没有出版过书的 出版商的名称 */
select name from publishers where not exists ( select 1 from books where pub_id = publishers.pub_id)

查询 这些 出版商的名称                          是在图书表中没有对应的记录            这些出版商的id


/*  查询有出版过书的 出版商的名称 */
select name from publishers where exists ( select 1 from books where pub_id = publishers.pub_id)

 

分享到:
评论
1 楼 inter18099 2013-10-04  
      

相关推荐

    sql关键字字典大全

    - **EXISTS**:用于检查子查询是否至少返回一行记录,是SQL中的一个重要逻辑关键字。 - **EXPLAIN**:用于分析和显示查询计划,帮助优化查询性能,虽然在SQL标准中未提及,但在实际应用中非常常见。 #### F系列...

    sql exists和not exists用法

    ### SQL EXISTS 和 NOT EXISTS 的用法详解 在SQL查询中,`EXISTS`与`NOT EXISTS`是非常实用的子查询操作符,它们主要用于检测是否存在满足一定条件的数据行。相较于`IN`、`NOT IN`等操作,`EXISTS`与`NOT EXISTS`...

    sql server2005 exists使用方法

    ### SQL Server 2005 EXISTS 使用方法详解 #### 一、EXISTS 子句概述 在 SQL Server 2005 中,`EXISTS` 是一个非常实用的子句,用于检查子查询是否返回至少一行数据。如果子查询返回至少一行数据,则 `EXISTS` ...

    关系代数中“除法”运算与SQL中带有exists子查询的对比教学.pdf

    在SQL数据库查询语言中,与除法运算相对应的是一种特殊的子查询,即使用exists关键字的子查询。这篇文档探讨了如何通过对比教学法,将关系代数中的除法运算与SQL中的exists子查询相结合,帮助学生更深入地理解这两种...

    exists SQL用法详解、exists和not exists的常用示例

    在SQL查询中,`EXISTS`和`NOT EXISTS`是两个非常重要的子查询操作符,它们主要用于判断子查询是否返回结果。本篇文章将详细介绍这两个关键字的用法,并通过实例进行解析。 首先,`EXISTS`的语法是:主查询中的条件...

    MySQL中exists关键字和in的区别有那些? SQL语句优化有那些方法? 查询速度很慢应该怎么办?

    exists使用方式是检查子查询结果中是否存在匹配的记录,它会根据outer表的记录逐条进行比较,因此outer表的记录越少,exists的优势越大,特别是当子查询返回的结果集很大的时候。而in则先执行子查询,获取去重后的...

    sql中as的用法和一些经典的sql语句.doc

    "SQL中的AS用法和经典SQL语句整理" SQL语言中,AS关键字用于为表或列指定别名,以便于查询和简化语句。在本文中,我们将总结一些常用的SQL语句,并解释AS用法的细节。 一、DELETE语句 DELETE语句用于删除表中的...

    exists用法说明.doc

    在SQL查询中,`EXISTS`子句是一个非常重要的存在性测试工具,它用于检查子查询是否返回至少一行数据。这个关键字通常与`WHERE`子句一起使用,以过滤出满足特定条件的记录。让我们深入探讨`EXISTS`及其反义词`NOT ...

    SQL中exists的使用方法

    在SQL中,`EXISTS` 是一个非常重要的子句,用于判断子查询是否能返回至少一行数据。这个关键字不关心子查询返回的具体数据,而仅仅关注是否有数据存在。`EXISTS` 子句通常与 `WHERE` 子句一起使用,以过滤满足特定...

    SQL语句中存在量词的深入剖析和应用探讨.pdf

    存在量词在SQL语句中的应用是指使用Exists关键字来执行特定的查询操作。Exists用于子查询中,其主要作用是检查子...掌握_exists关键字及相关子查询的正确使用方法,能够有效提高数据查询的准确性和效率,降低查询成本。

    “EXISTS”在SQL中的应用研究.pdf

    总结来说,EXISTS关键字是数据库查询中非常重要的工具,尤其在涉及复杂的逻辑判断时。通过上述案例,我们了解到EXISTS能够在多种不同的场合下使用,包括判断记录的存在性、确保数据满足特定的条件等。在实际应用中,...

    dephi SQL格式,if用法,函数的声明及应用,关键字的介绍

    以下将详细介绍SQL格式、IF语句的用法、函数的声明及应用以及关键字的介绍。 1. SQL格式: SQL语句通常由数据操作语句(如SELECT、INSERT、UPDATE、DELETE)、数据定义语句(如CREATE TABLE、ALTER TABLE)和数据...

    数据库SQL编写的嵌套查询

    在SQL语言中,嵌套查询是一种非常强大的工具,它允许在一个查询内部嵌入另一个查询,以实现更复杂的逻辑和数据筛选。以下将详细介绍标题和描述中提到的几个嵌套查询的例子,以及它们所代表的知识点。 1. **子查询...

    sql语言的高级用法

    在SQL查询中,`TOP n`关键字是一个非常实用的功能,它允许我们从查询结果中提取前n个记录。这在分析数据、展示最热门或最新的项目时特别有用。然而,需要注意的是`TOP n`并非SQL的标准语法,而是由某些数据库系统如...

    in和exists的区别

    在Oracle数据库中,"IN"和"EXISTS"都是用于查询某个集合的元素是否存在于另一个集合中的关键字。然而,它们在处理数据时的效率和适用场景有所不同,这主要取决于涉及的数据量以及表之间的关联。 首先,让我们来看看...

    SQL各种查询方法

    以上是SQL2000中的各种查询方法,这些基础知识对于理解和使用任何SQL数据库都是非常重要的。通过熟练掌握这些方法,你可以高效地从数据库中获取你需要的信息。在实际应用中,还可以结合存储过程、触发器、视图等高级...

    部分普通sql查询在hive中的实现方式

    - **背景**:Hive不支持标准SQL中的`IN`和`EXISTS`关键字,但可以通过`LEFT SEMI JOIN`来模拟这些功能。 - **示例**:标准SQL中的`IN`关键字查询如下: ```sql SELECT a.key, a.value FROM a WHERE a.key IN ...

    sql_按照某一个字段进行去重后获取全部字段

    - **EXISTS 子查询**:使用 EXISTS 关键字来进行子查询,判断外部查询中的每一行是否满足内部查询的条件。内部查询如下: - `SELECT 1 FROM person_real_time_bill`:选取了 `person_real_time_bill` 表中的所有...

    在ADO(sql)中使用SELECT的语法之六-子查询的使用方法

    ### 在ADO(SQL)中使用SELECT的语法之六——子查询的使用方法 #### 一、子查询概述 在SQL查询语言中,子查询是一个非常重要的概念。子查询是指在一个SQL命令内部嵌套另一个完整的SQL查询命令。通过使用子查询,我们...

Global site tag (gtag.js) - Google Analytics