zoukankan      html  css  js  c++  java
  • 关于如何理解 not exists 的好比喻 not exists = not in;exists= in

    简单的理解就是 not exists = not in;exists= in

    但这只是简单的理解而已,其里面的执行机制和细微处还是有一定的差别!

    以下是从网络上摘录下的文章:

    SQL里的EXISTS与in、not exists与not in 效率比较和使用

    在 MSSQL 中,插入(insert)一条记录很简单,但是一些特殊应用,在插入记录前,需要检查这条记录是否已经存在,只有当记录不存在时才执行插入操作,本文介绍的就是这个问题的解决方案。


    问题: 我创建了一个表来存放客户信息,我知道可以用 insert 语句插入信息到表中,但是怎么样才能保证不会插入重复的记录呢?

    答案: 可以通过使用 EXISTS 条件句防止插入重复记录。


    示例一:插入多条记录

    假设有一个主键为 client_id 的 clients 表,可以使用下面的语句:

    Code:


    INSERT INTO clients
    (client_id, client_name, client_type)
    SELECT supplier_id, supplier_name, 'advertising'
    FROM suppliers
    WHERE not exists (select * from clients
    where clients.client_id = suppliers.supplier_id);

    个人批注:not exists不存在,也就是说后面的括号中只要返回了数据那么这个条件就不存在了,可以理解为括号前的not

    exists是一个左表达式 ,括号后的查询是一个右表达式,只有当右表达式返回的也是not exists(即后面的查询出来的结果是非空的)时,等式才成立。

  • 相关阅读:
    如何使用设计模式系列
    网站性能越来越差怎么办
    ASP.NET特殊字符串替换函数
    SQL Server多事务并发问题
    弹出隐藏子菜单
    过滤sql匹配符号 防止sql注入
    统一建模语言UML轻松入门系列
    sql 字符处理函数大全
    并发控制
    类与类之间的关系图
  • 原文地址:https://www.cnblogs.com/cy163/p/1313325.html
Copyright © 2011-2022 走看看