zoukankan      html  css  js  c++  java
  • SQLite进阶-14.子查询

    子查询

    子查询或内部查询或嵌套查询是在另一个SQLite查询内嵌入在WHERE子句中的查询。
    使用子查询返回的数据将被用在主查询中作为条件,以进一步限制要检索的数据。
    子查询可以与SELECT、INSERT、UPDATE和DELETE语句一起使用,可伴随着使用运算符如=、<、>、>=、<=、IN、BETWEEN等。

    子查询必须遵循的几个规则:

    • 子查询必须用括号括起来。
    • 子查询在SELECT子句只能有一个列,除非在主查询中有多列,与子查询的所选列进行比较。
    • ORDER BY不能用在子查询中,虽然主查询可以使用ORDER BY。可以在子查询中使用GROUP BY,功能与ORDER BY相同。
    • 子查询返回多余一行,只能与多值运算符一起使用,如IN运算符。
    • BETWEEN运算符不能与子查询一起使用,但是,BETWEEN可在子查询内使用。

    SELECT语句中的子查询

    -- 语法
    SELECT * FROM table_name1[, table_name2]
        WHERE column_name OPERATOR
        (
            SELECT column_name1[, column_name2]
            FROM table_name[, table_name2]
            WHERE [condition]
        );
    
    -- 实例
    SELECT * FROM link_men
        WHERE ID IN (
            SELECT ID FROM link_men
            WHERE SALARY > 5000
        );
    
    

    INSERT语句中的子查询

    -- 语法
    INSERT INTO table_name [ (column1 [, column2 ]) ]
        SELECT [ (column1 [, column2 ]) ]
        FROM table_name1[, table_name2]
        WHERE column_name OPERATOR
        (
            SELECT column_name1[, column_name2]
            FROM table_name1[, table_name2]
            WHERE [condition]
        );
    
    -- 实例
    INSERT INTO link_men
        SELECT * FROM link_men
        WHERE ID IN (
            SELECT ID FROM link_men
            WHERE SALARY > 5000
        );
    
    

    UPDATE语句中的子查询

    -- 语法
    UPDATE table_name
    SET column_name = new_value
        WHERE column_name OPERATOR
        (
            SELECT column_name1[, column_name2]
            FROM table_name1[, table_name2]
            WHERE [condition]
        );
    
    -- 实例
    UPDATE link_men
    SET SALARY = SALARY * 0.50
        WHERE AGE IN (
            SELECT AGE FROM link_men
            WHERE AGE > 25
        );
    
    

    DELETE语句中的子查询

    -- 语法
    DELETE FROM table_name
        WHERE column_name OPERATOR
        (
            SELECT column_name1[, column_name2]
            FROM table_name1[, table_name2]
            WHERE [condition]
        );
    
    -- 实例
    DELETE FROM link_men
        WHERE AGE IN (
            SELECT AGE FROM link_men
            WHERE AGE > 25
        );
    
    
  • 相关阅读:
    观《phonegap第三季 angularjs+ionic视频教程 实时发布》学习笔记(一)
    npm的本地模式与全局模式
    Nodejs的Express完成安装指导
    app安装位置声明
    vs2005水晶报表无法运行在X64机器上
    SQL递归查询(with cte as)
    System.IO.File.Create 不会自动释放,一定要Dispose
    imail 删除历史邮件命令
    Deferred解决JS同步问题
    HttpContext.Current.Cache使用文件依赖问题
  • 原文地址:https://www.cnblogs.com/haitao130v/p/11360787.html
Copyright © 2011-2022 走看看