zoukankan      html  css  js  c++  java
  • mysql 查询 (二)

    带 any/all 谓词的子查询

    例子:

    1. 查询出成绩比1号学生或3号学生高的其他学生的 的信息(stu)

    查看 stu 表

    方法1:使用 any 谓词

    方法2:使用聚合函数 min()

    2. 查询出成绩比1号学生和3号学生都高的其他学生的 的信息(stu)

    使用 all 谓词

     使用聚合函数 max()


    带有 exists 谓词的子查询

    例子:

    1. 查询未选课程的学生信息(stu中有,而stu_score中没有的学号)

    查看 stu, stu_score表

    使用 not exists

    2. 查询既选修了1号课程又选修了4号课程的学生的学号(stu_score)


    基于派生表的查询(from 型子查询)

    例子:

    1. 用from型子查询实现 select * from stu where sex = 'f' and grade <60:(性别女,分数低于60)


    连接查询

    多表连接查询原理:

    1. 先确定数据要用到哪些表。

    2. 将多个表先通过笛卡尔积变成一个表。

    3. 然后去除不符合逻辑的数据(根据where后的条件)。

     

    1. 不带谓词的连接(很少使用)

    例如:

    连接 stu 和 stu_score

    select stu.*, stu_score.* from stu,stu_score;

    2. 等值连接

    例子:

    (1) 查询选修了1号课程的所有学生的基本信息

    (2) 查询出所有学生的学号,姓名,课程名及各门功课的成绩 (stu,score,course)

    stu,score,course三表如下所示:

    查询:

     

    ---------------------------------------------------------------------------------------------------------------------

    自身连接

    例子

    查询既选修了1号课程又选修了2号课程的学生的学号(score)

    ----------------------------------------------------------------------------------------------------------------------------

    外连接

    例子

    查询出所有学生的学号,姓名,课程号,及各门功课的成绩 (stu,stu_score)包括没有选修任何课程的学生

    stu, stu_score 表

    stu 左连接 stu_score

    stu 右连接 stu_score

     


    集合查询

    1. 并操作:union

    例子:

    (1): 合并 A 和 B,id 对应的 num 求和

    A, B:

    合并:

  • 相关阅读:
    idea 设置默认的maven
    IDEA中Tomcat部署时war和war exploded区别
    所谓的SaaS服务到底是什么?
    java8 Lambda表达式
    java8 :: 用法 (JDK8 双冒号用法)
    idea 本地调试,修改代码,代码自动生效
    nacos配置中心demo
    Logparser 的用法
    android软键盘的一些控制 转来的,格式有点乱
    TranslateAnimation 使用详解
  • 原文地址:https://www.cnblogs.com/ZZG-GANGAN/p/13925171.html
Copyright © 2011-2022 走看看