MySQl学习笔记(子查询)

时间:2019-02-19
本文章向大家介绍MySQl学习笔记(子查询),主要包括MySQl学习笔记(子查询)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

修改数据表
添加单列:
ALTER TABLE tbl_name ADD [COLUMN] col_name column_definition [FIRST|AFTER col_name];//省略FIRST|AFTER col_name将默认你所添加的列位于所有列的最后面

例:ALTER  TABLE  user  ADD  age  TINYINT  UNSIGNED  DEFAULT  20;

添加多列:
ALTER TABLE tbl_name ADD [COLUMN](col_name column_definition,…);
删除列:
ALTER TABLE tbl_name DROP [COLUMN] col_name;

例:ALTER  TABLE  user  DROP  password,DROP  age;

子查询(Subquery)是指出现在其它SQL语句中的SELECT子句
SELECT * FROM t1 WHERE col1 = (SELECT col2 FROM t2);
其中SELECT * FROM t1,称为Quter Query/Outer Statement
SELECT col2 FROM t2,称为子查询(Subquery)
子查询指嵌套在查询内部,且必须始终出现在圆括号内。
子查询可以包含多个关键字或条件,
如DISTINCT,GROUP BY,ORDER BY,LIMIT,函数等
子查询的外层查询可以是:SELECT,INSERT,UPDATE等
子查询返回值:子查询可以返回标量,一行,一列或子查询
由比较运算符(>,<,>=,<=,!=,<>等)引发的子查询
用ANY,SOME或ALL修饰的比较运算符

关键字 ANY SOME ALL
>,>= 最小值 最小值 最大值
<,<= 最大值 最大值 最小值
= 任意值 任意值
!=,<> 任意值
例:SELECT  goods_name  FROM  tdb_goods  WHERE  goods_price  >  ANY  (SELECT  goods_price  FROM  tdb_goods  WHERE  goods_ctae  ="游戏本");
//查询 tdb_goods表中价格大于任一且种类为游戏本的商品名字

由[NOT] IN/EXISTS引发的子查询
IN / NOT IN顾名思义在里面或不在里面
如果子查询返回任何行,EXISTS将返回true,否则为false;