子查询和事务隔离以及用户管理
一、子查询
子查询是另一个语句中的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: 实…...
手机无人直播软件,有哪些优势?
近年来,随着手机直播的流行和直播带货的市场越来越大,手机无人直播软件成为许多商家开播带货的首选。在这个领域里,声音人无人直播系统以其独特的优势,成为市场上备受瞩目的产品。接下来,我们将探讨手机无人直播软件给…...
5步快速上手!罗技鼠标宏终极压枪教程:告别手残轻松吃鸡
5步快速上手!罗技鼠标宏终极压枪教程:告别手残轻松吃鸡 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 还在为《绝地求生…...
显卡驱动彻底清理指南:DDU工具拯救你的显示问题![特殊字符]
显卡驱动彻底清理指南:DDU工具拯救你的显示问题!🚀 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-d…...
Windows远程桌面终极解锁指南:如何免费开启多用户并发连接
Windows远程桌面终极解锁指南:如何免费开启多用户并发连接 【免费下载链接】rdpwrap RDP Wrapper Library 项目地址: https://gitcode.com/gh_mirrors/rd/rdpwrap 还在为Windows家庭版无法使用远程桌面而烦恼吗?RDP Wrapper Library这款开源工具能…...
HT4182:5V 输入 1.6A 同步升压双节锂电充电器,高集成全保护可 P2P 替代
在便携式音箱、POS 机、电子烟、对讲机等采用双节串联锂电池供电的设备中,5V USB 输入升压充电是最主流的方案,市场对充电效率、集成度和可靠性的要求越来越高。HT4182 作为一款专为 5V 输入优化的同步升压型双节锂电池充电器,凭借高转换效率…...
迷宫算法避坑指南:为什么你的‘流水算法’跑不出最短路径?(附Python调试技巧)
迷宫算法避坑指南:为什么你的‘流水算法’跑不出最短路径?(附Python调试技巧) 迷宫寻路算法一直是编程学习者和算法爱好者热衷探索的领域。其中,流水算法因其独特的物理模拟思路而备受关注。但在实际实现过程中&#x…...
芯片HAST测试:通电工作下如何精准模拟极端环境挑战?
为了确保产品在高温、高湿等恶劣条件下仍能正常工作,HAST(Highly Accelerated Stress Test)测试成为不可或缺的一部分。本文将深入解析HAST测试,并探讨如何在通电工作状态下进行精准模拟,以应对极端环境挑战。什么是HA…...
实测!Gemini+ChatGPT赋能学术写作:我的论文写作SOP(附提示词)
各位同仁好,我是七哥。一个在高校里从事人工智能相关领域研究,钻研用大模型AI实操的学术人。可以和七哥交流学术写作或Gemini、GPT、Claude等大模型学术实操相关问题,多多交流,相互成就,共同进步。 为什么ChatGPT逻辑清晰却写不长?为什么Gemini能深入分析但废话连篇? …...
AI技术总监的晋升密码:搞定这6件事,你也能领导AI团队
在AI技术重塑各行各业的当下,软件测试从业者正站在职业转型的关键路口。从测试工程师到AI技术总监,不仅是职位的跃迁,更是能力模型的全面升级。想要在AI浪潮中脱颖而出,成为引领团队的技术掌舵人,你需要搞定这6件事。一…...
告别JNI内存泄漏:实战中那些容易踩坑的字符串与数组操作(附完整代码示例)
告别JNI内存泄漏:实战中那些容易踩坑的字符串与数组操作(附完整代码示例) 在Android NDK开发和高性能Java服务中,JNI(Java Native Interface)作为连接Java与C的桥梁,其重要性不言而喻。然而&…...
别再只用箱线图了!用R语言ggplot2绘制高颜值小提琴图,让你的SCI图表更专业
科研数据可视化进阶:用R语言打造专业级小提琴图 在生物医学领域的科研论文中,数据可视化是展示研究成果的关键环节。许多研究者习惯性地使用箱线图来呈现数据分布,却忽略了这种传统方法可能掩盖的重要信息细节。当面对复杂的数据分布模式时&…...
