MySQL(五) —— 子查询

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

如:

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

子查询指嵌套在查询内部,且必须始终出现在圆括号内。

子查询可以包含多个关键字或条件,如DISTINCT/GROUP BY/ORDER BY/LIMIT/函数等;

子查询的外层查询可以是:SELECT, INSERT, UPDATE, SET 或Do。

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

  • 使用比较运算符的子查询
    • 使用比较运算符的子查询:=, >, <, >=, <=, <>, !=, <=>
    • 语法结构:operator comparison——operator SubQuery
    • ANY, SOME, ALL关键字
  • 使用[NOT] IN的子查询
    • operand comparison_operator [NOT] IN (subquery) = ANY 运算符与IN等效
    • !=ALL 或 <>ALL 运算符与NOT IN等效。

 

多表更新

  • 基本命令:
  • UPDATE table_references
    SET col_name1={expr1|DEFAULT}
    ...
    [WHERE where_condition]//表的参照关系
    table_reference
    {[INNER | CROSS] JOIN | {LEFT | RIGHT} [OUTER] JOIN}
    table_reference
    ON condition_expr //For example:
    UPDATE tdb_goods INNER JOIN tdb_goods_cates ON goods_cate=cate_name
    SET goods_cate=cate_id;

     

 多表连接

  • MySQL在SELECT语句、多表更新、多表删除语句中支持JOIN操作。
  • 基本命令:
  • table_reference
    {[INNER | CROSS] JOIN | {LEFT | RIGHT} [OUTER] JOIN}
    table_reference
    ON condition_expr table_reference
    tbl_name [[AS] alias] | table_subquery [AS] alias数据表可以使用tbl_name AS alias_name 或 tbl_name alias_name 赋予别名。
    table_subquery可以作为子查询使用在FROM子句中,这样的子查询必须为其服务别名。

     

  • INNER JOIN,内连接,在MySQL中,JOIN,CROSS JOIN和INNER JOIN是等价的。
  • LEFT [OUTER] JOIN,左外连接
    • A LEFT JOIN B join_condition
    • 数据表B的结果集依赖于数据表A;
    • 左外连接条件决定如何检索数据表B(在没有WHERE条件的情况下)
  • RIGHT [OUTER] JOIN,右外连接
    • 通常使用ON关键字来设定条件;
    • 使用WHERE关键字来进行结果集记录的过滤。
  • 表的自身连接 多表删除:通过一个表模拟多个表,删除表中的重复记录
    • DELETE tbl_name[.*] [, tbl_name[.*]] ...
      FROM table_references
      [WHERE where_condition]//For example:
      DELETE t1 FROM tdb_goods AS t1 LEFT JOIN (SELECT goods_id, goods_name FROM tdb_goods GROUP BY goods_name HAVING (COUNT(goods_name) >=2)) AS t2 
      ON t1.goods_name=t2.goods_name WHERE t1.goods_id > t2.goods_id;

 

转载于:https://www.cnblogs.com/little-YTMM/p/5428669.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396199.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PPP认证方式pap chap chap2

2019独角兽企业重金招聘Python工程师标准>>> PPP点到点协议&#xff08;Point to Point Protocol&#xff0c;PPP&#xff09;是IETF&#xff08;Internet Engineering Task Force&#xff0c;因特网工程任务组&#xff09;推出的点到点类型线路的数据链路层协议。它…

Nexus-配置vPC 实验三

配置EvPC&#xff08;增强的vPC&#xff09;&#xff0c;下面两个FEX可以同时被两个N5K管理。注意&#xff1a;FEX只支持静态的Channel-group&#xff08;mode on&#xff09; N5K-1配置&#xff1a;配置FEXN5K-1&#xff08;config&#xff09;#feature fexN5K-1&#xff08;c…

python中字符串转xml对象_Python实现对象转换为xml的方法示例

本文实例讲述了Python实现对象转换为xml的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;# -*- coding:UTF-8 -*-Created on 2010-4-20author: 忧里修斯import xml.etree.ElementTree as ETimport xml.dom.minidom as minidomfrom addrbook.domain import Person…

python现在时间 命令,Python 日期格式和时间以及当前时间和时间戳

Python 程序在运行的时候可能需要获得当前的时间。在这个时候我们需要导入 datetime 包。获得当前时间例如&#xff0c;可以使用下面的代码获得当前的日期。today datetime.date.today()print("Todays date:", today)在上面的代码中&#xff0c;将会输出&#xff1a…

谷歌入职邮件_为什么我全职学习了8个月以接受Google采访

谷歌入职邮件by Googley as Heck由Googley饰演Heck 为什么我全职学习了8个月以接受Google采访 (Why I studied full-time for 8 months for a Google interview) It’s true. I’ve spent thousands of hours reading books, writing code, and watching computer science lec…

关于meta便签详解

<!-- 声明文档 --> <meta charsetutf-8> <meta http-equiv"X-UA-Compatible" content"IEedge" /> //指示IE以目前可用的最高模式显示内容 <!-- SEO 优化 --> <meta name"description" content"不超过150个字符&…

go grpc 深入笔记

为什么80%的码农都做不了架构师&#xff1f;>>> grpc 深入 生命周期 grpc 的生命周期由4种请求的方式不同而不同&#xff1a;(详细查看router示例) 普通rpc: 客户端发送请求&#xff0c;通知服务端调用rpc服务&#xff0c;服务端返回请求&#xff0c;如果状态"…

messagedigest 图片加密_MessageDigest 加密和解密2

-------------------解密---------------------------package com.drawthink.platform.util;import java.io.UnsupportedEncodingException;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.security.SecureRandom;import java…

34个省市自治区排序_freeCodeCamp的1,000多个学习小组现已完全自治

34个省市自治区排序by Justin Sane贾斯汀桑恩(Justin Sane) freeCodeCamp的1,000多个学习小组现已完全自治 (freeCodeCamp’s 1,000 study groups are now fully autonomous) When the first local freeCodeCamp (fCC) study group popped up, we had no idea that within les…

oracle rac alter日志,ORACLE 11G RAC 增加日志组及增大日志文件

1、查看目前日志组和日志文件情况SQL> select * from v$logfile order by 1;GROUP# STATUS TYPE MEMBER IS_---------- ------- ------- -------------------------------------------------- ---1 ONLINE FRA/st…

RSA加密算法简单分析

预备知识 1&#xff09;RSA是第一个比较完善的公开密钥算法&#xff0c;它既能用于加密&#xff0c;也能用于数字签名。RSA以它的三个发明者Ron Rivest, Adi Shamir, Leonard Adleman的名字首字母命名&#xff0c;这个算法经受住了多年深入的密码分析&#xff0c;虽然密码分析者…

C#字符串变量使用

string由于是引用类型&#xff0c;所以&#xff0c;声明的字符串变量会存储到堆上&#xff0c;而且该变量是不可变的&#xff0c;一旦初始化了该变量&#xff0c;该内存区域中存储的内容将不能更改。在对字符串操作时&#xff0c;是在堆上创建了一个新的字符串变量&#xff0c;…

c语输入单引号_C语言的printf不能用单引号?

多年没用C语言了。近日用R语言编程时因有太多循环&#xff0c;只好用C写个扩展模块&#xff0c;一时竟不知怎么动手了。在多种语言中&#xff0c;单引号和双引号是可以等同使用的。因键入双引号要比单引号多按一SHIFT键&#xff0c;我偏好单引号。在用printf显示字符串&#xf…

css flexbox模型_CSS Flexbox在全国范围内的公路旅行中得到了解释

css flexbox模型by Kevin Kononenko凯文科诺年科(Kevin Kononenko) CSS Flexbox在全国范围内的公路旅行中得到了解释 (CSS Flexbox Explained by Road Tripping Across the Country) 如果您旅行很长&#xff0c;那么您可以了解CSS Flexbox&#xff01; (If you have ever been…

oracle 10g 白皮书,Oracle 10g标准版与企业版

beautiful 于 2007-03-06 00:43:37发表:最后还有一些关于oracle产品的FAQ&#xff1a;1. Oracle数据库软件目前在售的版本号&#xff1f;A&#xff1a;目前在售的是Oracle 9i 和Oracle 10g2. 10g是不是比9i更好&#xff1f;A&#xff1a;一个新版本的软件推出以后&#xff0c;总…

Linux 小笔记

1、查看linux 版本 按ctrlshiftt 快捷键&#xff0c;打开终端&#xff0c;输入sudo uname --m &#xff0c;按下enter 如果显示i686,你安装了32位操作系统 如果显示 x86_64&#xff0c;你安装了64位操作系统 转载于:https://www.cnblogs.com/1995hxt/p/5436683.html

不会发布npm包?进来看看?

前言 npm(Node Package Manager)&#xff0c;一个Node的包管理器&#xff0c;平时我们常用的公共模块&#xff08;插件&#xff09;或者叫做包大多都放在上面&#xff0c;所以接下来要封装的插件&#xff0c;我们就简单称它为npm包&#xff0c;本文从就从这个简单的例子开始&am…

如何让帝国CMS7.2搜索模板支持动态标签调用

帝国cms站内搜索一般不支持动态标签调用&#xff0c;如果要调用如何实现呢&#xff1f;修改两个地方就可以实现了。打开 /e/search/result/index.php 文件&#xff0c;找到&#xff08;文件改了&#xff0c;不会调用也是徒劳&#xff01;看看这个帝国cms搜索关键字调用标签(sho…

access字体变为斜体_Linux折腾记(四):Linux桌面系统字体配置详解

字体显示效果测试文字&#xff1a;复制代码代码如下:这一段是为了测试宋体字的显示效果&#xff0c;包括宋体里面自带的英文字体&#xff0c;“This is english,how does it look like?”。这一行是小字。后面几个字是加粗的宋体。标点符号“&#xff0c;。&#xff1a;&#…

oracle between and monday,oracle——时间

时间数据1. 插入时间数据插入语法命令&#xff1a;insert into floor values (to_date(年-月-日 时:分:秒,YYYY-MM-DD HH24:MI:SS));完整的时间插入insert into floor values (to_date(2010-07-12 09:10:12,YYYY-MM-DD HH24:MI:SS));查询显示&#xff1a;2010-07-12 09:10:12.0…