mysql数据库第十二课------mysql语句的拔高2------飞高高

作者前言

🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂
​🎂 作者介绍: 🎂🎂
🎂 🎉🎉🎉🎉🎉🎉🎉 🎂
🎂作者id:老秦包你会, 🎂
简单介绍:🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂🎂
喜欢学习C语言和python等编程语言,是一位爱分享的博主,有兴趣的小可爱可以来互讨 🎂🎂🎂🎂🎂🎂🎂🎂
🎂个人主页::小小页面🎂
🎂gitee页面:秦大大🎂
🎂🎂🎂🎂🎂🎂🎂🎂
🎂 一个爱分享的小博主 欢迎小可爱们前来借鉴🎂


mysql语句的提高

  • **作者前言**
  • 内置语句
    • with
    • instert into select
    • regexp
  • MySQL高级
    • 视图
    • 事务
  • 总结:

内置语句

with

创建一个 临时表,当有一部分数据在sql中被频繁用到,可以使用with储存临时数据
比如:select emp_no ,age from ( select * from new_employees limit 20 )as a;
括号内的就是一张临时表,这样创建的效果很差,如果下一条sql语句要使用就得再写一次,这样很麻烦,如果使用with来创建临时表就会便捷很多,
上面的代码创建的临时表只要出了这给sql语句范围会被销毁,当我们再使用这张表就会报错,因为这张表不存在,

 with 表格1 as(select *from new_employeeslimit 20)( selectemp_no,age,first_namefrom表格1);
with 表格2 as(select*fromemployeeslimit 20)
(selectemp_no,null as age,first_name
from表格2) ;

而使用with创建一个临时表,会在内存申请一块空间进行存储,如果创建很多会造成内存很多被占用,造成mysql运行变慢,sql程序运行结束就消毁。而不使用with创建虽然可以减少内存占用,但是使用范围小,怎么创建临时表要看自己怎么来,

with创建多个临时表

with 表格1 as(select *from new_employeeslimit 20), 表格2 as(select*fromemployeeslimit 20)( selectemp_no,age,first_namefrom表格1)union all(selectemp_no,null as age,first_name
from表格2);

instert into select

通过insert语句,将查询到的数据直接写入到目标表格中
前面我们的往表格插入语句是

insert into 表名(字段)values(内容)

表格创建
create table if not exists`学生表格1`
(`id` int  auto_increment not null  primary key  comment '学生id',`name` varchar(30) not null  default  "无名氏" comment '学生姓名',`age` int  not null comment'学生年龄',`date` date  comment '学生入校时间')engine = InnoDB default charset=utf8 comment= '表格1';

insert into select

insert into  学生表格1
(`id`,`name`,`age`,`date`
)
select emp_no,first_name,age,birth_date
from new_employees;

注意一下,这个语句只能在一个数据库内进行数据的写入,不能跨数据库

regexp

下面插播一下符号
正则表达式
在这里插入图片描述
如果有看过我写过python的正则表达式的博客就会知道
*代表匹配0个或者多个字符
+代表至少匹配1个字符
^以…为开头
& 以…为结尾
. 任意一个字符
[]匹配里面的任意一个等
这里不过多介绍

那怎么在mysql使用正则表达式呢

REGEXP 或 regexp

select * from new_employees where first_name regexp "^G*";
select * from new_employees where first_name regexp "^G*";
select * from new_employees where first_name regexp "G+";
select * from new_employees where first_name regexp "z$";
select * from new_employees where first_name regexp "e|z$";

四则运算
在这里插入图片描述

select 
substring(birth_date,6,2) - month(now()) as 月份
,substring(birth_date,9,2) - day(now()) as 日期
,case when substring(birth_date,6,2) - month(now())= 0 and substring(birth_date,9,2) - day(now()) <=7 and substring(birth_date,9,2) - day(now()) >=0then "符合"
else "不符合" 
end 是否符合
from new_employees;

substring 字符分割
在数据库第十一课有介绍,

MySQL高级

视图

一张虚拟表,不具备数据储存功能,基本表数据发生了改变,视图也会跟着改变。仅仅是SQL查询
语句的结果集。它能够免去每次需要提取该数据的SQL语句查找时间。
视图的用途就是查询。提高数据复用性,提高了数据安全,更加清晰的展示了数据

简单的理解为视图就是查询语句的copy

   建表语句查询
show create table  学生表格1

视图的创建

create view  视图1 as
select id ,name ,age
from 学生表格1;

如果学生表格1里面 的数据有更改,那么视图1里面的内容也会发生更改,就像软链接
在这里插入图片描述
假设屏幕5秒变一次,每变换一次发送一次sql请求,sql语句(还要进行计算等)执行是10秒一次,就会发现 ,请求大于执行,会对服务器造成负担,

使用视图,屏幕发送请求给视图,对计算不沾边,而表格每变化一次,视图就会变化一次,哪怕计算有每隔一段时间执行一次,获取到都是在执行时段的最新数据,
缺点就是如果上一次的sql语句没有执行完,而新一次的sql语句已经开始了,会造成数据的重新计算,

这就需要视图逻辑简单,原数据的更新频率不要太高

事务

例如我需要向张三转账1万块钱。首先,我需要检查自己账户上是否有1万块钱;然后,我的账户会
扣除1万块钱;最后,张三的账户上会增加一万块钱。到此,整个转账过程结束。将分解出来的三个步骤
1.查询
2.扣除自己的钱
3张三的钱增加
必须看作一个整体来执行完成的单位,叫做 事务

四大特性(简称ACID)
原子性(Atomicity)
一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作

一致性(Consistency)
数据库总是从一个状态转换到另一个状态。例如转钱的例子,无论是三步中的哪一个步骤失败,都会在三方显示操作失败。

隔离性(Isolation)
通常来说,一个事务所做的修改在最终提交以前,对其他事务是不可见。

持久性(Durability)
一旦事务提交,则其所做的修改会永久保存到数据库。此时即使系统崩溃,修改的数据也不会丢失。

事务命令
表的引擎类型必须是innodb类型才可以使用事务,show create table table_name; 可以看到表格引擎类型
在这里插入图片描述

-- 开启事务
begin;
start transaction;
-- 提交事务
commit;
-- 回滚事务
rollback;
-- 执行事务流程
begin; -- 开启事务模式
insert into table_name(name) values('zhouzhou'); -- 此时的数据还没有正式写入表中
commit; -- 执行了提交,新增的数据才正式写入表中
-- 如果发现写入的数据有问题可以将commit换成rollback(回滚),撤销这次写入

注意:
1、修改数据命令会自动的触发事务,包括insert、update、delete
2、SQL语句中,能够手动开启事务的原因是:可以进行多次数据的修改,如果成功一起成功,否则一起
会滚到之前的数据

总结:

本次mysql数据库的介绍到这里了,有不懂的小可爱可以私聊我

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

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

相关文章

研发工程师玩转Kubernetes——通过PV的节点亲和性影响Pod部署

在《研发工程师玩转Kubernetes——PVC通过storageClassName进行延迟绑定》一文中&#xff0c;我们利用Node亲和性&#xff0c;让Pod部署在节点ubuntud上。因为Pod使用的PVC可以部署在节点ubuntuc或者ubuntud上&#xff0c;而系统为了让Pod可以部署成功&#xff0c;则让PVC与Pod…

Spring-Cloud-Loadblancer详细分析_2

LoadBalancerClients 终于分析到了此注解的作用&#xff0c;它是实现不同服务之间的配置隔离的关键 Configuration(proxyBeanMethods false) Retention(RetentionPolicy.RUNTIME) Target({ ElementType.TYPE }) Documented Import(LoadBalancerClientConfigurationRegistrar…

Mongodb:业务应用(1)

环境搭建参考&#xff1a;mongodb&#xff1a;环境搭建_Success___的博客-CSDN博客 需求&#xff1a; 在文章搜索服务中实现保存搜索记录到mongdb 并在搜索时查询出mongdb保存的数据 1、安装mongodb依赖 <dependency><groupId>org.springframework.data</groupI…

Intellij IDEA 导入 eclipse web 项目详细操作

Eclipse当中的web项目都会有这两个文件。但是idea当中应该是没有的&#xff0c;所以导入会出现兼容问题。但是本篇文章会教大家如何导入&#xff0c;并且导入过后还能使用tomcat运行。文章尽可能以图片的形式进行演示。我的idea使用的版本是2022.3.3版本。当然按正常来说版本之…

查询树形目录(内存遍历成树返回)

实体 Data TableName("dtp_sm_servicetype") ApiModel(value "SmServicetype对象", description "服务类型") EqualsAndHashCode(callSuper true) public class SmServicetype extends BaseEntity {ApiModelProperty("服务类型名称&quo…

C++ ModBUS TCP客户端工具 qModMaster 介绍及使用

qModMaster工具介绍 QModMaster是一个基于Qt的Modbus主站&#xff08;Master&#xff09;模拟器&#xff0c;用于模拟和测试Modbus TCP和RTU通信。它提供了一个直观的图形界面&#xff0c;使用户能够轻松设置和发送Modbus请求&#xff0c;并查看和分析响应数据。 以下是QModM…

图论——最短路算法

引入&#xff1a; 如上图&#xff0c;已知图G。 问节点1到节点3的最短距离。 可心算而出为d[1,2]d[2,3]112,比d[1,3]要小。 求最短路径算法&#xff1a; 1.Floyd(弗洛伊德) 是一种基于三角形不等式的多源最短路径算法。边权可以为负数 表现为a[i,j]a[j,k]<a[i,k]。 …

vue3 使用 element-china-area-data 实现地区选择器

官方地址&#xff1a;https://www.npmjs.com/package/element-china-area-data?activeTabreadme 在线示例&#xff1a;https://plortinus.github.io/element-china-area-data/index.html 实际使用 <el-col :span"12"><el-form-item label"所处城市&…

什么是响应式设计?列举几种实现响应式设计的方法。

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 什么是响应式设计&#xff1f;⭐ 实现响应式设计的方法⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏…

Docker安装ElasticSearch/ES 7.4.0

目录 前言安装ElasticSearch/ES安装步骤1&#xff1a;准备1. 安装docker2. 搜索可以使用的镜像。3. 也可从docker hub上搜索镜像。4. 选择合适的redis镜像。 安装步骤2&#xff1a;拉取ElasticSearch镜像1 拉取镜像2 查看已拉取的镜像 安装步骤3&#xff1a;创建容器创建容器方…

android 如何分析应用的内存(十八)终章——使用Perfetto查看内存与调用栈之间的泄露

android 如何分析应用的内存&#xff08;十八&#xff09; 在前面两篇文章中&#xff0c;先是介绍了如何用AS查看Android的堆内存&#xff0c;然后介绍了使用MAT查看 Android的堆内存。AS能够满足基本的内存分析需求&#xff0c;但是无法进行多个堆的综合比较&#xff0c;因此…

ArcGIS Pro基础:【按顺序编号】工具实现属性字段的编号自动赋值

本次介绍一个字段的自动排序编号赋值工具&#xff0c;基于arcgis 的字段计算器工具也可以实现类似功能&#xff0c;但是需要自己写一段代码实现&#xff0c; 相对而言不是很方便。 如下所示&#xff0c;该工具就是【编辑】下的【属性】下的【按顺序编号】工具。 其操作方法是…

FreeRTOS(二值信号量)

资料来源于硬件家园&#xff1a;资料汇总 - FreeRTOS实时操作系统课程(多任务管理) 目录 一、信号量的概念 1、信号量的基本概念 2、信号量的分类 二、二值信号量的定义与应用 1、二值信号量的定义 2、二值信号量的应用 三、二值信号量的运作机制 1、FreeRTOS任务间二值…

可视化绘图技巧100篇基础篇(二)-柱状图

目录 前言 什么是柱状图 柱状图的组成 使用场景 适用场景: 不适用场景:

Spring Web

◆ Spring整合web环境 - Javaweb三大组件及环境特点 - Spring整合web环境的思路及实现 把ApplicationContext放在ServleContent域【listen组件中】中 ContextLoaderListener &#xff1a;部分代码写死了 /*** 配置通用的Spring容器的创建&#xff0c;只需要创建一次就可以*/…

hackrf-faq-1

Getting Help — HackRF documentation HackRF Product Line - Great Scott Gadgets Software Defined Radio with HackRF - Great Scott Gadgets What is the Transmit Power of HackRF? HackRF One’s absolute maximum TX power varies by operating frequency: 1 MHz t…

SQL server 与 MySQL count函数、以及sum、avg 是否包含 为null的值

sql server 与 mysql count 作用一样。 count 计算指定字段出现的个数&#xff0c; 不是计算 null的值 获取表的条数 count(n) n:常数 count(1),count&#xff08;0&#xff09;等 count(*) count(字段) 其中字段为null 不会统计在内。 avg(字段)、sum(字段) 跟count(字段)…

科技资讯|苹果手机版Vision Pro头显专利曝光,内嵌苹果手机使用

根据美国商标和专利局&#xff08;USPTO&#xff09;公示的清单&#xff0c;苹果公司近日获得了一项头显相关的技术专利&#xff0c;展示了一款亲民款 Vision Pro 头显&#xff0c;可以将 iPhone 放置在头显内部充当屏幕。 根据patentlyapple 媒体报道&#xff0c;这是苹果公司…

案例12 Spring MVC入门案例

网页输入http://localhost:8080/hello&#xff0c;浏览器展示“Hello Spring MVC”。 1. 创建项目 选择Maven快速构建web项目&#xff0c;项目名称为case12-springmvc01。 2.配置Maven依赖 <?xml version"1.0" encoding"UTF-8"?><project xm…

【计算机网络】TCP协议超详细讲解

文章目录 1. TCP简介2. TCP和UDP的区别3. TCP的报文格式4. 确认应答机制5. 超时重传6. 三次握手7. 为什么两次握手不行?8. 四次挥手9. 滑动窗口10. 流量控制11. 拥塞控制12. 延时应答13. 捎带应答14. 面向字节流15. TCP的连接异常处理 1. TCP简介 TCP协议广泛应用于可靠性要求…