JAVA入门到精通-第62讲-复杂查询

每个部门的平均工资是不一样的;

--from子句中使用查询

分析:

1.首先要知道各个部门的平均工资

select  avg(sal), deptno from emp group by deptno

2.把上面的查询结果当做一个临时表对待

两张表,sal进行比较

tem 临时表

 

tem表和emp表关联起来:

给所在部门的平均工资取别名 myavg

不给子查询取别名,会访问不到需要的字段;

--top ID *

top 取5到10个

top 后面的数表示要取出几条记录;

top挑出6条,从emp表来,编号不能在xxx里面 not in

排除不要的4个人,排除前4个人;

top查询:

100万条记录,1-2秒钟可以出结果

identity(1, 1)表示该字段testID字段自增长,从1,每次+1

通过这条语句进行疯狂地复制,用于压力测试;

insert into test (testName, testpass)

           select  testName, testpass 

            from   test;

比如用于邮件服务器的压力测试;

 

字段越多,速度越慢;上百万的数据,分页查询,越到最后,速度越慢;

--如何删除一张表中的重复记录

 1.select  distinct  *  into  #temp3 from  cat

 2.delete  from  cat

  3.insert  into  cat  select  * from  #temp3

  4.drop  table #temp3

1.把cat表的记录distinct后的结果放入到临时表#temp3中

2.把cat表的记录清空

3.把#temp表的数据(没有重复的记录),插入到cat表中 ;

4.删除临时表#temp3

--左外连接和右外连接

-要求没有上级的人名字也要显示出来null

 left  join 左外连

 where换成on

select  w.ename, b.ename

from  emp  w left join  emp  b on  w.mgr=b.empno

左外连接:

指左边的表的记录全部显示,

如果 没有匹配的记录就用null填

emp   w 表的记录全部出现;

--内连接:只有匹配上的才会出现

inner  join xx  on

--左外连接和右外连接

--思考题:显示公司每个员工和他的上级领导的名字

--内连接的处理方式(内连接只显示匹配的信息)

select worker.ename"员工名字",boss.ename"领导名字" from emp
worker,emp boss where worker.mgr=boss.empno

--思考题:显示公司每个员工和他的上级领导的名字,没有上级领导的也要显示出来

--左外连接:指如果左边的表记录全部显示,如果没有匹配的记录,就用null填写

select worker.ename"员工名字",boss.ename"领导名字" from emp
worker left join emp boss on worker.mgr=boss.empno

--右外连接:指如果右边的表记录全部显示,如果没有匹配的记录,就用null填写

select worker.ename"员工名字",boss.ename"领导名字" from emp
worker right join emp boss on worker.mgr=boss.empno

原文地址:https://www.cnblogs.com/xuxaut-558/p/10035752.html

时间: 11-29

JAVA入门到精通-第62讲-复杂查询的相关文章

Java入门到精通——框架篇之Hadoop概述

一.Hadoop来历 Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明了倒排索引算法,通过加入了Map-reduce的思想来计算Page Rank,通过不断的演变Google带给我们了GFS.Map-Reduce.Bigtable这三大的关键技术和思想.由于Google的这些技术没有开源代码.有个人就模仿Google实现了类似Google全文搜索功能的框架Lucene,它提供了全文检索引擎的架构,包

《Java 从入门到精通(第二版)》 观书有感

笔者今天认真试读了下此书,首先,按照笔者看书的习惯来说,喜欢先看看前面的部分.作者在前言里放了张学习java的路线图,是一个比较标准的学习流程.可是为什么在编程进阶那里放了个设计模式,然后下次才是抽象类与接口,包及访问权限(这名字和java编程思想好熟悉啊),个人认为,设计模式不应该放上来的,可能作者这里的设计模式有其它的含义吧.         全书文字和图像布局都比较合理,看着也挺舒服的.并且发现书还不是一个人写的,不由好几个不同的人共同撰写的.接下来就是目录了,从目录的结构来看,知识点很全

Java Web 从入门到精通(部分练习)

<Java Web 从入门到精通>——这是老师给我们的,我发现这里面的东西很全面,也很详细,不愧是老师给我们的.我想这周的作业按照上面的做一些练习. 换行标记符<br>    标记开头<p>结束</p>    居中标记<center> 6个标题标记<h1>至<h6>数字越小,字体越大 无序列表标记<ul>   有序列表标记<ol> 表格标记<table> width border表格边框

Java网络编程从入门到精通(4):DNS缓存

在通过DNS查找域名的过程中,可能会经过多台中间DNS服务器才能找到指定的域名,因此,在DNS服务器上查找域名是非常昂贵的操作.在Java中为了缓解这个问题,提供了DNS缓存.当InetAddress类第一次使用某个域名(如www.csdn.net)创建InetAddress对象后,JVM就会将这个域名和它从DNS上获得的信息(如IP地址)都保存在DNS缓存中.当下一次InetAddress类再使用这个域名时,就直接从DNS缓存里获得所需的信息,而无需再访问DNS服务器. DNS缓存在默认时将永

2017最新技术java高级架构、千万高并发、分布式集群、架构师入门到精通视频教程

* { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩 展.高性能.高并发.性能优化.Spring boot.Redis.ActiveMQ.Nginx.Mycat.Netty.Jvm大型分布 式项目实战视频教程 视频课程包含: 高级Java架构师包含:Spring boot.Spring  cloud.Dubbo.Redis.ActiveMQ.Nginx.Mycat

(升级版)Spark从入门到精通(Scala编程、案例实战、高级特性、Spark内核源码剖析、Hadoop高端)

本课程主要讲解目前大数据领域最热门.最火爆.最有前景的技术——Spark.在本课程中,会从浅入深,基于大量案例实战,深度剖析和讲解Spark,并且会包含完全从企业真实复杂业务需求中抽取出的案例实战.课程会涵盖Scala编程详解.Spark核心编程.Spark SQL和Spark Streaming.Spark内核以及源码剖析.性能调优.企业级案例实战等部分.完全从零起步,让学员可以一站式精通Spark企业级大数据开发,提升自己的职场竞争力,实现更好的升职或者跳槽,或者从j2ee等传统软件开发工程

ASP.NET MVC4入门到精通系列目录汇总(转)

序言 最近公司在招.NET程序员,我发现好多来公司面试的.NET程序员居然都没有 ASP.NET MVC项目经验,其中包括一些工作4.5年了,甚至8年10年的,许多人给我的感觉是:工作了4.5年,Web开发依旧停留在拖控件的水平,最最基本的算 法,递归.排序(我不要求快速排序,你会冒泡就行了)都不会,数据库方面,很基础的SQL都写不出,分组过滤也不会,更别提性能了,问下数据优化经验,除 了回答加索引基本就没下文了.当然,一些过去N年都是做ASP.NET WebForm开发的,不熟悉MVC,那也没

JBPM5.4视频教程从入门到精通

JBPM5.4视频教程从入门到精通 基于java及JBPM5.4流程引擎技术开发.鉴于JBPM5.4版本较新,而目前网上基本上没有对应的简单实例,更不要说负责案例及项目设计. 本课程是在国内没有任何中文文档的情况下,完全靠翻译国外的英文文档并结合项目应用进行开发的,是一套绝对的经典课程. JBPM是属于特有领域的专项技术,学习成本较高,目前掌握该技术的程序员北上广地区待遇月薪至少是1万2以上 JBPM ,全称是Java Business Process Management(业务流程管理),它是

软件測试自学指南---从入门到精通

近来,软件測试行业发展迅速,企业越来越重视測试了.越来越多的人增加了測试大军中,非常多人也想通过自学来学习软件測试技术增加这个行业,可是如今软件測试的书籍越来越多,也良莠不齐,并且软件測试涉及的技术也越来越多.本文主要说明的是从事软件測试行业须要必备的知识,以及该怎样学习,主要给大家提供一些比較优秀的书籍,并给出学习的顺序.希望通过阅读本文,读者能够明白该怎样学习測试,并学习哪些知识.因为仅是个人建议,如有错误不妥的地方,敬请提出批评. 一.软件測试基础知识 要想进入測试这个行业,就必需要了解什

Python基本语法[二],python入门到精通[四]

在上一篇博客Python基本语法,python入门到精通[二]已经为大家简单介绍了一下python的基本语法,上一篇博客的基本语法只是一个预览版的,目的是让大家对python的基本语法有个大概的了解.之所以将python的基本语法分为两部分,是因为园子里大部分人都是有编程基础的,所以在学习Python的时候可以先出个预览版的,预览版都是根据Python的语法与其他语言(java/C#/php)比较类似又不完全一样的地方,便于大家对Python有个基本理解.在大家差不多有个了解以后,我们再深入讲讲