Mysql基础进阶速成2

看着篇文章之前先看我的前一章:MySQL基础进阶速成1

函数:

每个字段使用一个函数:select +函数(字段名)+from +表名

upper:将字符串中的字母大写

lower:将字符串中的字符小写

max:得到最大值

min:得到最小值

count:计数

avg:平均数

length:获取字符串长度

........

select upper(name) from student;
select lower(name) from student;
select min(age) from student;
select max(age) from student;
select count(age) from student;

 条件函数:IF(字段,true返回值,else返回值) select+字段名+逗号隔开+if(字段条件,真返回值,假返回值)+from+表名

                    CASE value WHEN   [value1] THEN result1 [WHEN [value2] THEN result2 ...] [ELSE result] END   如果value等于value1,则返回result1,···,否则返回result

                CASE WHEN [condition1] THEN result1 [WHEN [condition2] THEN   result2 ...] [ELSE result] END       如果条件condition1为真,则返回result1,···,否则返回result

select age,if(age>=18,'成年人','未成年') from student;select age,name, case name when '张三' then '法外狂徒' 
when '李四' then '受害者' else '旁观者' end '成员';

group by 分组

select +字段名+from+表名+group by +靠那个字段分组的字段名

配合排序order by使用: 

select +字段名+from+表名+group by +靠那个字段分组的字段名+order by+对那个字段排序

// 对年龄分组并排序
select age,name from student group by age orderby age desc;

 分组筛选having:

select +字段名+from+表名+group by +靠那个字段分组的字段名+having +筛选条件

//对年龄分组后筛选出大于18的组
select age from student group by age having age>=18;

多表查询:

对于多张表查询需要这些表之间有外键连接 

或者先将两张表连接起来在查询

交叉连接cross join:有两个表,左表有m条数据记录,x个字段,右表有n条数据记录,y个字段,则执行交叉连接后将返回m*n条数据记录,x+y个字段

select + 字段名+from+表名+cross join +第二张表

自然连接natural join:自动匹配所有相同的字段名,同一个字段名只展现一次

select +字段名+from +表名+natural join +第二张表名

内连接:select+字段名+from+表名+inner join +另外一张表名+on(A表连接字段=B表连接字段)

# 交叉连接
select * from student1 cross join student2;
# 自然连接:
select * from student2 natural join student2;
# 内连接:
select * from student1 inner join student2 on (student1.id=student2.id);

外连接查询:inner join on 于内连接差不多

select * from student1 inner join student2 on student1.id=student2.id

 左连接left outer join和右连接right outer join:这两个连接即使两个表没有相同的字段也可以连接

# 左连接
select * from student1 left outer join student2 on (student1.id=student2.id);
# 右连接
select * from student1 right outer join student2 on (student1.id=student2.id);

 自连接查询:就是自己和自己连接后在查询,将连接的两个表都写成自己就是自连接了

# 左自连接
select * from student1 left outer join student1 on (student1.id=student1.id);
# 右自连接
select * from student1 right outer join student1 on (student1.id=student1.id);

 子查询:也就是一个sql语句里有多个select

select + 字段名字+from+表名+where+条件,

例子的意思:查找年龄大于张三的人员信息

select * from student where age>(select age from student where name='张三');

 数据库对象:

事务:简单来说就是要几个数据库一起操作。举个栗子:你和好友正在斗地主,输家要向赢家发红包,输家的账户余额减少的时候,赢家的账户余额增加

用sql来表示:先创建一个账户表

create table account(id int primary key auto increment,name varchar(10) not null,blance double
);

在表中插入你们的账户数据

insert into account values(null,'张三',200),(null,'李四',300),(null,'王五',400);

 张三地主输了20分别给了李四和王五,那么三个人的账户都得一起变动

# 开启事务:
start transaction;
# 从这里开始数据库开启缓存,缓存下面任务执行后的变化
# 要执行的任务:
updata account set balance=balance-20 where id=1;
updata account set balance=balance+10 where id=2;
updata account set balance=balance+10 where id=3;
# 回滚:从开始到这里执行的任务全部取消,缓存清空
rollback;
# 提交:如果报错那么上边执行的所有任务全部不成功,否则全部成功,缓存清空
commit;

 事务并发问题:

脏读:当一个事务正在访问数据并且对数据进行了修改,而这种修改还没有提交到数据库中,这时另外一个事务也访问了这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是“脏数据”,

不可重复读:指在一个事务内多次读同一数据。在这个事务还没有结束时,另一个事务也访问该数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改导致第一个事务两次读取的数据可能不太一样。这就发生了在一个事务内两次读到的数据是不一样的情况,因此称为不可重复读。

幻读:幻读与不可重复读类似。它发生在一个事务(T1)读取了几行数据,接着另一个并发事务(T2)插入了一些数据时。在随后的查询中,第一个事务(T1)就会发现多了一些原本不存在的记录,就好像发生了幻觉一样,所以称为幻读

事务隔离:用来解决以上问题:

read uncommitted:解决不了

read committed:解决脏读:

repeatable read:解决脏读和不重复读:

serializable:全部解决

设置当前会话的事务隔离(数据库默认的是repeatable read):

set session transaction isolation level read uncommitted;  
set session transaction isolation level read committed;  
set session transaction isolation level repeatable read;  
set session transaction isolation level serializable;

好了,到这里数据库的使用就基本完成了!!!大家点个赞在走呗!!!

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

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

相关文章

嵌入式仪器模块:音频综测仪和自动化测试软件

• 24 位分辨率 • 192 KHz 采样率 • 支持多种模拟/数字音频信号的输入/输出 应用场景 • 音频信号分析:幅值、频率、占空比、THD、THDN 等指标 • 模拟音频测试:耳机、麦克风、扬声器测试,串扰测试 • 数字音频测试:平板电…

高考志愿填报:大学学什么专业比较好呢?

准高三一枚,比较迷茫,求推荐一些专业以后比较好就业,发展前景较好的。听说互联网行业比较吃香,有想过以后做运营这一块,但是不知道应该在大学选什么专业,求推荐吧! 学什么专业好? 这…

Vitis HLS 学习笔记--global_array_RAM初始化及复位

目录 1. 简介 2. 示例代分析 2.1 源代码 2.2 URAM 不可用 2.3 代码功能解释 2.4 综合报告 2.4.1 顶层控制接口 2.4.2 软件 IO 信息 2.4.3 存储绑定 3. 对比两种 solution 3.1 solution_A 3.2 solution_B 4. 总结 1. 简介 在C程序中,数组是一种基本的…

LLM的基础模型8:深入注意力机制

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型新阅读。而最新科技(Mamba,xLSTM,KAN)则提…

在线按模板批量生成文本工具

具体请前往:在线按模板批量生成文本工具

URL的编码解码(一),仅针对ASCII码字符

用十六进制对特定字符编码,利用百分号标识搜索字符串解码十六进制字符。 (笔记模板由python脚本于2024年06月09日 18:05:25创建,本篇笔记适合喜好探寻URL的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free…

Java Set系列集合的使用规则和场景(HashSet,LinkedHashSet,TreeSet)

Set集合 package SetDemo;import java.util.HashSet; import java.util.Iterator; import java.util.Set;public class SetDemo {public static void main(String[] args) {/*Set集合的特点:1.Set系列集合的特点:Set集合是一个存储元素不能重复的集合方…

Vue13-计算属性的简写

一、计算属性的简写 注意: 当计算属性只有get,没有set的时候,才能用简写形式!!!

svn的使用

【图文详解】入职必备——SVN使用教程-CSDN博客 使用SVNBucket作为服务端,来辅助学习. 什么时候会产生冲突呢? 原本A,B,服务器的版本都一致,都是最新版. A修改文件m,向服务器提交 B修改文件m,向服务器提交,这时候出现了冲突 双击冲突的文件,手动修改

---java 抽象类 和 接口---

抽象类 再面向对对象的语言中,所以的对象都是通过类来描述的,但如果这个类无法准确的描述对象的 话,那么就可以把这个类设置为抽象类。 实例 这里用到abstract修饰,表示这个类或方法是抽象方法 因为会重写motifs里的show方法…

【爬虫实战项目一】Python爬取豆瓣电影榜单数据

目录 一、环境准备 二、编写代码 2.1 分页分析 2.2 编码 一、环境准备 安装requests和lxml pip install requests pip install lxml 二、编写代码 2.1 分页分析 编写代码前我们先看看榜单的url 我们假如要爬取五页的数据,那么五个url分别是: htt…

再读高考作文题

新课标I卷:讨论了随着互联网和人工智能的普及,问题是否会变得越来越少,要求考生写一篇文章,表达自己对于这一现象的联想和思考。 从来就没有什么救世主 AI也不是​​​​​ 一直不会写作文,直到高中,才堪堪…

Java Web学习笔记30——打包部署

打包: 到资源管理器中再看下: 将这些文件压缩成一个zip文件,然后到nginx的html目录中执行unzip 解压即可。 部署: Nginx:Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代…

使用JMeter软件压测接口配置说明

1、下载完该软件https://blog.csdn.net/wust_lh/article/details/86095924 2.点击bin文件中jmeter.bat脚本https://blog.csdn.net/wust_lh/article/details/86095924 3.官网地址https://jmeter.apache.org/download_jmeter.cgi 通过 【Options】->【Choose Language】变更为…

双列集合底层源码

tips: 竖着的箭头:重写 横着的箭头:继承

张大哥笔记:经济下行,这5大行业反而越来越好

现在人们由于生活压力大,于是就干脆降低自己的欲望,只要不是必需品就不买了,自然而然消费也就降低了,消费降级未必是不好的现象! 人的生物本能是趋利避害,追求更好的生存和发展空间,回避对自己有…

在线渲染3d怎么用?3d快速渲染步骤设置

在线渲染3D模型是一种高效的技术,它允许艺术家和设计师通过互联网访问远程服务器的强大计算能力,从而加速渲染过程。无论是复杂的场景还是高质量的视觉效果,在线渲染服务都能帮助您节省宝贵的时间。 在线渲染3D一般选择的是:云渲染…

生成式人工智能 - 本地windows 11 + PyCharm运行stable diffusion流程简述

一、环境说明 硬件:本地电脑windows11、32.0 GB内存、2060的6G的卡。 软件:本地有一个python环境,主要是torch 2.2.2+cu118 二、准备工作 1、下载模型 https://huggingface.co/CompVishttps://huggingface.co/CompVis 进入上面的网址,我这里下载的是这个里面的 …

雷电模拟器中控实现,直通源码

目录 前言 开发 需求 初始环境 UI搭建 功能实现 前言 本篇为易语言雷电模拟器中控项目实现操作,一般用于:脚本开发多线程模拟操作等起始模板框架,使用易语言原因为其前后端一体化,对于脚本开发而言更为方便。 开发 需求 以…

C语言详解(联合和枚举)

Hi~!这里是奋斗的小羊,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 💥个人主页:奋斗的小羊 💥所属专栏:C语言 🚀本系列文章为个人学习笔记,在这里撰写…