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版本。当然按正常来说版本之…

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]。 …

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

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 什么是响应式设计&#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任务间二值…

Spring Web

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

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协议广泛应用于可靠性要求…

IP 协议的相关特性和数据链路层相关知识总结

目录 IP 协议的相关特性 一、IP协议的特性 二、 IP协议数据报格式 三、 IP协议的主要功能 1. 地址管理 动态分配 IP地址 NAT机制 NAT背景下的通信 IPV6 2. 路由控制​​​​​​​ 3.IP报文的分片与重组 数据链路层相关知识 1、以太网协议&#xff08;Ethernet&#xff09; 2.M…

OpenCV实例(八)车牌字符识别技术(一)模式识别

车牌字符识别技术&#xff08;一&#xff09;模式识别 1.模式识别流程2. 模式识别方式 影响并导致汽车牌照内字符出现缺损、污染、模糊等情况的常见因素有照相机的性能、采集车辆图像时光照的差异、汽车牌照的清洁度等。为了提高汽车牌照字符识别的准确率&#xff0c;本节将把英…

【C语言】自定义实现strlen函数的3种方法

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解C语言中自定义实现strlen函数的3种方法&#xff0c;如果大家觉得我写的不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 在自定义实现strlen函数之前&#xff0c;我们简单的介绍一下strlen函…

“冰箭卫士·IP发布会”首次亮相第14届海峡两岸(厦门)文博会

2023年8月6日,“冰箭卫士IP发布会”首次亮相海峡两岸文博会思明馆。此次发布会由厦门市文化创意产业协会、厦门理工&#xff08;集美区&#xff09;政产学研基地主办&#xff0c;厦门市文化创意产业协会IP设计研究院、厦门一笔之上文化发展有限公司、冰箭应急安全科技研究院承办…