Java阶段二Day10

news2024/9/23 12:26:45

Java阶段二Day10

文章目录

  • Java阶段二Day10
    • DQL
      • GROUP BY 分组
        • 按单字段分组
        • 按多字段分组
        • 按照聚合函数的结果排序
      • HAVING子句
        • 问题
        • 错误
        • 原因
        • HAVING子句的应用
        • HAVING和WHERE的区别
      • 子查询 (SubQuery)
        • 概念
        • 应用场景
        • 子查询分类
        • 在DQL中使用子查询
          • 单行单列子查询
          • 多行单列子查询
        • 在DML语句中使用子查询
        • 在DDL语句中使用子查询
    • 关联查询(重点)
      • 定义
      • 关联关系
      • 关联关系分类
      • 连接条件
      • 语法
      • 连接条件与过滤条件同时满足
      • N张表关联
      • 综合练习
        • 题干
        • 答案
      • 关联查询中使用聚合函数
      • 综合练习
        • 题干
        • 答案

DQL

GROUP BY 分组

GROUP BY子句可以将结果集按照指定字段值相同的记录进行分组,配合聚合函数可以实现组内统计。

  • 在SELECT子句中出现聚合函数时,那么不在聚合函数中的字段都要出现在GROUP BY子句中。
  • GROUP BY子句是配合聚合函数使用的,如果SELECT子句中没有聚合函数,通常不写GROUP BY。

按单字段分组

  • 查看每种职位的老师平均工资是多少?

    SELECT AVG(salary),title
    FROM teacher
    GROUP BY title
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JhDcVabn-1682504449641)(C:\Users\TEACHER\IdeaProjects\BirdBoot2303\数据库笔记\image-20230426091647261.png)]

  • 查看每个班级各多少人?

    班级号相同的学生应该是同一个班,因此按照班级号相同的记录分组,组内求记录数
    SELECT COUNT(*),class_id
    FROM student
    GROUP BY class_id
    
  • 查看学生每种职位各多少人,以及最大生日和最小生日?

    SELECT COUNT(*) '人数',MIN(birth) '最大生日',MAX(birth) '最小生日',job
    FROM student
    GROUP BY job
    

按多字段分组

GROUP BY后面指定多个字段时,分组方式为:这些字段值都一样的记录看作一组

  • 查看同班级同性别的学生分别多少人?

    SELECT COUNT(*),class_id,gender
    FROM student
    GROUP BY class_id,gender   班级号相同且性别相同的记录分为一组
    
  • 查看每个班每种职位各多少人?

    SELECT COUNT(*),class_id,job
    FROM student
    GROUP BY class_id,job
    

按照聚合函数的结果排序

  • 查看每个科目老师的平均工资排名?

    SELECT AVG(salary),subject_id
    FROM teacher
    GROUP BY subject_id
    ORDER BY AVG(salary) DESC
    
    好的书写习惯:当SELECT子句中出现了函数或表达式时,通常应当为该字段添加别名。
               ORDER BY子句也可以根据别名对该结果集按字段排序
    
    SELECT AVG(salary) avg_sal,subject_id
    FROM teacher
    GROUP BY subject_id
    ORDER BY avg_sal DESC
    

HAVING子句

HAVING子句用于分组中的过滤条件

问题

  • 查看每个科目老师的平均工资?但是仅查看平局工资高于6000的那些.

    SELECT AVG(salary),subject_id
    FROM teacher
    WHERE AVG(salary)>6000
    GROUP BY subject_id
    
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qt6Wi7lo-1682504449643)(C:\Users\TEACHER\IdeaProjects\BirdBoot2303\数据库笔记\image-20230426100706482.png)]

错误

聚合函数不能在WHERE子句中使用

原因

WHERE子句中使用聚合函数错误的原因是:过滤时机不对

  • WHERE的过滤时机是在第一次检索表中每一条记录时进行过滤的,用于确定结果集的记录
  • 聚合函数的统计结果进行过滤,前提:
    • 先将表中数据检索出结果集
    • 才能将结果集分组
    • 分组后才能根据聚合函数统计结果
    • 最后再根据统计结果过滤
  • 聚合函数的过滤是在WHERE之后进行的

HAVING子句的应用

HAVING子句是紧跟在GOURP BY子句之后,用于对分组进行过滤的子句

HAVING和WHERE的区别

  • WHERE是在第一次检索表数据时用于添加过滤条件。确定结果集
  • HAVING是在GROUP BY之后(将结果集分组之后)添加过滤条件的,用于确定分组
  • 过滤时机不同,作用不同

  • 查看每个科目老师的平均工资?但是仅查看平局工资高于6000的那些.

    								子句执行顺序
    SELECT AVG(salary),subject_id		4	符合要求的分组统计对应信息
    FROM teacher						1	数据来源,数据从teacher表查询
    GROUP BY subject_id					2   确定分组,按科目分组(比如6)
    HAVING AVG(salary)>6000				3   过滤分组,比如只有3组符合要求
    
  • 查看每个科目老师的平均工资,前提是该科目老师最高工资要超过9000

    								执行顺序
    SELECT AVG(salary),subject_id	4	查看符合要求的分组的统计结果
    FROM teacher					1	确定数据来源
    GROUP BY subject_id				2	确定分成几组
    HAVING MAX(salary)>9000			3	确定哪些分组符合要求
    
    
  • 查看科目老师的工资总和是多少?前提是该科老师的平均奖金要高于4000.

    SELECT SUM(salary),subject_id
    FROM teacher
    GROUP BY subject_id
    HAVING AVG(IFNULL(comm,0))>4000
    
  • 查看各科目男老师的平均工资是多少?前提是该科目老师最低工资高于4000.

    SELECT AVG(salary),subject_id
    FROM teacher
    WHERE gender='男'
    GROUP BY subject_id
    HAVING MIN(salary)>4000
    

子查询 (SubQuery)

概念

嵌套在一个SQL语句中的DQL语句,该DQL被称为子查询

应用场景

  • DQL中使用子查询
    • 在SELECT子句中,将当前子查询结果作为一个字段展示
    • 在WHERE子句中,将当前子查询结果作为过滤条件使用(最常用的场景)
  • DML中使用:将一个查询结果集用于增删改操作
  • DDL中使用
    • 在创建表时可以将一个子查询结果集当作表创建
    • 在创建视图时使用一个子查询结果集

子查询分类

  • 单行单列子查询,该子查询的结果集只有一个值
  • 多行单列子查询,该子查询结果集是多个值
  • 多列子查询(多行多列子查询|多行多列子查询),将该子查询当作一张表使用

在DQL中使用子查询

单行单列子查询
  • 查看比范传奇工资高的老师都有谁?

    1:未知条件:范传奇的工资是多少?
    SELECT salary FROM teacher WHERE name='范传奇'  ==>3000
    
    2:谁的工资高于3000?
    SELECT name,salary FROM teacher WHERE salary>3000
    
    以java的思想
    int sal = SELECT salary FROM teacher WHERE name='范传奇';   sal=>3000
    使用该变量
    SELECT name,salary FROM teacher WHERE salary>sal
    合并代码
    SELECT name,salary 
    FROM teacher 
    WHERE salary>SELECT salary FROM teacher WHERE name='范传奇'
    
    在数据库中,被嵌套的DQL需要使用()括起来
    SELECT name,salary 
    FROM teacher 
    WHERE salary>(SELECT salary FROM teacher WHERE name='范传奇')
    
    
  • 查看哪些老师的工资是高于平均工资的?

    1:未知条件  先查询老师的平均工资是多少?
    SELECT AVG(salary) FROM teacher
    2:查看高于平均工资
    SELECT name,salary
    FROM teacher
    WHERE salary>(SELECT AVG(salary) FROM teacher)
    
    
  • 查看和’李费水’在同一个班的学生都有谁?

    1:查看李费水的班级号
    SELECT class_id FROM student WHERE name='李费水'
    2:查看与该人班级号一致的学生
    SELECT name,class_id
    FROM student
    WHERE class_id=(SELECT class_id FROM student WHERE name='李费水')
    
    
  • 查看工资最高的老师的工资和奖金是多少?

    1:最高的工资是多少?
      SELECT MAX(salary) FROM teacher
    2:查看工资为最高工资老师的信息
      SELECT name,salary,comm
      FROM teacher
      WHERE salary=(SELECT MAX(salary) FROM teacher)
    
    
多行单列子查询

多行单列子查询是可以检索出若干个值。因此作为过滤条件使用时

  • 判断等值,要配合:IN,NOT IN使用。等于是不能同时等于好几个值的,只能同于其中之一
  • 判断>,>=,<,<=时,要搭配ANYALL使用
    • >ANY(列表):大于列表其中之一,判断标准:大于列表最小值即可
    • >ALL(列表):大于列表所有,判断标准:大于列表最大值
    • <ANY(列表):小于最大的即可
    • <ALL(列表):小于最小的即可
  • 查看与"祝雷"和"李费水"在同一个班的学生都有谁?

    1:未知条件:"祝雷""李费水"的班级号是多少
    SELECT class_id FROM student WHERE name IN('祝雷','李费水')
    2:查看与他们班级号相同的学生
    SELECT name,class_id
    FROM student
    WHERE class_id=(SELECT class_id FROM student WHERE name IN('祝雷','李费水'))
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pUqyFxJN-1682504449645)(C:\Users\TEACHER\IdeaProjects\BirdBoot2303\数据库笔记\image-20230426113358935.png)]

    错误原因,两个学生的班级号不同,而没有任何一个学生的班级号可以同时等于两个不同的值

    SELECT name,class_id
    FROM student
    WHERE class_id IN (SELECT class_id 
                       FROM student 
                       WHERE name IN('祝雷','李费水'))
    
  • 查看比教科目2和科目4老师工资都高的老师都有谁?

    1:查看科目2和科目4老师工资都是多少
    SELECT salary FROM teacher WHERE subject_id IN (2,4)
    
    2:查看高于他们所有人的工资都有谁?
    SELECT name,salary,subject_id
    FROM teacher
    WHERE salary>ALL(SELECT salary FROM teacher WHERE subject_id IN (2,4))
    
    另一种思路
    SELECT name,salary,subject_id
    FROM teacher
    WHERE salary>(SELECT MAX(salary) FROM teacher WHERE subject_id IN(2,4))
    

在DML语句中使用子查询

  • 给与’范传奇’负责同一科目的所有老师工资涨500

    UPDATE teacher
    SET salary=salary+500
    WHERE subject_id=(SELECT subject_id 
                      FROM teacher
                      WHERE name='范传奇')
    

在DDL语句中使用子查询

可以将一个查询结果集当作一张表创建出来

  • 创建一张表,该表中记录了每个科目老师的工资情况,要求展示:最高,最低,总和和平均工资以及该科目id

    1:查询出对应的数据
    SELECT MAX(salary),MIN(salary),SUM(salary),AVG(salary),subject_id
    FROM teacher
    GROUP BY subject_id
    
    2:创建表
    CREATE TABLE teacher_salary_info(
    	max_salary DOUBLE(8,4),
        min_salary DOUBLE(8,4),
        sum_salary DOUBLE(8,4),
        avg_salary DOUBLE(8,4),
        subject_id INT
    )
    3:插入数据
     INSERT INTO ....  写若干行
     
     
    实际写法
    CREATE TABLE teacher_salary_info
    AS
    SELECT MAX(salary) max_sal,MIN(salary) min_sal,
           SUM(salary) sum_sal,AVG(salary) avg_sal,subject_id
    FROM teacher
    GROUP BY subject_id
    
    当子查询的SELECT子句包含函数或表达式时,应当为其取别名,此时创建的表中该字段名会使用指定的别名
     
     
    

关联查询(重点)

定义

联合多张表查询数据,查询结果集中的字段来自与多张表。

关联关系

表与表中的记录会产生对应关系,用于我们联合查询。

关联关系分类

  • 一对一:A表的一条记录仅唯一对应B表中的一条记录
  • 一对多:A表中的一条记录对应B表中的多条记录
  • 多对多:当A与B表双向看到都是一对多时就是多对多关系

连接条件

在DQL中我们会指定连接条件,用来让数据库在查询中知道两张表中记录与记录的对应关系,从而查询出对应的记录。

关联查询中连接条件通常不可以忽略或缺失,否则会产生笛卡尔积

连接条件的个数:N张表联合查询就要有至少N-1个连接条件

语法

SELECT 字段
FROM 表A,表B[,表C,...]
WHERE A表与B表的连接条件
AND   [其他表的连接条件]
AND   过滤条件

注意:连接条件要同时满足,且如果还有过滤条件时,也要与过滤条件同时满足

  • 查看每个老师以及其负责课程科目名?

    SELECT teacher.name,teacher.age,subject.name
    FROM teacher,subject
    WHERE teacher.subject_id=subject.id
    
    上述代码缺点:为了区分表中的字段,写法:表名.字段名。 
               如果表名较长,写起来十分累赘
    解决办法:在FROM子句中指定表名时为表取别名。此时区分表字段时可写作:表别名.字段名
    
    SELECT t.name,t.age,s.name
    FROM teacher t,subject s
    WHERE t.subject_id=s.id
    
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-826AzLNi-1682504449646)(C:\Users\TEACHER\IdeaProjects\BirdBoot2303\数据库笔记\image-20230426142310165.png)]

  • 不指定连接条件,会产生笛卡尔积

    SELECT t.name,t.age,s.name
    FROM teacher t,subject s
    

    笛卡尔积的产生

    当不指定连接条件时,数据库在进行关联查询时,仍然会用A表一条记录与B表每条记录连接一次,并产生结果集中的一条记录.此时的数据量为A表记录数与B表记录数的乘积.

    当表中数据量大时,这样的结果集开销巨大,甚至可能导致服务器宕机.因此要尽量避免.

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wI3pVaTu-1682504449647)(C:\Users\TEACHER\IdeaProjects\BirdBoot2303\数据库笔记\image-20230426143203100.png)]

  • 查看班级的名称和对应的班主任(老师)是谁?

    1:确定数据来自哪些表,确定FROM子句
      class表和teacher表
      FROM class c,teacher t
    2:当表明确了,就要确定连接条件
      班级表中teacher_id的值记录了班主任的id应当对应teacher表的老师id
      c.teacher_id=t.id
      
      SELECT c.name,t.name
      FROM class c,teacher t
      WHERE c.teacher_id=t.id
    
    
    
  • 查看每个学生的名字,年龄,以及其所在的班级名称和所在楼层

    1:确定数据来自哪些表
      class表和student表
      FROM class c,student s
    2:连接条件确定两张表中记录的对应关系
      c.id=s.class_id
      
      
      SELECT s.name,s.age,c.name,c.floor
      FROM class c,student s
      WHERE c.id=s.class_id
    
    

连接条件与过滤条件同时满足

  • 王克晶是哪个班的班主任?列出:班级名称,楼层,老师名称,工资

    1:数据来自哪些表
      class c,teacher t
    
    2:连接条件
      c.teacher_id=t.id
      
    3:过滤条件
      老师的名字是王克晶
      
      
      SELECT c.name,c.floor,t.name,t.salary
      FROM class c,teacher t
      WHERE c.teacher_id=t.id	连接条件
      AND t.name='王克晶'		  过滤条件
                                连接条件与过滤条件要同时满足
    
    
    
  • 查看三年级的班级班主任都是谁?要列出班级名称,所在楼层,班主任名字和工资

    SELECT c.name,c.floor,t.name,t.salary
    FROM teacher t,class c
    WHERE t.id=c.teacher_id		 连接条件
    AND c.name LIKE '3年级%'      过滤条件
    
  • 查看来自南京的学生都有谁?要列出城市名字,学生名字,年龄,性别

    SELECT l.name,s.name,s.age,s.gender
    FROM location l,student s
    WHERE l.id=s.location_id
    AND l.name='南京'
    
  • 查看5年级的中队长都有谁?要列出学生名字,年龄,性别,职位和所在班级的名字以及楼层

    SELECT s.name,s.age,s.gender,s.job,c.name,c.floor
    FROM class c,student s
    WHERE c.id=s.class_id
    AND c.name LIKE '5年级%'
    AND s.job='中队长'
    
    

N张表关联

N张表关联查询,至少要有N-1个连接条件

  • 查看"范传奇"所带班级的学生都有谁?要列出:学生名字,年龄,班级名称,老师名字

    1:数据来自哪些表
      student s,class c,teacher t
      
    2:连接条件
      3张表关联至少要有2个连接条件
      班级表与学生表的关系:c.id=s.class_id
      班级表与老师表的关系:c.teacher_id=t.id
      
    3:过滤条件  
      老师的名字"范传奇"
      
      SELECT s.name,s.age,c.name,t.name
      FROM student s,class c,teacher t
      WHERE s.class_id=c.id
      AND c.teacher_id=t.id
      AND t.name='范传奇'
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N2121olp-1682504449648)(C:\Users\TEACHER\IdeaProjects\BirdBoot2303\数据库笔记\image-20230426154014457.png)]

  • 查看1年级1班的同学的名字和来自的城市

    SELECT s.name,l.name,c.name
    FROM class c,student s,location l
    WHERE c.id=s.class_id
    AND s.location_id=l.id
    AND c.name='1年级1班'
    

综合练习

题干

1.查看来自北京的学生都是谁?
2."英语"的老师都是谁?
3.刘苍松所带班级的学生都有谁?
4.教语文的老师所带的班级有哪些?
5.王克晶所带的班级学生都来自哪些城市(去重)?
6.3年级的几个班主任都教哪些课程?
7.工资高于10000的老师所带班里的大队长都是谁?
8."李费水"的班主任教哪门课?
9.所在4楼的班里的大队长和中队长以及班主任都是谁?
10.全校最小的同学的班主任是谁?

答案

1.查看来自北京的学生都是谁?
  SELECT s.name,l.name
  FROM student s,location l
  WHERE s.location_id=l.id
  AND l.name='北京'
  
2."英语"的老师都是谁?
  SELECT t.name,su.name
  FROM teacher t,subject su
  WHERE t.subject_id=su.id
  AND su.name='英语'
  
3.刘苍松所带班级的学生都有谁?
  SELECT t.name,c.name,s.name
  FROM teacher t,class c,student s
  WHERE t.id=c.teacher_id
  AND c.id=s.class_id
  AND t.name='刘苍松'

4.教语文的老师所带的班级有哪些?
  SELECT su.name,t.name,c.name
  FROM subject su,teacher t,class c
  WHERE su.id=t.subject_id
  AND t.id=c.teacher_id
  AND su.name='语文'

5.王克晶所带的班级学生都来自哪些城市(去重)?
  SELECT DISTINCT l.name
  FROM teacher t,class c,student s,location l
  WHERE t.id=c.teacher_id
  AND c.id=s.class_id
  AND l.id=s.location_id
  AND t.name='王克晶'

6.3年级的几个班主任都教哪些课程?
  SELECT c.name,t.name,su.name
  FROM class c,teacher t,subject su
  WHERE c.teacher_id=t.id
  AND t.subject_id=su.id
  AND c.name LIKE '3年级%'

7.工资高于10000的老师所带班里的大队长都是谁?
  SELECT t.name,c.name,s.name
  FROM teacher t,class c,student s
  WHERE t.id=c.teacher_id
  AND c.id=s.class_id
  AND t.salary>10000
  AND s.job='大队长'

8."李费水"的班主任教哪门课?
  SELECT s.name,c.name,t.name,su.name
  FROM student s,class c,teacher t,subject su
  WHERE s.class_id=c.id
  AND c.teacher_id=t.id
  AND t.subject_id=su.id
  AND s.name='李费水'
  
9.所在4楼的班里的大队长和中队长以及班主任都是谁?
  SELECT s.name,s.job,c.name,c.floor,t.name
  FROM student s,class c,teacher t
  WHERE s.class_id=c.id
  AND c.teacher_id=t.id
  AND c.floor=4
  AND s.job IN('大队长','中队长')
  
  SELECT s.name,s.job,c.name,c.floor,t.name
  FROM student s,class c,teacher t
  WHERE s.class_id=c.id
  AND c.teacher_id=t.id
  AND c.floor=4
  AND (s.job='大队长' OR s.job='中队长')

10.全校最小的同学的班主任是谁?
   SELECT s.name,s.birth,c.name,t.name
   FROM student s,class c,teacher t
   WHERE s.class_id=c.id
   AND c.teacher_id=t.id
   AND s.birth=(SELECT MAX(birth) FROM student)
   
   有两个生日最小的,可以去重
   SELECT DISTINCT s.name,s.birth,c.name,t.name
   FROM student s,class c,teacher t
   WHERE s.class_id=c.id
   AND c.teacher_id=t.id
   AND s.birth=(SELECT MAX(birth) FROM student)

关联查询中使用聚合函数

将关联查询的结果集进行统计

  • 查看范传奇所带班级的学生共多少人?

    1:查询出参与统计的记录
      范传奇所带班级的所有学生信息
      1.1 数据来自哪些表?
          FROM teacher t,class c,student s
      1.2 连接条件?
          t.id=c.teacher_id
          s.class_id=c.id
      1.3 过滤条件?
          t.name='范传奇'
          
          SELECT s.name
          FROM teacher t,class c,student s
          WHERE t.id=c.teacher_id
          AND s.class_id=c.id
          AND t.name='范传奇'
    
    2:在上述查询出参与统计记录的DQL中添加聚合函数
      SELECT COUNT(*)
      FROM teacher t,class c,student s
      WHERE t.id=c.teacher_id
      AND s.class_id=c.id
      AND t.name='范传奇'
      
    
  • 查看教语文的老师平均工资是多少?

    1:查询出参与统计的记录
      查询教语文的老师工资是多少?
      1.1:数据来自哪些表?
          FROM subject su,teacher t
      1.2:连接条件?
          t.subject_id=su.id
      1.3:过滤条件?
          su.name='语文'
          
      SELECT t.salary
      FROM subject su,teacher t
      WHERE t.subject_id=su.id
      AND su.name='语文'
    
    2:在上述DQL中添加聚合函数
      SELECT AVG(t.salary)
      FROM subject su,teacher t
      WHERE t.subject_id=su.id
      AND su.name='语文'
    
  • 查看教每门课老师的平均工资是多少(GROUP BY)?列出平均工资和科目名称

    1:查询出参与统计的记录
      查询出所有老师的工资,所带科目
      1.1:数据来自哪些表?
          FROM teacher t,subject su
      1.2:连接条件?
          t.subject_id=su.id
      
          SELECT t.name,t.salary,su.name
          FROM teacher t,subject su
          WHERE t.subject_id=su.id
    
    2:添加分组与聚合函数
      SELECT AVG(t.salary),su.name
      FROM teacher t,subject su
      WHERE t.subject_id=su.id
      GROUP BY su.name
    
  • 仅查看平均工资高于6000的那些科目的老师平均工资是多少?列出平均工资和科目名称

    SELECT AVG(t.salary),su.name
    FROM teacher t,subject su
    WHERE t.subject_id=su.id
    GROUP BY su.name
    HAVING AVG(salary)>6000
    
  • 查看工资最高的老师班里的学生共多少人?

    1:未知条件?  最高工资是多少  确定子查询
      SELECT MAX(salary) FROM teacher
    
    2:查询参与统计的记录
      查询最高工资老师所带班的学生都有谁
      2.1:数据来自哪些表
          FROM teacher t,class c,student s
      2.2:连接条件
          t.id=c.teacher_id
          s.class_id=c.id
      2.3:过滤条件:该老师的工资等于最高工资
          t.salary=(SELECT MAX(salary) FROM teacher)
          
          SELECT t.salary,t.name,c.name,s.name
          FROM teacher t,class c,student s
          WHERE t.id=c.teacher_id
          AND s.class_id=c.id
          AND t.salary=(SELECT MAX(salary) FROM teacher)
    
    3:在上述DQL上加聚合函数
      SELECT COUNT(*)
      FROM teacher t,class c,student s
      WHERE t.id=c.teacher_id
      AND s.class_id=c.id
      AND t.salary=(SELECT MAX(salary) FROM teacher)
    
    

综合练习

题干

1:教语文的老师所带班级各多少学生?
2:每门课的老师所带班级各多少学生?
3:来自上海的学生的班主任都有谁?
4:来自南京的学生共多少人
5:来自武汉的男同学和女同学分别多少人?
6:每个城市的学生各多少人
7:高于平均工资的老师所带的班级分别多少学生?
8:每个老师班里各多少来自郑州的学生?

答案

1:教语文的老师所带班级各多少学生?
2:每门课的老师所带班级各多少学生?
3:来自上海的学生的班主任都有谁?
4:来自南京的学生共多少人
5:来自武汉的男同学和女同学分别多少人?
6:每个城市的学生各多少人
7:高于平均工资的老师所带的班级分别多少学生?
8:每个老师班里各多少来自郑州的学生?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/464858.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

hook函数

什么是hook函数 在计算机编程中&#xff0c;hook函数是指在特定的事件发生时被调用的函数&#xff0c;用于在事件发生前或后进行一些特定的操作。通常&#xff0c;hook函数作为回调函数被注册到事件处理器中&#xff0c;当事件发生时&#xff0c;事件处理器会自动调用相应的ho…

QtDAY 2

代码&#xff1a; 头文件&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QDebug> #include <QString> #include <QTextToSpeech>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : …

【Hello Network】网络编程套接字(二)

作者&#xff1a;小萌新 专栏&#xff1a;网络 作者简介&#xff1a;大二学生 希望能和大家一起进步 本篇博客简介&#xff1a;简单介绍网络的基础概念 网络编程套接字&#xff08;二&#xff09; 简单的TCP网络程序服务端创建套接字服务端绑定服务器监听服务端获取连接服务端处…

Qt Quick Qml-Rectangle案例

Qt Quick - Qml 1.Rectangle //组件 IShadow.qml import QtQuick import QtQuick.ControlsItem {id:rootanchors.fill: parentanchors.margins: -4property color color: "#999999"property int radius: 4Rectangle{width: root.widthheight: root.heightanchors.ce…

原型图都可以用什么软件做?分享这9款给你

设计师在进行原型设计师时&#xff0c;会使用原型图软件&#xff0c;从产生想法到向开发人员提交项目。无论是构建基本线框还是功能齐全的原型&#xff0c;原型图软件都可以为你节省大量的时间和精力。 如果你是这个领域的新手或者想更新你的原型图软件包&#xff0c;请快速看…

iOS App的生命周期

App的生命周期 App从启动到退出的过程中&#xff0c;iOS应用程序不断从系统接收各种事件&#xff0c;如&#xff1a;用户点击了屏幕、用户点击了Home键&#xff0c;并对这些事件进行响应。接受事件是UIApplication对象的工作&#xff0c;但是&#xff0c;响应事件就需要由程序…

Dubbo详解

一、基础知识 1、 RPC RPC【Remote Procedure Call】是指远程过程调用&#xff0c;是一种进程间通信方式&#xff0c;他是一种技术的思想&#xff0c;而不是规范。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数&#xff0c; 而不用程序员显式编码…

【unity细节】—(Can‘t add script)脚本文件无法拖拽到对象的问题

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 秩沅 原创 收录于专栏&#xff1a;unity细节和bug ⭐关于脚本文件无法拖拽到对象的问题⭐ 文章目录 ⭐关于脚本文件无法拖拽到对象的…

分治算法(Divide and Conquer)

本文已收录于专栏 《算法合集》 一、简单释义 1、分治算法 字面上的解释是“分而治之”&#xff0c;就是把一个复杂的问题拆分成两个或更多的相同或相似的子问题&#xff0c;再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解&#xff0c;原问题的解即子问题的…

什么是FAQ页面?如何设计一个优秀的FAQ页面?

随着互联网技术的迅猛发展&#xff0c;越来越多的企业开始将在线客户支持服务作为一种重要的业务方式&#xff0c;以提供更好的服务体验。然而&#xff0c;在线客户支持服务除了提供实时的沟通方式外&#xff0c;一个功能齐全、易于使用的FAQ页面也是必不可少的&#xff0c;这可…

Go 语言进阶与依赖管理

作者&#xff1a;非妃是公主 专栏&#xff1a;《Golang》 博客主页&#xff1a;https://blog.csdn.net/myf_666 个性签&#xff1a;顺境不惰&#xff0c;逆境不馁&#xff0c;以心制境&#xff0c;万事可成。——曾国藩 文章目录 一、语言进阶1. 并发和并行2. 协程(Goroutine…

软件or硬件?硬件的前途到底在哪里?

一、硬件明明比软件更难&#xff0c;国内的硬件技术也不如软件&#xff0c;为什么硬件工程师待遇还不如软件&#xff1f; 1、不需要太高层次的硬件设计&#xff0c;比如大部分小家电企业&#xff0c;简单的电子产品企业&#xff0c;单片机简单外围设计就够了&#xff0c;单片机…

java网络编程——NIO架构

目录 1.什么是NIO 2.NIO结构 3.基于NIO下的聊天系统实现 4.Netty 1.什么是NIO NIO&#xff1a;java non-blocking IO&#xff0c;同步非阻塞IO。 BIO是阻塞IO&#xff0c;即每一个事件都需要分配一个进程给他&#xff0c;如果客户端没有连接上&#xff0c;则一直阻塞等待…

Java基础--->并发部分(1)

文章目录 线程基本概念线程的创建方式线程调度-------常用的方法线程的生命周期和状态并发编程的根本原因Java内存模型(JMM)多线程核心的根本问题volatile关键字保障原子性synchronized和ReentrantLock的区别 线程基本概念 ​ 进程是程序的一次执行过程&#xff0c;是系统运行程…

【Linux】1.4 基本权限

文章目录 一、shell 命令以及运行原理二、Linux 权限的概念三、Linux 权限管理01.文件类型和访问权限&#xff08;事物属性&#xff09;02.文件访问的分类&#xff08;人&#xff09;①用户分类②角色划分 03.文件权限值的表现方法04.文件访问权限的相关设置方法&#xff08;a.…

STC8H8K64U单片机-看门狗配置与讲解

1、看门狗寄存器讲解 &#xff08;bit7&#xff09;WDT_FLAG&#xff1a;看门狗溢出标志&#xff0c;看门狗发生溢出时&#xff0c;硬件自动将此位置1&#xff0c;需要软件清零 &#xff08;bit5&#xff09;EN_WDT&#xff1a;看门狗使能位 0&#x…

被优化了怎么办?他苦学仨月拿到11koffer

网上有个段子叫做“生活就是起起落落落落落落”。人生在世&#xff0c;本就不易&#xff0c;再加上最近大环境影响&#xff0c;各行各业都在内卷&#xff0c;身为芸芸众生的一员&#xff0c;我们也难免受到影响&#xff0c;面临福利裁剪、降薪、甚至被优化的风险。 大环境我们…

面了20家大厂,发现这样介绍项目经验,显得项目很牛...

我在刚刚开始面试的时候&#xff0c;也遇到了这个问题&#xff0c;也是我第一个思考的问题&#xff0c;如何介绍自己的项目&#xff0c;既可以比较全面的让面试官了解这个项目&#xff0c;同时&#xff0c;也不会让面试官觉得废话太多。经过这么多的面试&#xff0c;我发现&…

JavaWeb+JSP+路径问题+跳转(HTML|Servlet|JSP)|这一篇就够了(超详细)

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;老茶icon &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开兴好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;计…

ChatGPT真能取代程序员吗,看看它怎么解释SQL注入漏洞的问题

本文首发自「慕课网」&#xff0c;想了解更多IT干货内容&#xff0c;程序员圈内热闻&#xff0c;欢迎关注"慕课网"&#xff01; 作者&#xff1a;Beerus|慕课网讲师 背景 本周在《Web安全渗透测试》课程的QQ群中&#xff0c;有同学提问了一个关于网上一个关于SQL注入…