MySQL学习(四)查询
一、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 区别:
- 关键字用来在数据分组之后进行分组筛选。
- 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学习(四)查询的更多相关文章
- MySql学习(七) —— 查询性能优化 深入理解MySql如何执行查询
本篇深入了解查询优化和服务器的内部机制,了解MySql如何执行特定查询,从中也可以知道如何更改查询执行计划,当我们深入理解MySql如何真正地执行查询,明白高效和低效的真正含义,在实际应用中就能扬长避 ...
- MySQL学习分享-->查询-->查询的分类
MySQL的查询可以分为交叉联接.内联接.外联接.自然联接.straight_join 下面对于查询的学习,会用到以下四张表: create table t_commodity_type( `id` ...
- MySql学习(四) —— 函数、视图
注:该MySql系列博客仅为个人学习笔记. 本篇博客主要涉及MySql 函数(数学函数.字符串函数.日期时间函数.流程控制函数等),视图. 一.函数 1. 数学函数 对于数学函数,若发生错误,所有数学 ...
- MySQL学习分享-->查询-->查询的原理
查询的原理 在一个查询中常包含下述子句: 1.select,2.distinct,3.join,4.on,5.from,6.where,7.having,8.group by,9.order by,1 ...
- MySQL 学习四 SQL优化
MySQL逻辑架构: 第一层:客户端层,连接处理,授权认证,安全等功能. 第二层:核心层,查询解析,分析,优化,缓存,内置函数(时间,数学,加密),存储过程,触发器,视图 第三层:存储引擎.负 ...
- MySQL学习(四)
1 MySQL日期和时间类型 创建一个包含DATE类型的表 mysql> create table test3( -> star varchar(20) not null default ...
- python之MySQL学习——数据查询
import pymysql as ps # 打开数据库连接 db = ps.connect(host='localhost', user='root', password='123456', dat ...
- MySql学习-5.查询2
1.聚合: 1.1 5个聚合函数: count(*):括号中写列名,或者 *: max(列):此列的最大值: min(列):此列的最小值: sum(列):此列的和: avg(列):此列的平均值: 1. ...
- MySql学习-4.查询1
1.基本查询语法: select * from 表名: **注意** 1.select 后写列名,*代表是所有列: 2.列名可以用as起别名,其出现在结果集中: 3.查询多个列,之间用逗 ...
- MySQL学习(四)——外键
1.比方现在有两张表“分类表”和“商品表”,为了表明商品属于哪个分类,通常我们将在商品表上添加一列,用于存放分类cid的信息,此列称为:外键. 此时分类表category称为主表,cid称为主键:商品 ...
随机推荐
- Oracle Date Function 讲解和事例
1 year=1*12 months 1 day=24 hours=24*(1*60mins)=24*60*(1*60 seconds) 1 week =7 days 注意: 黑色字体是 oracle ...
- 移动端数据爬取(fidlde)
一.什么是Fiddler? 1 什么是Fiddler? Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 . 它能够记录客户端和服务器之间的所有 HTTP请求, ...
- poj3190
一.题意:有n头牛,每头牛需要占用一个时间段的时间来挤奶,且必须有机器.问最少需要多少个机器 二.思路:区间贪心.把尽量多的牛放在一个棚子里,这样就可以使得用到的棚子数最少.只要任意两头牛的挤奶时间不 ...
- Element UI 中国省市区级联数据
https://www.npmjs.com/package/element-china-area-data
- linux运维基础之跟我一起学正则表达式(一)
正则表达式 ### 二, 1) 什么是正则表达式 正则表达式又称为规则表达式 正则表达式是一个计算机的一个概念 正则表达式为了处理大量的文本|字符串而定义的一套规则和方法,通常被用来检索,替换那些符合 ...
- cxf 框架 webservice
cxf 内置了一个web服务器 cxf简单入门实例 package test; import org.apache.cxf.jaxws.JaxWsServerFactoryBean; import c ...
- nodejs初探(一)nodejs开发环境搭建
简介 JavaScript是一种运行在浏览器的脚本.Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快.易于扩展的网络应用.Node.js 使用事件 ...
- 04-struts2获得参数
1 struts2 获得参数 1-属性驱动获得参数 1 Demo8Action package www.test.c_param; import java.util.Date; import com. ...
- VS中为什么不同的项目类型属性查看和设置的界面不一样
在VS中,存在ATL.MFC.Win32.CLR.常规等等各种工程模板,这些工程模板对应于开发不同类型的应用,比如要开发com,你应该选ATL:开发最原始的通过API代用操作系统的应用,应该用Win3 ...
- 支付宝小程序与微信小程序开发功能和语法糖不同
最近开始负责公司webapp数据打通支付宝小程序,之前已经打通了微信小程序,现在根据支付宝小程序的开发文档在之前的模板上面做修改. 在修改模板的过程中,总结一下双方功能和语法糖的不同之处. 框架: a ...