MySQL DML语句整理汇总


当前第2页 返回上一页

LIMIT 经常和ORDER BY一起配合使用来进行记录的分页显示。

注意:limit属于MySQL扩展SQL92后的语法,在其他数据库上并不能通用。

4.聚合

很多情况下,我们需要进行一些汇总操作,比如统计整个公司的人数或者统计每个部门的人数,这是就要用到SQL的集合操作。

SELECT [field1,field2,......fieldn] fun_name
FROM tablename
[WHERE where_contition]
[GROUP BY field1,field2,......fieldn
[WITH ROLLUP]]
[HAVING where_contition];

对其参数进行以下说明:

  1. fun_name 表示要做的集合操作,也就是聚合函数,常用的有sum(求和)、count(*)(记录数)、max(最大值)、min(最小值)。
  2. GROUP BY 关键字表示要进行分类聚合的字段,比如要按照部门分类统计员工数量,部门就应该写在group by后面。
  3. WITH ROLLUP 是可选语法,表明是否对分类聚合后的结果进行再汇总。
  4. HAVING 关键字表示对分类后的结果再进行条件的过滤。

注意:having和where的区别在于having是对聚合后的结果进行条件的过滤,而where是在聚合前就对记录进行过滤,如果逻辑允许,我们尽可能用where先过滤记录,这样因为结果集减小,将对聚合的效率大大提高,最后再根据逻辑看是否用having进行再过滤。

5.表连接

表连接分为内连接和外连接,它们之间的最主要区别是:
内连接仅选出两张表中互相匹配的记录,
而外连接会选出其他不匹配的记录。我们常用的是内连接。

外连接有分为左连接和右连接,具体定义如下:

  1. 左连接:包含所有的左边表中的记录甚至是右边表中没有和它匹配的记录
  2. 右连接:包含所有的右边表中的记录甚至是左边表中没有和它匹配的记录
SELECT ename,deptname FROM emp LEFT JOIN dept ON emp.deptno=dept.deptno;

 6.子查询

某些情况,当我们查询的时候,需要的条件是另一个SELECT语句的结果,这个时候,就要用到子查询。
用于子查询的关键字主要包括in、not in、=、!=、exists、not exists等。

SELECT * FROM emp WHERE deptno IN(SELECT deptno FROM dept);

注意:子查询和表连接之间的转换主要应用在两个方面:

MySQL 4.1 以前的版本不支持子查询,需要用表连接来实现子查询的功能
表连接在很多情况下用于优化子查询

7.记录联合

我们经常会碰到这样的应用,将两个表的数据按照一定的查询条件查询出来后,将结果合并到一起显示出来,这个时候,就需要用到union和union all关键字来实现这样的功能,具体语法如下:

SELECT * FROM t1
UNION|UNION ALL
SELECT * FROM t2
......
UNION|UNION ALL
SELECT * FROM tn;

UNION 和 UNION ALL的主要区别是 UNION ALL 是把结果集直接合并在一起,而UNION是将UNION ALL后的结果进行一次DISTINCT,去除重复记录后的结果。

以上所述是小编给大家介绍的MySQL DML语句整理汇总详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

更多相关Mysql内容来自木庄网络博客


标签:Mysql

返回前面的内容

相关阅读 >>

mysql启动时innodb引擎被禁用了怎么办

windows 10 + mysql 5.5安装及使用教程分享

mysql性能优化神器explain的基本使用分析

mysql日期如何转字符串

数据库哈希连接详解(mysql新特性)

mysql explain 详细介绍

详解高性能mysql主从架构的复制原理及配置

redhat下mysql的基本使用方法分享

centos下实现mysql远程登录

一篇文章带你入门sql编程

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...