Mysql整理

news2024/10/7 10:20:56

一、基础概念

1. 索引

之前的文章已经写过了,比较细

数据库索引含义,类别,用法,创建方式_表结构加树形id和索引是为什么_马丁•路德•王的博客-CSDN博客

简单概括就是在表的某个列或者多个列或者联合表的时候加个索引,类似图书馆书本的索引编号,查询的时候直接按照索引查询,不用遍历,提高查询效率

2. MySQL 的存储引擎

1. InnoDB 支持事务,外键等
2. Memory 存储引擎将数据存储在内存中,适用于高速读写需求
3. MyISAM 适用于读多写少的场景

3. 事务

事务四元素
1. 原子性:一个事件是个事务(例如下单完成之后扣库存,收账)。要么全部成功,要么全部失败回滚
2. 一致性:事务执行前和结束满足预定义的规则,例如所有的约束和完整性规则必须被满足。
一致性确保了数据库的有效状态转换。
3. 隔离性:事务的执行过程互不影响
3. 永久性:事务执行结束后的影响存储在数据库,永久有效

4. 事务隔离级别

1. 读未提交:只能读取未提交的数据,可能会读取到脏数据,因为读取的时候其他人会编辑
2. 读已提交:只能读取已经提交的数据,不能读取到提交之前的数据
3. 可重复读:可以重复读取数据,还是会有脏读的case
4. 串行化(读写都隔离):读写分开,同步化

5. 连接池

1. mysql连接池是在程序启动的时候就建立一定的连接数量,当需要使用的时候可以直接用,
而不是每次建立,取消建立的过程,浪费资源
2. 控制连接数可以防止数据库服务器过载,同时提高连接的效率。

6. 视图

多表联合/复杂查询后创建的虚拟的表,表的数据是动态更新的。创建后会一直存在,除非主动删除

7. 如何优化数据库查询

1. 使用索引
2. 分页查询
3. 避免全表扫描
4. 避免使用 SELECT *,多使用连接

二、数据库操作

1. Database

create Database RUNOOB;
show Databases;
use RUNOOB;
-- drop database RUNOOB;

2. Table

创建表:

CREATE TABLE IF NOT EXISTS `runoob_tbl`(
   `runoob_id` INT UNSIGNED AUTO_INCREMENT,
   `runoob_title` VARCHAR(100) NOT NULL,
   `runoob_author` VARCHAR(40) NOT NULL,
   `submission_date` DATE,
   PRIMARY KEY ( `runoob_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

修改表结构

-- 增加
alter table `runoob_tbl`
add runoob_score DECIMAL(10, 2);

-- 修改
alter table `runoob_tbl`
modify runoob_score DECIMAL(10, 2) default 0;

-- 删除
alter table `runoob_tbl`
drop runoob_score;

删除表

DROP TABLE table_name ;

3. Data

数据结构:

insert
--所有列都输入
insert into runoob_tbl  value(1,'数学', 'wanh', sysdate(),20);


--只输入可以为空的字段
insert into runoob_tbl (`runoob_title`,`runoob_author`,`submission_date`) values ('语文','wanghao','2023-08-11');
select
select * from runoob_tbl;
update
-- 注意列名不能带引号
update runoob_tbl set runoob_author='wanghao' where runoob_id = '2';
delete
delete from runoob_tbl where runoob_id = '3';

4. UNION/ UNION ALL/ DISTINCT

--如果你需要合并多个查询结果,并且不需要去重,可以使用 UNION ALL。
--如果你需要合并多个查询结果,并且需要去重,可以使用 UNION。
--如果你在单个查询中希望去重,可以使用 DISTINCT。

select `runoob_title`,`runoob_author` from runoob_tbl
UNION 
select `runoob_title`,`runoob_author` from runoob_tbl1;

select distinct `runoob_title` from runoob_tbl;

select `runoob_title`,`runoob_author` from runoob_tbl
UNION ALL
select `runoob_title`,`runoob_author` from runoob_tbl1;

5. order by

select * from runoob_tbl order by runoob_score desc;

select * from runoob_tbl order by runoob_score asc;

6. group by 

--GROUP BY 语句根据一个或多个列对结果集进行分组。

--在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。

select name,count(*) from employee_tbl group by name;


select name,sum(signin) from employee_tbl group by name WITH ROLLUP ;

三、连接

 

 1. inner join ... where 

select a.runoob_author,a.runoob_count,b.runoob_title 
from tcount_tbl a inner join runoob_tbl b 
where a.runoob_author = b.runoob_author;

 2. left join ... on

select a.runoob_author,a.runoob_count,b.runoob_title 
from tcount_tbl a left join runoob_tbl b 
on a.runoob_author = b.runoob_author;

3. right join ... on

select a.runoob_author,a.runoob_count,b.runoob_title 
from tcount_tbl a right join runoob_tbl b 
on a.runoob_author = b.runoob_author;

 

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

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

相关文章

lwip使用收发线程和不使用收发线程差异

使用收发线程的方式相对于不使用收发线程的方式,效率可能会稍低一些,这取决于具体的应用场景和实现方式。 lwIP(轻量级IP协议栈)是一个针对嵌入式系统的开源TCP/IP协议栈。它可以在单个线程中运行,也可以在多个线程中…

强大的AI语言模型

1.kameAI 点我 1️⃣可以绘图 2️⃣对接4.0 3️⃣具有长篇写作

UG NX二次开发(C#)-CAM自定义铣加工的出口环境

文章目录 1、前言2、自定义铣削加工操作3、出错原因4、解决方案4.1 MILL_USER的用户参数4.2 采用自定义铣削的方式生成自定义的dll4.2 配置加工的出口环境4.3 调用dll5、结论1、前言 作为一款大型的CAD/CAM软件, UG NX为我们提供了丰富的加工模板,通过加工模板能直接用于生成…

欧拉降幂问题

题目连接 D-幂运算_2023河南萌新联赛第(四)场:河南大学 (nowcoder.com) djz的数学题 (nowcoder.com) 欧拉降幂 当 b 过大时,快速幂的时间复杂度超过题目要求时,考虑欧拉降幂。 (c)是 欧拉函数…

C 语言的文件,流, 键盘输入, 重定向

文章目录 The End of File重定向 redirection输入重定向输出重定向组合重定向 A file is an area of memory in which information is stored. Normally, a file is kept in some sort of permanent memory, such as a hard disk, USB flash drive, or optical disc, such as a…

基于关系有向图的知识推理2022ACM 8.9+8.10

基于关系有向图的知识推理 摘要介绍相关工作基于路径的方法基于GNN的方法 关系有向图RED-GCNr-digraph递归编码学习用于查询的基本信息 实验 摘要 知识图推理旨在从已有的知识中推断出新的事实。基于关系路径的方法在文献中显示出较强的可解释性和归纳推理能力。然而&#xff…

如何进行游戏平台搭建?

游戏平台搭建涉及多个步骤和技术,下面是一个大致的指南: 市场调研和定位:首先,要了解游戏市场和受众的需求,选择适合的游戏类型和定位。 选择平台类型:决定是要搭建网页平台、移动应用平台还是其他类型的…

Vue3 —— to 全家桶及源码学习

该文章是在学习 小满vue3 课程的随堂记录示例均采用 <script setup>&#xff0c;且包含 typescript 的基础用法 前言 本篇主要学习几个 api 及相关源码&#xff1a; toReftoRefstoRaw 一、toRef toRef(reactiveObj, key) 接收两个参数&#xff0c;第一个是 响应式对象…

专治疗懒病:GO、KEGG富集分析一体函数

之前我们写过GO、KEGG的富集分析&#xff0c;参见&#xff1a;补充更新&#xff1a;GO、KEGG&#xff08;批量分组&#xff09;分析及可视化。演示了差异基因KEGG或者GO的分析流程。其实差异基因的富集分析输入的文件只需要一组基因就可以了。所以我们发挥了专治懒病的优良传统…

【MySQL】创建高级联结

目录 一、使用表别名 二、使用不同类型的联结 1.自联结 2.自然联结 3.外部联结 3.使用带聚集函数的联结 4.使用联结和联结条件 一、使用表别名 别名除了用于列名和计算字段外&#xff0c;SQL还允许给表名起别名。 起别名有两个好处&#xff1a; 一个是缩短SQL语句&am…

群晖6.X便捷的安装cpolar内网穿透

群晖6.X便捷的安装cpolar内网穿透 文章目录 群晖6.X便捷的安装cpolar内网穿透前言1. 下载cpolar的群晖套件1.1 打开群晖套件中心1.2 选择“手动安装”1.3 选择下载cpolar套件位置 2. 打开cpolar的Web-UI界面3. 注册会员 前言 随着硬件设备和软件技术的发展&#xff0c;以及数据…

ElasticsSearch基础概念和安装

ElasticSearch基础概念以及可视化界面安装 文章目录 ElasticSearch基础概念以及可视化界面安装1、引言2、基本概念3、倒排索引机制3.1、倒排索引 4、使用docker安装ElasticSearch4.1、下载镜像文件4.2 、创建实例,启动es 5.安装Kibana 1、引言 Elastic 的底层是开源库 Lucene。…

朋友圈点赞截图生成,制作朋友圈网页​

支持纯文字内容&#xff0c;图文内容&#xff0c;单图&#xff0c;多图。自定义点赞数量、自定义评论&#xff0c;随机头像和自定义头像。 这个工具基本支持我们所需要的所有功能。可以说是目前最全的朋友圈页面生成器。 朋友圈页面样式是Iphone pro 14上的效果&#xff0c;几…

OneFlow 中的 Softmax

Softmax 是深度学习模型中的常见算子。PyTorch 的 Softmax 算子直接调用 cuDNN 的接口。而 OneFlow 内部针对输入数据的类别数量&#xff0c;采用3个 kernel 来分别处理&#xff0c;在多数情况下都可以获得比 cuDNN 更优的性能表现。下面对其实现进行介绍。OneFlow 的静态分层结…

Leetcode24 两两交换链表相邻的节点

迭代解法&#xff1a; class Solution {public ListNode swapPairs(ListNode head) {ListNode dummyHead new ListNode(0);dummyHead.next head;ListNode temp dummyHead;while (temp.next ! null && temp.next.next ! null) {ListNode node1 temp.next;ListNode n…

谷粒商城第十一天-品牌管理中关联分类

目录 一、总述 二、前端部分 1. 调整查询调用 2. 关联分类 三、后端部分 四、总结 一、总述 之前是在商品的分类管理中直接使用的若依的逆向代码 有下面的几个问题&#xff1a; 1. 表格上面的参数填写之后&#xff0c;都是按照完全匹配进行搜索&#xff0c;没有模糊匹配…

化工行业案例 | 甄知科技助力万华化学重构IT服务价值,打造信息中心ERP!

随着科技的发展&#xff0c;新材料的应用领域与日俱增&#xff0c;近年来&#xff0c;全球化工新材料产业发展整体步入高技术引领、产品迭代速度快、产业规模和需求不断扩大的阶段。一体化协同与数字化转型策略是实现化工新材料生产原料自给、节能降耗、降低排放和物料成本的重…

验证码识别全流程实战

验证码的历史与发展 验证码&#xff0c;全称为 “Completely Automated Public Turing test to tell Computers and Humans Apart”&#xff0c;即全自动区分计算机和人类的图灵测试&#xff0c;Captcha。早在上个世纪 90 年代&#xff0c;为了防止恶意的网络机器人行为&#x…

matplotlib 笔记:hist2d 2D直方图

创建二维直方图&#xff0c;用于显示数据分布的图表将数据划分成不同的区间&#xff08;bin&#xff09;&#xff0c;并统计每个区间内数据点的数量 1 基本画法 默认bin的数量是10*10 N 1000 x np.random.randn(N) y np.random.randn(N) plt.hist2d(x, y) 2 修改bin的…

英特尔处理器被曝出“Downfall”漏洞:可窃取加密密钥

今日&#xff0c;谷歌的一位高级研究科学家利用一个漏洞设计了一种新的CPU攻击方法&#xff0c;该漏洞可影响多个英特尔微处理器系列&#xff0c;并允许窃取密码、加密密钥以及共享同一台计算机的用户的电子邮件、消息或银行信息等私人数据。 该漏洞被追踪为CVE-2022-40982&am…