MySQL 子查询和连接
来源:互联网 发布:关于网络诈骗的小品 编辑:程序博客网 时间:2024/06/08 07:47
1. 子查询
嵌套在查询内部,且在圆括号内。
子查询可以包含多个关键字或条件,如 DISTINCT, GROUP BY, ORDER BY, LIMIT 等。
子查询的外层语句可以是:SELECT, INSERT, UPDATE, SET 或 DO
1.1 比较运算符引发的子查询
例如,平均值:mysql> SELECT AVG(goods_price) FROM tdb_goods;
四舍五入保留两位小数:mysql> SELECT ROUND(AVG(goods_price),2) FROM tdb_goods;
mysql> SELECT goods_id, goods_name, goods_price FROM tdb_goods WHERE goods_price >= (SELECT ROUND(AVG(goods_price),2) FROM tdb_goods);
子查询返回多个结果时,可以用ANY, SOME 或 ALL 在前面修饰:
[NOT]IN 引发的子查询:
[NOT]EXISTS 用的比较少
先看下表的结构:DESC tdb_goods_cates;
这种方法也能查看表的结构。
mysql> INSERT tdb_goods_cates (cate_name) SELECT goods_cate FROM tdb_goods GROUP BY goods_cate;
查看结果:
2. 连接
使用关键字 ON 设定连接条件,也可用 WHERE 替代。通常用 ON 关键字设定链接条件,用 WHERE 关键字过滤结果。
连接类型有3种:内连接、左外连接和右外链接。
2.1 内连接
内连接 INNER JOIN,显示左表和右表都符合的条件,相当于数学中的交集,如下所示:
MySQL 中,JOIN, CROSS JOIN 和 INNER JOIN 是等价的。
例如:
mysql> UPDATE tdb_goods INNER JOIN tdb_goods_cates ON goods_cate = cate_name SET goods_cate = cate_id;
更新前:
更新后效果(这里只截取一个,其他类似):
这样可以有效减少所占空间。
2.2 左外连接
左外连接 LEFT [OUTER] JOIN,显示左表的全部和右表中符合连接条件的记录,如下所示:
2.3 右外连接
有外链接 RIGHT [OUTER] JOIN,跟左外连接相反,即显示右表的全部和左表中符合连接条件的记录,如下所示:
慕课网 MySQL 学习笔记
- MySQL 子查询和连接
- mysql--连接查询和子查询
- mysql多表连接和子查询
- Mysql数据库-子查询和连接
- mysql命令(六)--子查询和连接
- MySQL的子查询和连接知识
- MySQL学习笔记-子查询和连接
- mysql 子查询,连接查询
- 子查询和连接
- mysql 子查询与连接
- MySQL子查询与连接
- MYSQL子查询与连接
- MySQL子查询与连接
- Mysql 的连接(join)和子查询
- MySQL的子查询与连接查询
- MySQL的连接查询及子查询
- 【mysql】mysql的查询、子查询及连接查询
- MySql学习 - 查询/子查询/连接查询/联合查询
- HDU 2084 数塔-dp-(数塔)
- Java基础-- 集合
- Ant脚本属性传递注意事项
- Landsat 8(二)
- KVO-对象属性值改变监听
- MySQL 子查询和连接
- vim在同一个窗口中同时编辑多个文件
- js正则表达式中/g /i /m /e /x /s的用法
- linux 多线程那点事
- 图片的三级缓存策略(内存LruCache+磁盘DiskLruCache+网络Volley)
- GRE写作必备句型
- 重现二叉树非递归算法的构建过程
- [leetcode] Next Permutation
- 简单的镜头跟随