数据库部分(MySql)_2
分组查询
分组查询通常和聚合函数结合使用,查询条件中每个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的更多相关文章
- 数据库 之MySQL 简单教程
So Easy系列之MySQL数据库教程 1. 数据库概述 1.1. 数据库概述 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和 ...
- Mysql数据库知识-Mysql索引总结 mysql mysql数据库 mysql函数
mysql数据库知识-Mysql索引总结: 索引(Index)是帮助MySQL高效获取数据的数据结构. 下边是自己整理的资料与自己的学习总结,,做一个汇总. 一.真的有必要使用索引吗? 不是每一个性能 ...
- 迁移应用数据库到MySQL Database on Azure
by Rong Yu 有用户问怎么把他们应用的数据库迁移到MySQL Database on Azure上,有哪些方式,有没有需要注意的地方.今天我们来概括介绍一下迁移应用数据库到MySQL Data ...
- Cobar是提供关系型数据库(MySQL)分布式服务的中间件
简介 Cobar是提供关系型数据库(MySQL)分布式服务的中间件,它可以让传统的数据库得到良好的线性扩展,并看上去还是一个数据库,对应用保持透明. 产品在阿里巴巴稳定运行3年以上. 接管了3000+ ...
- Mysql数据库的mysql Schema 究竟有哪些东西& 手工注入的基础要领
#查看数据库版本号 mysql> select @@version; +------------+ | @@version | +------------+ | 5.5.16-log | +- ...
- 2、ABPZero系列教程之拼多多卖家工具 更改数据库为Mysql
因为要部署项目到云服务器,不想在服务器上装SqlServer,所以需要把项目改为Mysql. 项目初始化 1.下载项目压缩包,前面文章已经说到,可以加群到群文件里下载.解压缩下载的项目源码,使用VS2 ...
- 关于数据库管理系统DBMS--关系型数据库(MySQL/MariaDB)
数据库的结构(3种):层次,网状,关系型(用的最多): DBMS的三层模型: 视图层:面向最终用户: 逻辑层:面向程序员或DBA: 物理层:面向系统管理员: 关系型数据库管理系统——RDBMS: 主要 ...
- 数据库【mysql篇】学习笔记
Windows服务 -- 启动MySQL net start mysql-- 创建Windows服务 sc create mysql binPath= mysqld_bin_path(注意 ...
- 数据库之数据库管理篇[mysql]
管理数据库 1.mysql开闭使用篇 mariadb在Linux中首次进入mysql(因为此时还没有创建任何用户,mysql的root并不等效于linux中的root用户) sudo mysql 进入 ...
- 数据库之mysql篇(1)—— 数据库管理系统简介/mysql的安装、配置
说mysql之前,还是先说说数据库. 什么是数据库: 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后 ...
随机推荐
- hbuilder下用plus.barcode.Barcode做二维码扫描,当二维码容器的高度设置过低时,启动扫描会发生闪退
解决办法: 将固定高度改为百分比
- Codeforces Round #421 (Div. 2)
A: 题意:给你一本书共c页,第一天看v0页,第二天看v0+a,第二天看v0+2a以此类推,每天最多看v1页,但是后一天要重复看前一天的后l页. 代码: #include<stdio.h> ...
- 使用python访问网络上的数据
这两天看完了Course上面的: 使用 Python 访问网络数据 https://www.coursera.org/learn/python-network-data/ 写了一些作业,完成了一些作业 ...
- [转] External(and Live) snapshots with libvirt
http://kashyapc.com/ Raw image is a blob of data exposed directly in VM as block device, it can't sn ...
- Windows 10 IoT Core 17101 for Insider 版本更新
除夕夜,微软发布了Windows 10 IoT Core 17101 for Insider 版本更新,本次更新只修正了一些Bug,没有发布新的特性. 已知的问题: F5 driver deploym ...
- mysql兼容emoji表情存取
emoji介绍 Emoji (絵文字,词义来自日语えもじ,e-moji,moji在日语中的含义是字符)是一套起源于日本的12x12像素表情符号,由栗田穣崇(Shigetaka Kurit)创作,最早在 ...
- 目标检测算法(2)SPP-net
本文是使用深度学习进行目标检测系列的第二篇,主要介绍SPP-net:Spatial Pyramid Pooling in Deep ConvolutionalNetworks for Visual R ...
- 吴恩达机器学习笔记15-假设陈述(Hypothesis Representation)
在分类问题中,要用什么样的函数来表示我们的假设呢?此前说过,希望我们的分类器的输出值在0 和1 之间,因 此,我们希望想出一个满足某个性质的假设函数,这个性质是它的预测值要在0 和1 之间.回顾在一开 ...
- Python安装模块的几种方法
一.方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二.方法2: 多文件模块,带setup.py 下载模块包,进行解压,进入模块文件夹,执行:python setup.py i ...
- js代码跑马灯效果-----轮播图字效果!
文字元素: <p id="yc-msg">你有本事来打我呀!</p> js执行代码: function ycMsg() { // 获取 标签 var pOb ...