美文网首页
子查询与连接

子查询与连接

作者: MacXin | 来源:发表于2018-03-27 11:25 被阅读0次

        子查询(Subquery)是指出现在其他SQL语句内的SELECT子句。    

        例如:

        SELECT  *  FROM t1 WHERE col1 = (SELECT col2 FROM t2),其中SELECT * FROM t1 称为Outer Query/Outer Statement SELECT col2 FROM t2, 称为 SubQuery。

        $$: SELECT goods_id, goods_name, goods_price FROM tdb_goods WHERE goods_price >= (SELECT ROUND(AVG(goods_price), 2) FROM tdb_goods);

        子查询指嵌套在查询内部,且必须始终出现在圆括号内;子查询可以包含多个关键字或条件,如DISTINCY、GROUP BY、ORDER BY、LIMIT,函数等;子查询的外层查询可以是:SELECT、INSERT、UPDATE、SET或DO。

        子查询返回值:子查询可以返回标量、一行、一列或子查询。

        使用比较运算符的子查询:=、>, <, >=, <=, <>, !=, <=>

        语法结构:operand comparision_operator subquery

        用ANY, SOME 或 ALL 修饰的比较运算符

            $$: SELECT goods_id, goods_name, goods_price FROM tdb_goods WHERE goods_price >= ANY (SELECT goods_price FROM tdb_goods WHERE goods_cate = '超级本');

           使用 [NOT]  IN 的子查询

            语法结构:

        operand comparison_operator  [NOT] IN (subquery)

        =ANY 运算符与IN等效。

        !=ALL或<>ALL运算符与NOT IN 等效。

        使用 [NOT]  EXISTS的子查询

如果子查询返回任何行,EXISTS将返回TRUE;否则为FALSE。

        多表更新

        UPDATE table_references

        SET col_name1 = {expr1 | DEFAULT}

        [, col_name2={expr2 | DEFAULT}]...

        [WHERE  where_condition]

            $$:UPDATE goods_tb AS gtb INNER JOIN brands_tb AS btb ON gtb.brand_name = btb.brand_name SET gtb.brand_name = brand_id;

        语法结构

        table_reference

        {[INNER | CROSS]  JOIN  | {LEFT  |  RIGHT}  [OUTER]  JOIN}

        table_reference

        ON  conditional_expr

          连接类型

        INNER JOIN,内连接,在MySQL中,JOIN、CROSS  JOIN 和 INNER  JOIN是等价的。LEFT  [OUTER]  JOIN,左外连接,RIGHT  [OUTER]  JOIN,右外连接

            CREATE...SELECT

        创建数据表同时将查询结果写入到数据表:

    CREATE  TABLE  [IF NOT EXISTS] tbl_name  [(create_definition, ...)]   select_statement

            完全复制表的结构和内容

            $$:CREATE TABLE cp_goods_tb SELECT goods_id, goods_name, goods_cate, brand_name, goods_price, is_show, is_sale_off FROM goods_tb;

            复制表连接:复制表

            根据某一个表的某一字段创建内容类型表

            $$: CREATE TABLE cates_tb( cate_id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY, cate_name VARCHAR(40) ) SELECT goods_cate AS cate_name FROM goods_tb GROUP BY goods_cate;

相关文章

  • 数据库查询语句

    条件与逻辑查询 模糊查询 范围查询 排序 聚合函数 分组 连接查询 分页 子查询

  • 子查询与连接

    子查询(Subquery)是指出现在其他SQL语句内的SELECT子句。 例如: SELECT *...

  • 子查询与连接

    select round(avg(goods_price),2)from tdb_goods;//查找tdb_go...

  • Mysql--连接查询和子查询

    连接查询和子查询 一、连接查询 1.1 概念 连接查询:也可以叫跨表查询,需要关联多个表进行查询 1.2 根据年代...

  • 5、子查询与连接

    5、子查询与连接 5.1、数据准备 mysql 中对记录操作可分为两类 写操作:INSERT、DELETE、UPD...

  • 子查询与连接2

    连接 MySQL在SELECT语句、多表更新、多表删除语句中支持JOIN操作。 数据表参照 tab...

  • (六)子查询与连接

    1、创建练习使用的数据表 goods_id —— 商品编号goods_name —— 商品名称goods_cate...

  • SQL子查询与连接查询研究

    假设有A、B两张表,其中B表有A表的外键。在SQL查询中,我们经常有这样的需求,需要根据B表中的条件筛选去查询A表...

  • 第三天下午、自连接、子连接、分页查询

    自连接 查询每个员工的编号、姓名、领导姓名 外连接查询 连接查询代码 课下作业题 子查询(分页查询) 查找工资最高...

  • MySQL-高级查询

    嵌套查询(子查询) 把内层的查询结果作为外层的查询条件 示例 多表查询 多个表之间联合查询 连接查询 内连接 外连...

网友评论

      本文标题:子查询与连接

      本文链接:https://www.haomeiwen.com/subject/vayjcftx.html