`
huangronaldo
  • 浏览: 223049 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

二、多表查询及聚合函数

 
阅读更多

多表查询及聚合函数

 

/*查询实例*/
create table com
(
cid int primary key,
cname varchar(10),
ctel varchar(20)
)--
公司表


create table dept
(
did int primary key,
dname varchar(10),
dtel varchar(20),
cno int references com(cid)
)--

部门表


create table emp
(
eid int primary key,
ename varchar(10),
etel varchar(10),
dno int references dept(did)
) --

员工表


/*

插入数据*/
insert into com select 1001,'sun','120'
union select 1002,'IBM','130'
union select 1003,'top','140'
union select 1004,'MS','150'--union
集合运算符,批量操作
insert into dept select 2001,'
财务部','110',1001
union select 2002,'
行政部','120',1001
union select 2003,'
组织部','130',1001
union select 2004,'
人事部','140',1001
insert into emp select 3001,'rose','110',2001
union select 3002,'jack','120',2002
union select 3003,'tom','130',2003
union select 3004,'mike','140',2004
union select 3005,'wilin','150',2002


/*

多表连接查询*/
select * from dept left outer join emp on emp.dno=dept.did


--
左外连接,左表的所有数据以及右表的匹配数据,不匹配显示NULL

select * from emp left outer join dept on emp.dno=dept.did left outer join com on dept.cno=com.cid


--
多表左连接

/*右连接*/
select * from com right outer join dept on com.cid=dept.cno
--
右表中的所有数据,左表中的匹配数据,左表中不能和右表匹配的数据不显示
--
右表中的数据如果在左表中找不到匹配数据,会在对应左表位置显示为NULL

/*内连接*/
create table employee
(
eid int primary key,
ename varchar(10),
reportto int references employee(eid)
)
insert into employee select 1001,'rose',null
union select 1002,'will',1001
union select 1003,'yao',1001
union select 1004,'gigi',1002
select * from employee e inner join employee m on m.eid=e.reportto
--
显示员工与其直接上级的对应关系

/*聚合函数*/
create table goods
(
gid int,
gname varchar(10),
price money
)
insert into goods select 1002,'accp',3456
union select 1002,'bccp',56
union select 1003,'cccp',456

错误事例*/
select gid ,avg(price) as avgp from goods
/*
正确事例*/
select gid ,avg(price) as avgp from goods group by gid

--
单行与聚合不能一起使用,除非一句单行进行分组


/*

/*错误事例*/
select * from goods where price=max(price)
/*
正确事例*/
select * from goods where  price=(select max(price) from goods)
--
聚合函数不能出现在where指令中

 

分享到:
评论

相关推荐

    sql分组查询和聚合函数

    ### SQL 分组查询和聚合函数详解 #### 一、引言 SQL 是一门强大的数据库查询语言,用于管理和操作关系型数据库。其中,分组查询和聚合函数是非常重要的组成部分,能够帮助用户快速有效地从大量数据中提取有用信息。...

    巧用聚合函数在SQL中实现多表查询.pdf

    在多表查询中,巧妙地运用聚合函数,可以使我们更高效地获取所需信息。 首先,我们来看一个实例,该实例要求查询至少选修两门课程的学生的学号、姓名和性别。传统的方法可能涉及到多次连接(JOIN)和DISTINCT关键字...

    oracle日期函数字符函数聚合函数

    Oracle数据库中的日期函数、字符函数和聚合函数是数据库操作中常用的功能,对于数据处理和查询至关重要。以下将详细解释这些函数的用法和示例。 日期函数主要用于处理和操作日期数据,以下是一些主要的Oracle日期...

    MySQL查询排序与查询聚合函数用法分析

    本文将深入探讨MySQL中的查询排序与查询聚合函数的用法。 ### 查询排序 排序是将查询结果按照指定的列或多个列进行升序或降序排列,使得数据更加有序,便于阅读和分析。在MySQL中,`ORDER BY`语句用于实现查询结果...

    H2Database.rar_H2Database聚合函数_H2数据库函数||_h2数据库修改

    它提供了丰富的SQL支持,包括聚合函数,使得在处理大量数据时能够进行高效的统计和分析。本文档将深入探讨H2Database的聚合函数以及如何进行数据库的修改。 一、H2Database聚合函数 聚合函数在SQL中用于对一组值...

    ThinkPHP5联合(关联)查询、多条件查询与聚合查询实例详解

    ThinkPHP5是一个广泛使用的PHP开发框架,它提供了多种数据库操作的方法,特别是在数据查询方面提供了非常丰富的API,方便开发者进行联合查询、多条件查询以及聚合查询等操作。 ### 联合(关联)查询 在ThinkPHP5中,...

    数据库实验多表查询参考答案.docx

    数据库实验多表查询参考答案 本资源提供了数据库实验多表...该资源提供了多表查询的实践操作和解决方案,涵盖了多表查询、联结查询、子查询和聚合函数等技术,能够帮助学生更好地理解和掌握数据库实验多表查询的技术。

    数据库实验一多表查询

    数据库实验一多表查询 本实验报告的主要目的是让学生掌握多表查询的基本概念和语法,熟悉使用 SQL 语句对单表进行查询,并且掌握 SQL Server 所提供的函数。实验中,学生需要使用 SQL 语句对订单数据库 OrderDB 中...

    MySQL数据操作与查询笔记 • 【第6章 聚合函数和分组查询】

    【第6章 聚合函数和分组查询】 在SQL中,聚合函数是用于处理大量数据并返回单个汇总值的关键工具。本章主要涵盖了MySQL中的几个主要聚合函数,如SUM, MAX, MIN, AVG, COUNT,以及如何通过GROUP BY子句进行分组查询...

    SQL CLR聚合函数在环境质量业务数据计算中的应用.pdf

    在环境质量业务数据处理中,SQL CLR聚合函数的应用可极大地提高数据处理的效率和准确性。以下是详细的知识点: 一、SQL CLR聚合函数的定义与应用背景 SQL CLR聚合函数是基于SQL Server 2005引入的SQL CLR编程技术...

    oracle-----oracle多表查询

    在Oracle数据库系统中,多表查询是日常数据处理的关键技能,尤其对于大型企业级应用来说,数据往往分散在多个关联的表中。本篇将深入探讨Oracle中的多表查询技术,包括基本概念、联接类型、子查询以及高级查询技巧。...

    MySQL多表查询详解

    本文介绍了MySQL中的多表查询技术,包括基本概念、如何避免笛卡尔积、统计函数的使用以及子查询的实现方式。掌握这些技术对于高效地管理和查询数据库是非常重要的。随着业务复杂度的增加,多表查询的运用将会越来越...

    多语句表值函数.doc

    如果使用 `COMPUTE BY` 子句,每个符合SELECT条件的组都会有两个结果集:一个是明细行,另一个是包含聚合函数小计的行。如果不使用 `BY` 子句,那么所有明细行将作为一个结果集,而汇总信息则作为另一个结果集。 ...

    mysql数据查询操作-实验训练2.docx

    本实验训练涵盖了 MySQL 数据查询操作的多个方面,包括单表查询、多条件查询、聚合函数查询、内连接查询、外连接查询、复合查询等。通过对实验内容的分析,可以总结出以下知识点: 1. 单表查询: * 了解如何使用 ...

    数据库系统及应用教程-实验项目四、聚合函数及其应用

    二、实验内容 给出xxgl数据库以及学生表、课程表和选课表。进行以下查询: (1)统计学生人数。 (2)查询开设的课程数。 (3)查询选修了课程的学生人数。 (4)查询003号课程的最高分,最低分和平均成绩。 (5)...

    MySQL聚合函数和分组时,使用Python语言和MySQL连接库示例代码.txt

    ### MySQL聚合函数与分组操作及Python实现 #### 一、引言 在数据库操作中,经常需要对数据进行统计分析,例如计算某列的总和、平均值、最大值等,或者根据某一列的不同值来进行分组统计。MySQL提供了丰富的聚合...

    MySQL进阶二 排序窗口函数和聚合窗口函数

    在SQL查询中,排序和聚合是两个基本且至关重要的操作,而窗口函数则将这两个概念提升到一个新的层次,使得数据分析和报表生成更为高效。本篇文章将深入探讨MySQL中的排序窗口函数和聚合窗口函数。 首先,我们来看...

    MySql 中聚合函数增加条件表达式的方法

    Mysql 与聚合函数在一起时候where条件和having条件的过滤...当一个查询包含了聚合函数及where条件,像这样的情况 select max(cid) from t where t.id<999>=5 先分组,再聚合,然后过滤聚合结果大于等于5的结果集 二

    国家开放大学 MySQL数据库应用 实验训练2:数据查询操作

    本实验训练旨在让学生掌握 MySQL 数据库应用中的数据查询操作,包括字段查询、多条件查询、DISTINCT、ORDER BY、GROUP BY、聚合函数查询和连接查询等。 字段查询 在实验 2.1 中,我们学习了如何进行字段查询。例如...

Global site tag (gtag.js) - Google Analytics