分组查询

  分组查询通常和聚合函数结合使用,查询条件中每个XXX就以XXX为分组的条件;

  格式:每个A的平均B

    select avg(B) from 表名 group by A;

having

  在where后面只能写普通字段的条件;在having后面写聚合函数的条件;having写在group by的后面,where写在最前面;

  案例: 查询每个部门的平均工资,只查询平均工资大于2000的。
  select deptno,avg(sal) a from emp group by deptno having a>2000;

SQL中各个关键字的顺序

  select ... from 表名 where ... group by ... having ... order by ... limit ... ;

子查询

  嵌套在SQL语句中的查询SQL语句称之为子查询;子查询可以由多层嵌套;子查询可写在where和having后面作为查询条件的值;

  写在创建表的时候  create table NEW表名 as (select X,Y from 表名);

  写在from后面当成一张新表使用(必须有别名)

    select X,Y from (select * from EMP) T;

  子查询格式:  select 字段名,字段名 from 表名1 字段名=(select avg(字段名) from 表名2);

    案例:查询部门平均工资最高的部门信息
)得到平均最高工资
select avg(工资) from EMP group by 部门编号 order by avg(工资) desc limit ,;
)得到部门信息
select 部门编号 from EMP group by 部门编号 having avg(工资)=(select avg(工资) from EMP group by 部门编号 order by avg(工资) desc limit ,);
)得到部门信息
select *from dept where 部门编号 in (select 部门编号 from EMP group by 部门编号 having avg(工资)=(select avg(工资) from EMP group by 部门编号 order by avg(工资) desc limit ,));

关联查询

  同时查询多张表的数据称为关联查询。

 案例:
)查询每个员工的姓名和相对应的部门名称
select e.ename,d.dname from emp e,dept d where e.deptno=d.deptno;
)查询每个商品的标题、商品单价和对应的分类名称
select t1,title,t1.price,t2.name from t_item t1,t_item_category t2 where t1.category_id=t2.id;
)查询在new york工作的所有员工信息
select e.* from emp e,dept d where e.deptno=d.deptno and d.loc='new york';
)查询所有的员工信息和对应的部门地点
select e.*,d.loc from emp e,dept d where e.deptno=d.deptno;
)查询员工信息、员工工资、对应的部门名称,要求工资大于2000
select e.ename,e.sal,d.dname from emp e,dept d where e.deptno=d.deptno and e.sal>;

笛卡尔积

  关联查询如果不写关联关系,则查询结果为两张表的乘积;笛卡尔积是一种错误的查询结果,在工作中不能出现。

等值连接和内连接

  这两种连接方式都是关联查询的查询方式,效率相同;

  等值连接: select * from A,B where A.X=B.X and A.Y=XXX;

  内连接: select * from A join B on A.X=B.X where A.Y=XXX;

  外连接: select * from A left/right join B on A.X=B.X where A.Y=XXX;

  左外连接:以join右侧表为主表查询其所有数据和右侧表的交际数据;

  右外连接:以jion右侧表为朱彪查询其所有和左侧表的交集数据。

     案例:查询所有员工的名字对应的部门名
select e.ename,d.dname from emp e left join dept d on e.deptno=d.deptno;

数据库部分(MySql)_2的更多相关文章

  1. 数据库 之MySQL 简单教程

      So Easy系列之MySQL数据库教程 1.   数据库概述 1.1.  数据库概述 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和 ...

  2. Mysql数据库知识-Mysql索引总结 mysql mysql数据库 mysql函数

    mysql数据库知识-Mysql索引总结: 索引(Index)是帮助MySQL高效获取数据的数据结构. 下边是自己整理的资料与自己的学习总结,,做一个汇总. 一.真的有必要使用索引吗? 不是每一个性能 ...

  3. 迁移应用数据库到MySQL Database on Azure

    by Rong Yu 有用户问怎么把他们应用的数据库迁移到MySQL Database on Azure上,有哪些方式,有没有需要注意的地方.今天我们来概括介绍一下迁移应用数据库到MySQL Data ...

  4. Cobar是提供关系型数据库(MySQL)分布式服务的中间件

    简介 Cobar是提供关系型数据库(MySQL)分布式服务的中间件,它可以让传统的数据库得到良好的线性扩展,并看上去还是一个数据库,对应用保持透明. 产品在阿里巴巴稳定运行3年以上. 接管了3000+ ...

  5. Mysql数据库的mysql Schema 究竟有哪些东西& 手工注入的基础要领

    #查看数据库版本号 mysql> select @@version; +------------+ | @@version  | +------------+ | 5.5.16-log | +- ...

  6. 2、ABPZero系列教程之拼多多卖家工具 更改数据库为Mysql

    因为要部署项目到云服务器,不想在服务器上装SqlServer,所以需要把项目改为Mysql. 项目初始化 1.下载项目压缩包,前面文章已经说到,可以加群到群文件里下载.解压缩下载的项目源码,使用VS2 ...

  7. 关于数据库管理系统DBMS--关系型数据库(MySQL/MariaDB)

    数据库的结构(3种):层次,网状,关系型(用的最多): DBMS的三层模型: 视图层:面向最终用户: 逻辑层:面向程序员或DBA: 物理层:面向系统管理员: 关系型数据库管理系统——RDBMS: 主要 ...

  8. 数据库【mysql篇】学习笔记

    Windows服务 -- 启动MySQL    net start mysql-- 创建Windows服务    sc create mysql binPath= mysqld_bin_path(注意 ...

  9. 数据库之数据库管理篇[mysql]

    管理数据库 1.mysql开闭使用篇 mariadb在Linux中首次进入mysql(因为此时还没有创建任何用户,mysql的root并不等效于linux中的root用户) sudo mysql 进入 ...

  10. 数据库之mysql篇(1)—— 数据库管理系统简介/mysql的安装、配置

    说mysql之前,还是先说说数据库. 什么是数据库: 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后 ...

随机推荐

  1. karaf 控制台 常用linux指令(2)

    11,查看onos风格注解实例列表 -bash代码 scr:list ACTIVE代表实例已生成,REGISTERED代表实例未注入生成 12,查看组件列表,查看组件信息,查看组件提供的服务 -bas ...

  2. js 原型链解密

    1.对象继承 javaScript的继承不是通过class实现的,而是通过“原型对象”(prototype). 1.每一个函数都有一个原型对象 2.每一个实例对象都有一个_proto_属性 2.原型链 ...

  3. ios之好用的Reachability

    #import <Foundation/Foundation.h> @interface NetWorkTool : NSObject + (instancetype)shareInsta ...

  4. Qt Creator快捷键设置

    QT Creator 下载地址 http://download.qt.io/ 一.快捷键配置方法: 进入“工具->选项->环境->键盘”即可配置快捷键. 二.常用默认快捷键:   编 ...

  5. Android-获取Html元素

    第一步导包: implementation 'org.jsoup:jsoup:1.10.3' 第二步:需获取解析的Html: <p> <myfont style="colo ...

  6. PMS权限管理和鉴权过程

    一.权限的管理基础知识 1.系统的权限机制分为:权限解析.权限分配.鉴权.动态添加权限 2.PermissionInfo :  PackageParser.Permission中包含一个对应的Perm ...

  7. Android MediaPlayer SeekTo 在 8.0 版本上优化说明

    android使用 mediaPlayer 播放video视频过程中, 当用户退出当前播放,再从后台恢复播放时,需要跳转到之前退出的时间点继续播放.使用的方法基本都是 SeekTo 之前的时间点,但是 ...

  8. MySQL索引优化看这篇文章就够了!

    阅读本文大概需要 5 分钟. 来源:cnblogs.com/songwenjie/p/9410009.html 本文主要讨论MySQL索引的部分知识.将会从MySQL索引基础.索引优化实战和数据库索引 ...

  9. 每天学点SpringCloud(二):服务注册与发现Eureka

    相信看过 每天学点SpringCloud(一):简单服务提供者消费者调用的同学都发现了,在最后消费者调用提供者的时候把提供者的地址硬编码在了代码中,这样的方式肯定是不行的,今天,我们就是要Eureka ...

  10. 吴恩达机器学习笔记27-样本和直观理解2(Examples and Intuitions II)

    二元逻辑运算符(BINARY LOGICAL OPERATORS)当输入特征为布尔值(0 或1)时,我们可以用一个单一的激活层可以作为二元逻辑运算符,为了表示不同的运算符,我们只需要选择不同的权重即可 ...