`

数据库学习笔记(1)——内连接、左(右)连接、全连接

 
阅读更多

一、JOIN、LEFT JOIN 、RIGHT JOIN 和 FULL JOIN

1、涉及的三张表

     1)学员表(学号、姓名、单位、年龄)      S(sno,sname,sdepart,sage)

     2)课程(课程编号、课程名)               C(cno,cname)

     3)成绩表(学号、课程编号、成绩)    SC(sno,sname,grade)

 

2、表中的数据

    1)SELECT * FROM S

 

 

 注:S表中sno=4 的员工在SC表中没有对应记录。

 

   2)SELECT * FROM C

 

 3)SELECT * FROM SC

 

注:SC表中sno=5在S表中没有对应记录。

 

3、区别与联系

1)连接(内连接)

--JOIN(INNER JOIN) 只返回两张表连接列的匹配项
SELECT * FROM S JOIN  SC ON S.sno=SC.sno
SELECT * FROM S INNER JOIN SC ON S.sno=SC.sno

 

2)左连接

--LEFT JOIN  左连接  即使右表中没有匹配,也从左表返回所有的行
SELECT * FROM S LEFT JOIN SC ON S.sno=SC.sno

3)右连接
--RIGHT JOIN 右连接  即使左表中没有匹配,也从右表返回所有的行
SELECT * FROM S RIGHT JOIN SC ON S.sno=SC.sno

4)全连接

--FULL JOIN  返回两张表中的行 LEFT JOIN+RIGHT JOIN
SELECT * FROM S FULL JOIN SC ON S.sno=SC.sno

 

二、GROUP BY 的用法

--GROUP BY 的用法 用于结合合计函数,根据一个或多个列对结果集进行分组

--查询每个学员选修的课程数
SELECT sno,选修课程数=count(cno)FROM SC GROUP BY sno

 

三、HAVING 的用法

-- HAVING 的用法(增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用)
--查询选修课程数大于2的员工号
--1.错误
SELECT  sno,选修课程数=COUNT(cno) FROM SC GROUP BY sno WHERE COUNT(cno)>2
--2.正确
SELECT  sno,选修课程数=COUNT(cno) FROM SC GROUP BY sno HAVING COUNT(cno)>2

 

分享到:
评论

相关推荐

    学习笔记4_学习搭建自己的网络——MNIST在caffe上进行训练与学习-薛开宇1

    本篇学习笔记主要介绍了如何在Caffe框架下搭建和训练用于识别手写数字的MNIST数据库的网络模型。MNIST手写字体库是一个经典的机器学习数据集,常用于验证和比较不同深度学习算法的性能。在Caffe中实现MNIST训练,...

    django 学习笔记(1)—— python和web开发框架(csdn)————程序.pdf

    Web开发框架是构建Web应用程序的工具集合,它简化了开发过程,提供了诸如路由、模板渲染、数据库集成等核心功能。Django作为Python的一个流行Web框架,是基于MTV(Model-Template-View)模式设计的,旨在快速、安全...

    SSM实战项目——Java高并发秒杀API,详细流程+学习笔记.zip

    这个Java实战项目提供了详细的步骤和学习笔记,涵盖了从需求分析、架构设计到代码实现的全过程,是提升Java并发编程和分布式系统设计能力的宝贵资源。通过实际操作,你可以深入了解SSM框架的使用以及在高并发场景下...

    java学习笔记(文字整理版).doc

    ### Java学习笔记——Java与Hibernate入门精要 #### 一、Java学习笔记概述 本学习笔记旨在帮助初学者系统地掌握Java语言的基础知识,并通过实际案例深入理解Hibernate框架的应用。通过对核心概念和技术点的详细解释...

    大三数据库(sql)专业课课时作业

    在数据库学习中,以下是一些重要的知识点: 1. 数据库模型:了解关系型数据库模型,如ER(实体关系)模型,理解实体、属性、关系的概念。 2. SQL基础:学习SQL语句的四大基本操作——SELECT(查询)、INSERT(插入...

    MySQL学习笔记(2)——索引

    单表查询主要关注索引的选择和使用,而双表查询时,要关注连接类型,如内连接和左外连接,以及如何有效地利用索引来减少数据扫描。 总的来说,理解并合理使用索引是优化MySQL查询性能的关键,需要根据实际情况权衡...

    cloud_note_笔记系统_cloud_

    在数字化时代,云笔记系统已经成为了人们日常学习、工作和生活中的重要工具。"cloud_note"作为一款笔记系统,其核心功能之一便是用户登录注册,这一环节是连接用户与系统的关键桥梁。本文将深度探讨云笔记系统中的...

    SSM 框架整合教程-尚硅谷学习笔记 2022 年

    通过阅读"SSM框架整合教程——尚硅谷学习笔记 2022 年.md"或"SSM框架整合教程——尚硅谷学习笔记 2022 年.pdf",你可以深入学习如何配置SSM环境,创建基本的CRUD操作,以及如何优化和扩展SSM应用。这些知识点不仅...

    数据库项目讲解_gotxei_数据库项目_

    在“数据库项目讲解_gotxei_数据库项目_”这个资源中,作者gotxei为我们提供了一个深入学习数据库项目的宝贵资料,包括源程序和详细的笔记,帮助我们理解和实践数据库项目的开发。 首先,我们要理解数据库项目的...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

    自我学习笔记--LUA;python:网络编程等

    【标题】中的“自我学习笔记--LUA;python:网络编程等”表明这是一份包含LUA和Python语言,特别是关于网络编程的学习资料。LUA和Python都是编程语言,广泛应用于游戏开发、脚本编写、自动化任务以及网络服务等领域。 ...

    偌依框架的使用学习笔记

    ### 偌依框架的使用学习笔记 #### 一、若依框架的介绍与说明 若依框架是一款基于Spring Boot、Spring Security、JWT、Vue和Element的全开源快速开发平台,旨在提供高效的前后端分离解决方案。它具备以下特点: 1....

    javaweb笔记+狂神+知识总结

    7. **JNDI(Java Naming and Directory Interface)**:JNDI提供了一种标准的方式来查找和访问各种命名和目录服务,常用于在JavaWeb应用中查找数据库连接池、邮件服务器配置等资源。 8. **DAO(Data Access Object...

    MyBatis学习笔记—代理DAO开发

    ### MyBatis学习笔记——代理DAO开发 #### 一、概述 在Java开发领域中,MyBatis是一款非常流行的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果...

    ASP毕业设计——ASP+mysql同学录设计与实现(源代码+论文).zip

    【ASP毕业设计——ASP+MySQL同学录设计与实现(源代码+论文)】是一个典型的Web应用项目,旨在帮助学生理解并实践ASP(Active Server Pages)技术与MySQL数据库结合的运用。这个项目涵盖了从网页设计、数据库搭建到...

    Qt学习全程笔记—版权所有

    这份学习笔记包含了PPT、DOC和DOCX三种格式,适合不同的阅读习惯。QT.doc和QT.docx是笔记文本,详细记录了每个主题的学习要点和实践心得,而QT.ppt则包含了讲课的幻灯片,图文并茂地展示了关键概念和技术。 通过这...

    DeepID2——强大的人脸分类算法笔记.docx

    其包含的四层卷积结构,每层后接最大池化层,除最后一层全连接外,使得网络能够从图像中提取更加抽象和复杂的特征。第三层的参数共享设计则有效控制了模型的复杂度,提高了特征提取的效率。而DeepID2层的引入,更是...

    CNN 学习笔记

    ### CNN学习笔记——可变形卷积网络 #### 引言 传统的卷积神经网络(CNN)采用固定形状的卷积核来提取图像特征,这种固定形状的卷积核虽然能够处理大多数情况下的图像特征提取任务,但对于那些形状不规则的目标来...

    遇见狂神说的全套java视频笔记

    这些笔记可能涵盖了Java的基础知识,如语法、类与对象、封装、继承、多态等核心概念,同时也可能包括了进阶主题,如异常处理、集合框架、IO流、多线程、网络编程、数据库连接以及设计模式等。 1. **Java基础**:...

Global site tag (gtag.js) - Google Analytics