Mysql Day03

多表设计

一对多

在多的一方添加外键约束,关联另外一方主键

一对一

任意一方添加外键约束,关联另外一方主键

多对多

建立第三张中间表,中间表至少包含两个外键,分别关联两方主键

idstu_idcourse_id

1

11

2

12
313
421
524

案例:苍穹外卖

分类表:菜品表(category_id) = 1 : n

分类表:套餐表(category_id) = 1 : n

菜品表:套餐表 = m:n

中间表记录setmeal_id, dish_id以及份数:copies

多表查询

从多张表中查询数据

全连接:笛卡尔积

A集合和B集合全部的组合情况

内连接

A集合和B集合交集

隐式内连接:select 字段列表 from 表1,表2 where condition...;

显式内连接:select 字段列表 from 表1 join 表2 on condition...;

起别名之后要用别名,不能用原名

左外连接

select 字段列表 from 表1 left join 表2 on condition...;

右外连接

select 字段列表 from 表1 right join 表2 on condition...;

相当于

select 字段列表 from 表2 left join 表1 on condition...;

子查询

标量子查询:返回标量

select * from tb_emp where dept_id = (select id from tb_dept where name = "教研部" )
select * from tb_emp where entrydate > (select entrydate from tb_emp where name = "房东白")

列子查询:返回一列

select * from tb_emp where dept_id in (select id from tb_dept where name = "教研部" or name = "教务处";

行子查询:返回一行

select * from tb_emp where (entrydate, job) = (select entrydate, job from tb_emp where name = "weiyixiao");

表子查询:返回多行多列

-- Inquire employees' information and department name
select * from tb_emp where entrydate > '2007-01-01';
select e.*, d.name from (select * from tb_emp where entrydate > '2007-01-01') e, tb_dept d where e.dept_id = d.id;

案例

-- 1.查询价格低于10元的菜品的名称、价格及其菜品的分类名称
select dish.name, dish.price, category.name from dish, category where dish.category_id = category.id and dish.price < 10-- 2.查询所有价格在10元(含)到50元(含)之间且状态为'起售'的菜品,展示出菜品的分类名称
select dish.name, category.name from dish left join category on dish.category_id = category.id where (dish.price between 10 and 50) and dish.status = 0;-- 3,查询每个分类下最贵的菜品,展示出分类的名称、最贵的菜品的价格
select category.name, max(dish.price) from dish, category where dish.category_id = category.id group by category.id-- 4,查询各个分类下菜品状态为‘起售’,并且该分类下菜品总数大于等于3的分类名称
select category.name where dish.category_id = category.id and dish.status = 1 group by category.name having count(*) >= 3-- 5,查询出“商务套餐a”中包含了哪些菜品―(展示出套餐名称、价格,包含的菜品名称、价格、份数)
table: setmeal, dish, setmeal_dish
select s.name, s.price, d.name, d.price, sd.copies from setmeal s, dish d, setmeal_dish sd where sd.setmeal_id = s.id and sd.dish_id = d.id and s.name = '商务套餐a'-- 6.查询出低于菜品平均价格的菜品信息(展示出菜品名称、菜品价格)
select name, price from dish where price < (select avg(price) from dish)

事务

一组操作的集合,要么同时成功,要么同时失败

开启事务:start transaction;

结束事务:commit;

回滚事务:rollback;

原子性、一致性、隔离性、持久性ACID

索引

create index idx_tb_attr on table(attr);

show index from table;

drop index idx_tb_attr on table;

默认:主键索引、唯一索引、

没有索引:全表扫描

有索引:构建B+二叉搜索树,左侧字树比根节点小,右侧子树比根节点大

二叉搜索树有可能会产生偏向一边的情况

二叉搜索树和红黑树会产生深度较深的问题

  • 一个结点可以有多个孩子
  • 所有数据都在叶子结点中保存,非叶子结点仅用于索引数据
  • 叶子结点按从小到大排列,是双向链表

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

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

相关文章

传输频宽是啥?对网速影响有多大?

频宽&#xff0c;即WIFI频道宽度&#xff0c;又称为WIFI信道宽度&#xff0c;是WiFi Channel width的缩写。从科学的定义来说&#xff0c;Wi-Fi频道宽度&#xff0c;是指Wi-Fi无线信号在频谱上所占用的带宽大小。它决定了Wi-Fi网络的数据传输速率和稳定性&#xff0c;一般有20M…

【深度学习】:滴滴出行-交通场景目标检测

清华大学驭风计划课程链接 学堂在线 - 精品在线课程学习平台 (xuetangx.com) 代码和报告均为本人自己实现&#xff08;实验满分&#xff09;&#xff0c;只展示主要任务实验结果&#xff0c;如果需要详细的实验报告或者代码可以私聊博主&#xff0c;接实验技术指导1对1 有任…

医学护理答案怎么查找? #笔记#学习方法#微信

今天分享拥有拍照搜题、文字搜题、语音搜题、多重搜题等搜题模式&#xff0c;可以快速查找问题解析&#xff0c;加深对题目答案的理解。 1.滴墨书摘 这款软件相当于一个在线“摘抄本”&#xff0c;我们可以利用它来记录一些阅读时遇到的好句子或者是段落&#xff0c;或许下次…

VitePress-12-markdown中使用vue的语法

前言 VitePress 中&#xff0c;markdown文档最终都会转换成为 html文件&#xff0c;我们在访问的时候&#xff0c;也是直接访问的 xxx.html 文件。而且&#xff0c;markdown文档会被作为 [vue单文件] 进行处理&#xff0c;因此&#xff0c;我们我们可以在文档中使用 vue 语法&…

求职|基于Springboot的校园求职招聘系统设计与实现(源码+数据库+文档)

校园求职招聘系统目录 目录 基于Springboot的校园求职招聘系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户信息管理 2、企业信息管理 3、公告类型管理 4、公告信息管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选…

【JS逆向九】逆向某混淆网站源码,模拟 加密,解密,密钥生成

逆向日期&#xff1a;2024.02.09 使用工具&#xff1a;Node.js 是否有混淆&#xff1a;源代码混淆 加密方法&#xff1a;AES标准库 文章全程已做去敏处理&#xff01;&#xff01;&#xff01; 【需要做的可联系我】 可使用AES进行解密处理&#xff08;直接解密即可&#xff0…

【云原生进阶之PaaS中间件】第三章Kafka-4.3.1-broker 工作流程

1 kafka broker 1.1 kafka broker 工作流程 这一部分大体了解下kafka Broker的工作流程&#xff0c;看一下zookeeper在kafka broker工作中发挥的作用&#xff0c;那些重要数据在zookeeper中存储。 1.1.1 zookeeper存储kafka的信息 zookeeper在kafka中扮演了重要的角色&#x…

【前端】Vue实现网站导航 以卡片形式显示(附Demo)

目录 前言1. html版本2. Vue2.1 Demo12.2 Demo2 前言 单独做一个跳转页面推荐阅读&#xff1a;【前端】实现Vue组件页面跳转的多种方式 但是如果网站多了&#xff0c;推荐卡片式导航&#xff0c;具体可看下文&#xff1a;&#xff08;以图片显示显示各个网站&#xff0c;图片…

Python入门知识点分享——(二十)继承和方法重写

今天是大年三十&#xff0c;祝大家龙年大吉&#xff0c;当然无论何时何地&#xff0c;我们都不要忘记继续学习。今天介绍的是继承和方法重写这两种面向对象编程特点。继承机制指的是&#xff0c;一个类&#xff08;我们称其为子类或派生类&#xff09;可以使用另一个类&#xf…

拟合案例1:matlab积分函数拟合详细步骤及源码

本文介绍一下基于matlab实现积分函数拟合的过程。采用的工具是lsqcurvefit和nlinfit两个函数工具。关于包含积分运算的函数,这里可以分为两大类啊。我们用具体的案例来展示:一种是积分运算中不包含这个自变量,如下图的第一个公式,也就是说它这个积分运算只有R和Q这两个待定…

女程序员失业半年,某央企以为她已婚已孕,准备发offer,结果发现她未婚未孕,立马反悔,取消offer。...

职场中&#xff0c;性别平等一直是热议的话题。特别是女性职员&#xff0c;在招聘和晋升的过程中&#xff0c;往往面临着不小的挑战。 最近&#xff0c;一个帖子在网上引发了广泛关注。一位女性因为失业半年终于拿到了央企的offer&#xff0c;却因为企业误以为她已婚已孕而准备…

二阶系统的迹-行列式平面方法(trace-determinant methods for 2nd order system)

让我们再次考虑二阶线性系统 d Y d t A Y \frac{d\mathbf{Y}}{dt}A\mathbf{Y} dtdY​AY 我们已经知道&#xff0c;分析这种二阶系统。最主要的是注意它的特征值情形。 &#xff08;此处没有重根的情形&#xff0c;所有是partial&#xff09; 而特征值&#xff0c;也就是系…

三、搜索与图论

DFS 排列数字 #include<iostream> using namespace std; const int N 10; int a[N], b[N]; int n;void dfs(int u){if(u > n){for(int i 1; i < n; i)cout<<a[i]<<" ";cout<<endl;return;}for(int i 1; i < n; i){if(!b[i]){b[…

视觉开发板—K210自学笔记(二)

视觉开发板—K210 一、开发之前的准备 工欲善其事必先利其器。各位同学先下载下面的手册&#xff1a; 1.Sipeed-Maix-Bit 资料下载&#xff1a;https://dl.sipeed.com/shareURL/MAIX/HDK/Sipeed-Maix-Bit/Maix-Bit_V2.0_with_MEMS_microphone 2.Sipeed-Maix-Bit 规格书下载&…

MYSQL笔记:约束条件

MYSQL笔记&#xff1a;约束条件 主键约束 不能为空&#xff0c;值必须是不同的&#xff08;唯一性&#xff09; 一个表只能修饰一个主键 PRIMARY KEY自增约束 AUTO_INCREMENT唯一键约束 可以为空 unique非空约束 not null 默认值约束 default 外键约束 foreign key …

【2023年终总结】感恩南洋经历,2024收拾再启程

新年祝福 值此2024农历新年到来之际&#xff0c;祝一直支持“IT进阶之旅”的各位小伙伴们新的一年伴随着新的开始&#xff0c;新的旅程&#xff0c;新的突破&#xff0c;新的收获&#xff0c;新的期待..... 写在前面 2023&#xff0c;“IT进阶之旅”一直处于“停更”状态&#…

OCP使用web console创建和构建应用

文章目录 环境登录创建project赋予查看权限部署第一个image检查pod扩展应用 部署一个Python应用连接数据库创建secret加载数据并显示国家公园地图 清理参考 环境 RHEL 9.3Red Hat OpenShift Local 2.32 登录 在 crc start 启动crc时&#xff0c;可以看到&#xff1a; .....…

律师小程序,在线咨询,在线问答小程序修复头像

应用介绍 演示前端小程序&#xff1a; #小程序://问卜易学咨询/cVtT0ndctaecDKd 律师小程序是一种智能化的服务平台&#xff0c;提供了多种有益的功能。首先&#xff0c;它能够实现在线法律咨询&#xff0c;用户可以通过文字、语音或视频与律师实时沟通&#xff0c;获得专业意见…

飞天使-linux操作的一些技巧与知识点9-zabbix6.0 容器之纸飞机告警设置

文章目录 zabbix 告警纸飞机方式webhook 方式 zabbix 告警纸飞机方式 第一种方式参考 https://blog.csdn.net/yetugeng/article/details/99682432bash-4.4$ cat telegram.sh #!/bin/bashMSG$1TOKEN"61231432278:AAsdfsdfsdfsdHUxBwPSINc2kfOGhVik" CHAT_ID-41dsdde…

【C++】类的6个默认成员函数

目录 1. 类的6个默认成员函数 2. 构造函数 3. 析构函数 4. 拷贝构造函数 5. 运算符重载 5.1运算符重载 5.2赋值运算符重载 5.3前置和后置重载 5.4日期类的实现 6. const成员函数 7. 取地址及const取地址操作符重载 1. 类的6个默认成员函数 对于一个空类&#xff0c;编…