mysql(二)

mysql(二)1 外键的创建(多对多)学生表,课程表,和成绩表之间的关系 2.表查询的执行顺序(重点中的重点)非常重要 from——where——group by——having——select——distinct

mysql(二)

1 外键的创建(多对多)学生表,课程表,和成绩表之间的关系

代码块
CREATE DATABASE ec14;
USE ec14;

CREATE TABLE student(
id int PRIMARY key auto_increment,
stu_name varchar(10) not null
);

CREATE TABLE subj(
id int PRIMARY key auto_increment,
sub_name varchar(10)
);

CREATE TABLE score(
id int PRIMARY key ,
stu_id int,
sub_id int,
score int not null,
CONSTRAINT stu_fk FOREIGN key (stu_id) REFERENCES student(id) on DELETE CASCADE on UPDATE CASCADE,
CONSTRAINT sub_fk FOREIGN key (sub_id ) REFERENCES subj (id) on DELETE CASCADE on UPDATE CASCADE
);

select  from  score;

代码100分

2.表查询的执行顺序(重点中的重点)非常重要

from——where——group by——having——select——distinct——order by——limit

代码100分代码块
select * from student where class='ec14' group by gender having  age>18    order by name desc  LIMIT 5

1.找到表:from

2.拿着where指定的约束条件,去文件/表中取出一条条记录

  1. 将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组

4.将分组的结果进行having过滤

5.执行select

6.去重distinct

7.将结果按条件排序:order by(asc/desc)

8.limit前多少条

3 关于分组group by的知识点

分组之后只能查询分组的字段,如果想查询组内的其它字段的信息,必须要借助聚合函数

max()

min()

avg()

sum()

count()

代码块
1.查询岗位名以及岗位包含的所有员工名字
select job_name ,GROUP_CONCAT(name) from employee GROUP BY job_name;

2.查询平均薪水大于10000的岗位及岗位平均薪资
select  job_name, AVG(salary) from employee GROUP BY job_name having avg(salary)>10000;

3.查询平均薪水大于10000的岗位和岗位平均薪资,并按照岗位薪资降序排列
select avg(salary) ,job_name  from employee GROUP BY job_name HAVING avg(salary)>10000 ORDER BY avg(salary) DESC;

4.查询雇员表所有信息,先按照年龄升序排列,再按照id降序排列
select * from employee ORDER BY age asc,id desc;

别跑,点个赞再走

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10332.html

(0)
上一篇 2022-12-29
下一篇 2022-12-29

相关推荐

  • 使用importlib动态导入Python模块

    使用importlib动态导入Python模块Python是一种动态语言,它支持在程序运行时动态地修改代码,操作模块等。importlib是Python标准库中用于动态导入模块的工具包。使用importlib可以在运行时动态地导入模块并在代码中使用。

    2024-04-19
    64
  • openGauss内核分析:执行计划生成「建议收藏」

    openGauss内核分析:执行计划生成「建议收藏」摘要:SQL语句解析完成后被解析成Query结构,在进行优化时是以Query为单位进行的,Query的优化分为基于规则的逻辑优化(查询重写)和基于代价的物理优化(计划生成),主入口函数为subquer

    2023-06-02
    148
  • Redis | 第12章 Sentinel 哨兵模式《Redis设计与实现》[亲测有效]

    Redis | 第12章 Sentinel 哨兵模式《Redis设计与实现》[亲测有效](第12章 Sentinel 哨兵模式) 前言 参考资料:《Redis设计与实现 第二版》; 第四部分为多机数据库的实现,主要由以下模块组成:复制、Sentinel、集群; 本篇将介绍 Redis 的

    2023-05-01
    153
  • 以pandas replace函数为中心,无需修饰

    以pandas replace函数为中心,无需修饰在数据处理领域,大家都熟知的是pandas库的强大。其中,replace函数是一个非常实用的函数,它常用于数据清洗,可以快速地替换DataFrame或Series中的值。在本篇文章中,我们将以pandas replace函数为中心,从多个方面详细阐述其使用方法和技巧,以及与其他函数的关联应用,让读者更好地掌握和应用这个实用函数。

    2024-07-25
    37
  • sql触发器的使用及语法csdn_三种触发器

    sql触发器的使用及语法csdn_三种触发器
    定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。常见的触发器有三种…

    2023-04-17
    145
  • Oracle行结果合计的实现

    Oracle行结果合计的实现Oracle行结果合计的实现,主要应用于日期结果的集计,下面是具体的实现代码。 With AA as ( select 'A' tNo , 10 B from dual union s

    2023-01-31
    154
  • Python中的get value方法:提取字典对应key的值

    Python中的get value方法:提取字典对应key的值Python是一种优秀的编程语言,具有易读、易学、易扩展和可移植等特点。它的数据类型非常丰富,其中字典(dict)是Python中关键的数据类型之一。字典是一个无序的、可变的、键值对(key:value)形式的数据类型,也是Python中最灵活的数据结构之一。Python中的get value方法可以轻松地提取字典对应key的值。

    2023-12-29
    111
  • 记录不存在则插入,存在则更新 → MySQL 的实现方式有哪些?[亲测有效]

    记录不存在则插入,存在则更新 → MySQL 的实现方式有哪些?[亲测有效]开心一刻 今天我爸、我、我女儿一起吃饭,我们每人一个鸡腿 女儿问道:爸爸,你吃鸡腿吗 我以为她要把她的鸡腿给我吃,倍感欣慰地说道:我不吃,宝贝 女儿一把抓起我的鸡腿放进了她爷爷的碗里,说道:不吃给爷爷

    2023-04-22
    152

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注