子查询和事务隔离以及用户管理
一、子查询
子查询是另一个语句中的select语句嵌套在另一个select中。注意子查询语法上必须使用()包起来。
嵌套的那个语句返回的结果有可能是:
- 一个字段,一行记录,一个列或一个表。
- 嵌套的位置
- where / having语句里面作为条件使用
- 在from语句中作为新表使用
子查询的结果作为新表
select * from (select ename,salary,salary - (select avg(salary) from t_employee) as difffrom t_employee
) where abs(diff) > 500;
子查询的结果作为条件
- 使用聚合函数将多个结果合并为一个值
select * from t_employee where salary > (select avg(salary) from t_employee; ) and gender = '男'; - 使用ALL / ANY/EXIST对多个数据进行比较
select * from t_employee where salary > ALL( -- 大于所有人的薪资select salary from t_employee; ) and gender = '男';
使用窗口函数来获取新表
问题:查询每个部门薪资排名前两位的的员工
select ename, salary, did,
row_number() over(partition by did
order by salary desc) as cnt
from t_employee;
子查询复制表
create table dept like t_department; -- 复制表
insert into dept (select * from t_department); -- 复制表数据create table emp as (select * from t_employee); -- 复制表和数据
二、事务
事务(Database Transaction) 是一个逻辑工作单元,要么完全的执行,要么完全的不执行。如果操作过程中无法执行下去,则会撤销已经执行的操作,恢复到执行前的数据状态。
事务的ACID四特性
- 原子性:不可分割
- 一致性:有引用关系的表的更新要一致的改变
- 隔离性:多个事务操作数据必须是线程安全的
- 持久性:一旦事务被提交,数据库中数据的改变应该是永久的
事务的前提
MySQL的两种引擎:InnoDB是支持事务的,MyISAM是不支持事务的。
MySQL是默认自动提交事务的,可以设置关闭。
set autocommit = false;
这个设置当你关闭可视化软件后会重新回到自动提交。使用commit;关键字才会对数据库产生持久化影响。
基本操作
- 开启事务
begin;执行后,数据库开启了临时的手动提交状态 - 提交事务
commit;提交begin后面的SQL语句,恢复自动提交 - 事务回滚
rollback;撤销begin后面的SQL语句,恢复自动提交
事务只对DML数据操作语言有效,比如常用的增删改操作。但是比如truncate等DDL数据库定义语句,直接删除了表之后重新创建了一个新表,这个无法回滚撤销。
事务的隔离级别
事务间干扰产生的问题
- 脏读:别人处理过程中的数据被自己读取了,最后结果可能撤销和修改,是脏数据。
- 不可重复读:读取了前一事务提交的数据,有些时候不可重复读并不是问题。
- 虚读:指一个事务内读取到了别的事务插入的数据,导致前后读取不一致,和不可重复读的区别是:不可重复读查询的是同一个数据项,幻读针对的是一批数据整体。
隔离级别
- 串行化(serializable):解决了三个问题
- 可重复读(repeatable-read):解决了不可重复读问题
- 读已提交(read-committed):解决了脏读问题
- 读未提交(read-uncommitted):三个问题都会出现
查询隔离等级:select @@transaction_isolation;
设置隔离等级:set transaction_isolation = ‘read_uncommitted’
这个设置是会话级别的,当前会话结束后会恢复到原先的样子。
三、权限管理
权限级别
- 全局权限
- 数据库权限
- 表权限
- 字段权限
- 存储过程以及
用户管理
- 创建新用户:create user ‘tom’@% identified by ‘密码’;%表示可以远程登录该主机。
- 查看当前用户的权限: show grants for ‘tom’@‘%’;
- 给用户授权:
grant select on db1.emp to 'ray@%'grant all on db1.* to 'ray'@'%';
- 收回客户权限
revoke select on db1.emp from 'ray'@'%';revoke all on db1.* from 'ray'@'%';
- 删除用户
drop user 'ray'@'%';
您也可以在可视化工具的窗口里面寻找User and Privileges进行操作。

相关文章:
子查询和事务隔离以及用户管理
一、子查询 子查询是另一个语句中的select语句嵌套在另一个select中。注意子查询语法上必须使用()包起来。 嵌套的那个语句返回的结果有可能是: 一个字段,一行记录,一个列或一个表。嵌套的位置 where / having语句里面作为条件使用在from语…...
uniapp 滚动到指定元素的位置(锚点)
需求:在页面中,不管位于何处,点击按钮页面滚动到对应的标题位置。 最简单有效的方式(直接复制改数据就行) 使用 scroll-view 标签的属性:scroll-top(距离值 num) 或 scroll-into-view(子元素的id,不能以…...
Spring AOP 的 afterReturing 返回值是否能修改问题
文章目录 结论举例子原因外传 结论 最近要搞脱敏信息,所以,想了几种方案,最后使用全局的接口拦截,但是,又不能用注解的方式,毕竟是几年的老产品,有很多限制。 中间尝试过使用Spring AOP 的 aft…...
MyBatis分页插件PageHelper的使用及特殊字符的处理
目录 一、PageHelper简介 1.什么是分页 2.PageHelper是什么 3.使用PageHelper的优点 二、PageHelper插件的使用 原生limit查询 1. 导入pom依赖 2. Mybatis.cfg.xml 配置拦截器 3. 使用PageHelper进行分页 三、特殊字符的处理 1.SQL注入: 2.XML转义&#…...
[语音识别] 基于Python构建简易的音频录制与语音识别应用
语音识别技术的快速发展为实现更多智能化应用提供了无限可能。本文旨在介绍一个基于Python实现的简易音频录制与语音识别应用。文章简要介绍相关技术的应用,重点放在音频录制方面,而语音识别则关注于调用相关的语音识别库。本文将首先概述一些音频基础概…...
Matlab彩色图像转索引图像
索引图像 索引图像是一种把像素值直接作为RGB调色板下标的图像。索引图像包括一个数据矩阵X,一个调色板矩阵map,也称为颜色映像矩阵。其中,数据矩阵X可以是8位无符号整型、16位无符号整型或双精度类型。调色板矩阵map是一个m3的数据阵列&…...
测试框架pytest教程(11)-pytestAPI
常量 pytest.__version__ #输出pytest版本 pytest.version_tuple #输出版本的元组形式 功能 pytest.approx pytest.approx 是一个用于进行数值近似比较的 pytest 断言工具。 在测试中,有时候需要对浮点数或其他具有小数部分的数值进行比较。然而,由于…...
Docker自学:利用FastAPI建立一个简单的web app
环境配置:下载Docker Desktop 文件一:main.py from typing import Unionfrom fastapi import FastAPIimport uvicornapp FastAPI()app.get("/") def read_root():return {"Hello": "World"}app.get("/items/{item…...
微调bert做学术论文分类(以科大讯飞学术论文分类挑战赛为例)
代码 12-How to Fine-Tune BERT for Text Classification:链接:https://pan.baidu.com/s/1EKggbyC4ZW-ufnDW45eKzA 提取码:k3b2 baseline 链接:https://pan.baidu.com/s/12hkZNJjQ__FGAHiF3fifvQ 提取码:88tb 数据…...
Springboot中sharding-jdbc的API模式并使用自定义算法
Springboot中sharding-jdbc的API模式并使用自定义算法 可配合AbstractRoutingData使用切换数据源 程序用到了AbstractRoutingData来切换数据源(数据源是自定义的格式编写并没有用springboot的自动装配的格式写),但是又用到sharding-jdbc进行…...
MySQL回表是什么?哪些情况下会回表
🏆作者简介,黑夜开发者,全栈领域新星创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责…...
VR、AR、MR 傻傻分不清楚?区别的底层逻辑?
VR是一种能够制作虚拟物体并与人互动的基础技术。它与操作者所处的环境无关。AR可以让在特定位置出现或消失。MR可以让虚拟物体与真实物体进行互动。 AR和MR的大部分应用场景都是随机的,所以硬件基本都采用手机和眼镜。提升了便携性。牺牲了性能。这就导致了AR与MR…...
VScode运行C语言出现的调试问题 lauch:program does not exist 解决方法
"lauch:program does not exist"错误通常表示编译器或调试器无法找到指定的可执行文件。这可能是由于几个原因引起的。首先,确保你的源代码文件夹路径不包含中文字符,因为这可能导致编译器无法识别文件。其次,检查你的launch.json文…...
云原生安全:保护现代化应用的新一代安全策略
随着云计算和容器技术的快速发展,云原生应用已成为现代化软件开发和部署的主流趋势。然而,随之而来的安全挑战也变得更加复杂和严峻。本文将深入探讨云原生安全的概念、原则和最佳实践,帮助您理解如何有效保护云原生应用和敏感数据。 第一部…...
mysql操作
1、字符转Decimal CAST(column AS DECIMAL(9,2)) 2、将计算结果取两位小数: round(column, 2) 3、查询非空 select * from table_XX where id is not null; 4、连表update更新 update a inner join (select yy from b) c on a.id c.id set a.xx c.yy...
前端(十四)——DOM节点操作手册:你需要了解的一切
🙂博主:小猫娃来啦 🙂文章核心:DOM节点操作手册:你需要了解的一切 文章目录 前言DOM基础知识操作现有节点创建新节点遍历节点树修改节点属性和样式事件处理实践应用动态创建表格动态更新列表 前言 DOM(文档…...
PDF怎么转成PPT文件免费?一个软件解决
随着科技的不断发展和进步,电子文档已经成为我们日常工作和学习中不可或缺的一部分。PDF作为一种跨平台的文件格式,以其可靠性和易读性而备受推崇。然而,在某些情况下,我们可能需要PDF怎么转成PPT文件免费,以便更好地展…...
数据结构基础:P3-树(上)----编程作业02:List Leaves
本系列文章为浙江大学陈越、何钦铭数据结构学习笔记,系列文章链接如下: 数据结构(陈越、何钦铭)学习笔记 文章目录 一、题目描述二、整体思路与实现代码 一、题目描述 题目描述: 给定一棵树,按照从上到下、从左到右的顺序列出所有…...
山西电力市场日前价格预测【2023-08-25】
日前价格预测 预测明日(2023-08-25)山西电力市场全天平均日前电价为314.22元/MWh。其中,最高日前电价为336.17元/MWh,预计出现在18: 30。最低日前电价为283.05元/MWh,预计出现在24: 00。 价差方向预测 1: 实…...
手机无人直播软件,有哪些优势?
近年来,随着手机直播的流行和直播带货的市场越来越大,手机无人直播软件成为许多商家开播带货的首选。在这个领域里,声音人无人直播系统以其独特的优势,成为市场上备受瞩目的产品。接下来,我们将探讨手机无人直播软件给…...
找不到api-ms-win-core-path-l1-1-0.dll的官方解决方法(2026更新)
我是一名企业的IT桌面支持,平时处理得最多的就是员工电脑上五花八门的软件报错。最近,api-ms-win-core-path-l1-1-0.dll缺失的工单量激增,尤其在Windows 7系统的电脑上。很多同事第一反应是去网上搜这个文件下载,但这恰恰是IT运维…...
通达信顶底背离副图指标源码解析与实战应用
1. 通达信顶底背离副图指标入门指南 第一次接触顶底背离指标时,我也被那些复杂的线条和公式搞得一头雾水。后来才发现,这其实是技术分析中最实用的趋势反转信号工具之一。简单来说,顶底背离就是当价格创新高或新低时,指标却没有同…...
Ostrakon-VL-8B零基础上手:无需Python基础,通过Chainlit界面完成首次图文问答
Ostrakon-VL-8B零基础上手:无需Python基础,通过Chainlit界面完成首次图文问答 你是不是对AI图文对话很感兴趣,但一看到Python代码、命令行就头疼?是不是觉得部署一个多模态大模型需要专业的技术背景?今天我要告诉你一…...
ESP32 FreeRTOS任务状态全解析:从就绪态到挂起态的深度理解与应用
ESP32 FreeRTOS任务状态全解析:从就绪态到挂起态的深度理解与应用 在嵌入式系统开发中,任务调度是实时操作系统(RTOS)的核心功能之一。对于ESP32开发者而言,深入理解FreeRTOS的任务状态模型,能够帮助我们编写出更高效、更可靠的多…...
工业质检新革命:无需标注数据,用ChatGPT式对话完成目标定位
工业质检新革命:无需标注数据,用ChatGPT式对话完成目标定位 1. 传统工业质检的痛点与挑战 在制造业的质检环节中,目标定位一直是个技术难题。传统方法通常需要: 大量标注数据训练专用模型针对每种产品定制算法频繁调整参数适应…...
从一道CTF赛题出发:手把手教你用火眼取证分析手机APP数据(附雷电模拟器实战)
从一道CTF赛题出发:手把手教你用火眼取证分析手机APP数据(附雷电模拟器实战) 在网络安全竞赛和电子数据取证领域,手机取证一直是技术含量高且实用性强的核心技能。本文将从一个真实的CTF赛题切入,带您完整走通手机镜像…...
写作压力小了!2026最新AI论文写作工具测评与推荐
2026年真正好用的AI论文写作工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 …...
FastAPI负载测试:持续集成的完整指南
FastAPI负载测试:持续集成的完整指南 【免费下载链接】fastapi FastAPI framework, high performance, easy to learn, fast to code, ready for production 项目地址: https://gitcode.com/GitHub_Trending/fa/fastapi FastAPI作为高性能、易学习的现代Pyth…...
163MusicLyrics:音乐数据智能解析引擎如何重构歌词获取体验
163MusicLyrics:音乐数据智能解析引擎如何重构歌词获取体验 【免费下载链接】163MusicLyrics Windows 云音乐歌词获取【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 深夜,一位音乐制作人正在为即将发布的…...
SerialTransfer:Arduino轻量级高可靠串行通信协议栈
1. SerialTransfer 库概述SerialTransfer 是一款专为 Arduino 平台设计的轻量级、高可靠性串行通信协议栈,其核心目标是解决嵌入式系统中跨设备数据交换的通用性、鲁棒性与工程可维护性问题。它并非简单的Serial.write()封装,而是一套完整的面向帧&#…...
