微信号:grzlwx

介绍:光荣之路官方资讯

一千行MySQL学习笔记(四)

2015-07-16 22:56 光荣之路

此笔记为作者初学MySQL时做的笔记,边学边更新,温故而知新。如果你也在学习,欢迎把你的学习笔记及新得分享给我们!735821166@qq.com

/* UNION */ ------------------

将多个select查询的结果组合成一个结果集合。

SELECT ... UNION [ALL|DISTINCT] SELECT ... 默认 DISTINCT 方式,即所有返回的行都是唯一的 建议,对每个SELECT查询加上小括号包裹。

ORDER BY 排序时,需加上 LIMIT 进行结合。 需要各select查询的字段数量一样。 每个select查询的字段列表(数量、类型)应一致,因为结果中的字段名以第一条select语句为准。

/* 子查询 */ ------------------ - 子查询需用括号包裹。

--
from型
from后要求是一个表,必须给子查询结果取个别名。
- 简化每个查询内的条件。
- from型需将结果生成一个临时表格,可用以原表的锁定的释放。 - 子查询返回一个表,表型子查询。 select * from (select * from tb where id>0) as subfrom where id>1;

--
where型 - 子查询返回一个值,标量子查询。
- 不需要给子查询取别名。
- where子查询内的表,不能直接用以更新。
select * from tb where money = (select max(money) from tb);

-- 列子查询
如果子查询结果返回的是一列。 使用
innot in 完成查询
exists
not exists 条件 如果子查询返回数据,则返回1或0。常用于判断条件。
select column1 from t1 where exists (select * from t2);

--
行子查询
查询条件是一个行。

select
* from t1 where (id, gender) in (select id, gender from t2); 行构造符:(col1, col2, ...) 或 ROW(col1, col2, ...) 行构造符通常用于与对能返回两个或两个以上列的子查询进行比较。

--
特殊运算符 != all() 相当于 not in
= some() 相当于 inanysome 的别名
!= some() 不等同于 not in,不等于其中某一个。
all, some 可以配合其他运算符一起使用。

/* 连接查询(join) */ -------------
将多个表的字段进行连接,可以指定连接条件。

-- 内连接(inner join) - 默认就是内连接,可省略inner。
- 只有数据存在时才能发送连接。即连接结果不能出现空行。
on 表示连接条件。其条件表达式与where类似。也可以省略条件(表示条件永远为真) 也可用where表示连接条件。 还有 using, 但需字段名相同。 using(字段名)

-- 交叉连接 cross join
即,没有条件的内连接。
select * from tb1 cross join tb2;

--
外连接(outer join) - 如果数据不存在,也会出现在连接结果中。

-- 左外连接 left join
如果数据不存在,左表记录会出现,而右表为null填充

-- 右外连接 right join
如果数据不存在,右表记录会出现,而左表为null填充

-- 自然连接(natural join)
自动判断连接条件完成连接。 相当于省略了using,会自动查找相同字段名。 natural
join natural left join natural right join

(未完待续)
(作者:Shocker 来源:http://www.cnblogs.com/shockerli/p/1000-plus-line-mysql-notes.html)

一字一句当思来之不易,感谢作者,传播测试知识、技能与正能量!

光荣之路软件测试培训

官网:http://www.gloryroad.cn/

微信公众号:gloryroadtrain

性能测试QQ群:415987441
软件测试招聘QQ群: 203715128
自动化3群QQ: 371211499


 
光荣之路 更多文章 今天晚上的 linux 公开课- Awk 编程 7月28日(今天)晚上的 linux 公开课- shell编程 8月4日(今天)晚上的 linux 公开课- shell编程 9月1日(本周一)晚8点半,光荣之路Web自动化系列基础课—javascript第二讲 推荐本好书《与机器赛跑》
猜您喜欢 给小白的Java EE指南(5) : AJAX 总结一下前端面试中的知识点 Google 昨晚发布的这些 App,让我们提前看到未来 Kafka 设计与原理详解 美女iPhone丢了后,黑客跟妹子干了这样一件事