MySQL_子查询

版权声明:由于作者水平有限,文中难免有误,欢迎各位业界同仁斧正! https://blog.csdn.net/UserPython/article/details/82928945

子查询的介绍

子查询是指嵌套在其他SQL语句内的查询语句,且必须始终出现在圆括号内;执行时先计算子查询,子查询的结果作为外层另一个查询的过滤条件

  • 例:SELECT * FROM table1 WHERE col1 = (SELECT col2 FROM table2);
    

带比较运算符的子查询

用ANY、ALL、SOME关键字修饰子查询

  • ANY、ALL、SOME关键字放在比较运算符的后面
  • ANY和SOME是同义词,表示满足内层子查询中的任何一个条件
  • ALL表示需要同时满足所有内层查询的条件

带关键字[NOT] IN的子查询

SELECT * FROM table WHERE colName IN (子查询);

  • IN关键字进行子查询时,内层查询语句仅仅返回一个数据列,这个数据列里的值将提供给外层查询语句进行比较操作
  • NOT IN 正好与 IN 的作用相反

带关键字[NOT] EXISTS的子查询

SELECT * FROM table WHERE EXISTS (子查询);

  • 判断子查询是否返回行
  • 如果返回,那么EXISTS的结果为True
  • 如果没有返回任何行,那么EXISTS返回的结果为False

插入记录时使用子查询

INSERT … SELECT

INSERT INTO table2 SELECT * FROM table1;

猜你喜欢

转载自blog.csdn.net/UserPython/article/details/82928945