一、group_concat()函数。把groupby的分组中字段数据组合显示出来

  select s_id , GROUP_CONCAT(要显示的字段名)  from table group by 分组字段

二、group_by 与 Having 结合 :根据条件筛选分组条件

  select s_id ,group_concat(f_name) as names from fruits group by a_id having count(f_name) > 1

  Having  与 where 区别:

  1. 关键字用来在数据分组之后进行分组筛选。
  2. where在分组之前筛选记录,且where排除掉的数据不会出现在分组的结果中

三、多字段分组

  使用group by进行分组,指定多个字段,可以按照层次分组,先根据第一个字段进行分组,然后在对分组根据第二根第二个字段进行分组。

四、使用LImit限制查询结果的数量

  Limit [位置偏移量],行数

  偏移量可以不指定,行数指返回的数据的条数

  select * from frults limit 4:返回查询结果的前4条数据

  select * from frults limit 5,3 :返回查询结果偏移量为5(从第六条数据开始)后的三条数据

五、内连接查询

  select * from frults ,suppliers where frults.s_id = suppliers.s_id

  select * from frults inner join suppliers on frults.s_id = suppliers.s_id

  两种方式一样的

六、自连接查询

  查询中设计的表示在物理上同一张表,逻辑上是两张表。自连接是一种特殊的内连接

  select  f1.s_id , f2.s_id from frults as f1 ,frults as f2 where f1.s_id = f2.s_id and f1.s_id = "a1"

七、左外连接查询

  包括左表的所有行,如果右表没有匹配行就会为NUL

  select * from frults left outer join suppliers on frults.s_id = suppliers.s_id

八、右外连接查询

  包括右表的所有行,如果左表没有匹配行就会为NUL

  select * from frults right outer join suppliers on frults.s_id = suppliers.s_id

九、ANY,SOME只要满足其中一个就返回true

十、ALL 所有条件都满足才返回True

十一、exists关键字:如果子查询返回结果不为空,则会进行主查询,否则不会进行主查询,可以在where中使用

  

MySQL学习(四)查询的更多相关文章

  1. MySql学习(七) —— 查询性能优化 深入理解MySql如何执行查询

    本篇深入了解查询优化和服务器的内部机制,了解MySql如何执行特定查询,从中也可以知道如何更改查询执行计划,当我们深入理解MySql如何真正地执行查询,明白高效和低效的真正含义,在实际应用中就能扬长避 ...

  2. MySQL学习分享-->查询-->查询的分类

    MySQL的查询可以分为交叉联接.内联接.外联接.自然联接.straight_join 下面对于查询的学习,会用到以下四张表: create table t_commodity_type( `id` ...

  3. MySql学习(四) —— 函数、视图

    注:该MySql系列博客仅为个人学习笔记. 本篇博客主要涉及MySql 函数(数学函数.字符串函数.日期时间函数.流程控制函数等),视图. 一.函数 1. 数学函数 对于数学函数,若发生错误,所有数学 ...

  4. MySQL学习分享-->查询-->查询的原理

    查询的原理 在一个查询中常包含下述子句: 1.select,2.distinct,3.join,4.on,5.from,6.where,7.having,8.group by,9.order by,1 ...

  5. MySQL 学习四 SQL优化

    MySQL逻辑架构: 第一层:客户端层,连接处理,授权认证,安全等功能.   第二层:核心层,查询解析,分析,优化,缓存,内置函数(时间,数学,加密),存储过程,触发器,视图   第三层:存储引擎.负 ...

  6. MySQL学习(四)

    1 MySQL日期和时间类型 创建一个包含DATE类型的表 mysql> create table test3( -> star varchar(20) not null default ...

  7. python之MySQL学习——数据查询

    import pymysql as ps # 打开数据库连接 db = ps.connect(host='localhost', user='root', password='123456', dat ...

  8. MySql学习-5.查询2

    1.聚合: 1.1 5个聚合函数: count(*):括号中写列名,或者 *: max(列):此列的最大值: min(列):此列的最小值: sum(列):此列的和: avg(列):此列的平均值: 1. ...

  9. MySql学习-4.查询1

    1.基本查询语法: select * from 表名: **注意** 1.select 后写列名,*代表是所有列:        2.列名可以用as起别名,其出现在结果集中: 3.查询多个列,之间用逗 ...

  10. MySQL学习(四)——外键

    1.比方现在有两张表“分类表”和“商品表”,为了表明商品属于哪个分类,通常我们将在商品表上添加一列,用于存放分类cid的信息,此列称为:外键. 此时分类表category称为主表,cid称为主键:商品 ...

随机推荐

  1. hdu-1702-栈和队列

    ACboy needs your help again! Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ( ...

  2. 处女座和他的小姐姐(三)----数位DP

    链接:https://ac.nowcoder.com/acm/contest/329/G来源:牛客网 经过了选号和漫长的等待,处女座终于拿到了给小姐姐定制的手环,小姐姐看到以后直呼666! 处女座其实 ...

  3. Java8如何用

    2014年发布的Java8,现在应该是业界使用最普遍的Java版本,可很多Java开发人员并没有充分发挥这4年前发布的版本的优点, 本文就是带着“学以致用”的目的去了解Java8,挖掘编码中可提高效率 ...

  4. 集成 Jenkins 和 TestNG 实现自助式自动化测试平台

    背景介绍 在软件业十分成熟的今天,敏捷(Agile)开发在业界日益流行,而面临的挑战也日益增多,不断变化的用户需求.缩短的开发周期.频繁的部署上线.复杂的产品架构和团队组织,如何继续保证软件的质量是一 ...

  5. ISO端form表单获取焦点时网页自动放大问题

    iOS端网页form表单输入信息时,网页自动放大,这是因为meta标签 刚开始的时候meta标签是 <meta name="viewport" content="w ...

  6. pl/sql过期问题解决

    第一步: 输入cmd进入命令窗口 命令窗口中输入 regedit HKEY_CURRENT_USER\Software\Allround Automations 删除Allround Automati ...

  7. linux运维之top命令

    统计信息区前五行是系统整体的统计信息: 第一行是任务队列信息,同 uptime  命令的执行结果.其内容如下: 01:06:48 当前时间 up 1:22 系统运行时间,格式为时:分 1 user 当 ...

  8. 踩坑--springboot打war包

    springboot需要jdk1.8+tomcat8.0 第一步:从IDEA中通过maven install将项目打成war包 第二步:将war包放在tomcat的webApp目录下,启动tomcat ...

  9. Oracle 单实例数据库安装和real application clusters数据库安装的区别

    在想了解Oracle单实例数据可和RAC数据库前,请确保你已经知道了数据库和实例的关系,如果不了解,请参考Oracle 数据库实例和数据库. 单实例数据库模式 单实例模式下,一个数据库只能通过一个实例 ...

  10. 设置Log文件每天生成一个(wamp)

    打开 Wamp的 httpd.conf文件 把下面两句话拷贝进去即可: 1.设置错误log的,    " 2.设置访问log的    " common    说明:bin/rota ...