MySQL(2/3)

select和别名的使用

主要是用以查询数据

语法:select 字段 from 库名

-- *代表全部字段
select * from `student`;
-- 可以查询多个字段,并使用as起别名,as可以省略
select `id` as bbb ,`name` as hhh from `student`;
-- 可以使用函数concat(a,b)
-- 列名为as后的新名字,若没有起别名就是concat(a,b)的形式,concat连接显示ab
select concat('姓名:',name) as 新名字 from `student`;

除此之外还有以下功能

select version();  -- 查询版本  对应函数
select 100-1 as result;  -- 查询计算结果  对应表达式
select @@auto_increment_increment;  --查询自增步长  对应变量

去重及据库的表达式

作用:去除select结果中重复的数据,重复数据只显示一条

语法:select distinct 字段 from 库名


where子句之逻辑运算符

其中还有between....and...区间查询

where子句可以跟随在select等语句之后作为约束条件


联表查询join..on

引出三种联表方法(理论上有七种)

语法:select 

1.leftJoin

左表有的必须呈现,左表没有的不呈现

2.innerjoin

二者都有的才呈现

3.rightjoin

右表有的必须呈现,右表没有的不呈现

select s.id,name,class,stugrade
from student as s
inner join result as r
on s.id=r.idselect s.id,name,class,stugrade
from student as s
left join result as r
on s.id=r.idselect s.id,name,class,stugrade
from student as s
right join result as r
on s.id=r.id

两个表有相同字段要区别名来标注使用谁的字段

join...on...            on后面是限制条件与where相似


分页和排序

分页limit

排序order by

语法

升序asc

降序desc

排序

在查询记录中进行排序

语法:order by 表名 asc/desc

分页

在查询记录中进行分页

语法:limit  起始值,页面大小

第n页:limit   (n-1)*pageSize,pagesize

子查询和嵌套查询

子查询指在一个查询语句中嵌套一个查询语句,可以多层嵌套

一般是在where后进行

以下是inner join与子查询处理方法对比

-- 连表查询 高等数学分数大于80的学生
select s.id,`name`,class from student s
inner join result res
on s.id = res.id
inner join object obj
on res.objectNo = obj.objectNo
where objectName = '高等数学'
order by stugrade desc-- 子查询 高等数学分数大于80的学生
select id,`name`,class from student where id in(select id from result where stugrade>80 and objectNo = (select objectNo from object where objectName = '高等数学')
)

MySQL常用函数

-- ====== 常用函数 ======
-- 数学运算
select ABS(-8)  -- 取绝对值
select CEILING(9.4)  -- 向上取整
select FLOOR(9.4)  -- 向下取整
select RAND()  -- 返回一个0-1之间的随机数
select SIGN(10)  -- 返回一个数字判断数字符号  -1为负数,1为正数,0为0-- 字符串函数
select CHAR_LENGTH('欲买桂花同载酒')  -- 返回字符串长度
select CONCAT('终不','似','少年游')  -- 连接字符串
select INSERT('我爱编程helloworld',1,2,'超级热爱')  -- 从1到2替换成语句2
select LOWER('WuYu')  -- 转换小写
select UPPER('WuYu')  -- 转换大写
select INSTR('wuyu','y')  -- 返回第一次出现字符的索引
select REPLACE('狂神说坚持就能成功','坚持','努力')  -- 替换指定的字符串
select SUBSTR('狂神说坚持就能成功',4,6)  -- 返回指定的字符串(原字符串,截取位置,截取长度)
select REVERSE('上马')  -- 反转字符串-- 查询姓 周的学生 将周替换成州
select REPLACE(`name`,'周','州') from student
where `name` like '周%'-- 时间和日期函数
select current_date()  -- 获取当前日期
select curdate()  -- 获取当前日期
select now()  -- 获取当前时间
select localtime  -- 获取本地时间
select sysdate()  -- 系统时间select year(now())
select month(now())
select day(now())
select hour(now())
select minute(now())
select second(now())-- 获取使用系统使用者
select system_user()
select user()
-- 获取版本
select version()

聚合函数及分组(group by)过滤(having)

分组:

语法:group by 列名     通过某列进行分组展示

如果有group by 就

过滤:

语法:having 过滤条件

having   -- 过滤分组的记录必须满足的次要条件

必须在group by 后方

where必须在group by前方

注意:where后面语句不能使用聚合函数,而having可以


拓展之数据库级别的MD5加密

函数:MD5(加密内容)

语句:update into 表名 set 列名=MD5('列名') -- 加密所有密码

可以在插入信息的时候加密保证信息的安全

如何校验?

        --  比对加密后的值是否相同


事务ACID原则、脏读、不可重复读、幻读

两个相关的SQL语句如果一个执行失败,那么会导致数据错误‘

事务原则:ACID原则  原子性、一致性、隔离性、持久性

1.原子性(Atomicity)

要么都成功,要么都失败

2.一致性(Consistency)

事务前后的数据完整性要保证一直

3.持久性(Durability)

事务一旦提交就不可逆,被持久化到数据库中,未被提交数据不会变化

4.隔离性(lsolation)

事务的隔离性是多个用户同时访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,事务之间要相互隔离。

-----  隔离所导致的一些问题

1.脏读

指一个事务读取了另外一个事务未提交的数据

2.不可重复读

在一个事务内读取表中的某一行数据,多次读取结果不同。(不一定是错误的,只是某些场合不对)

3.虚读(幻读)

指在一个事务内读取到了别的事务插入的数据,导致前后读取不一致


测试事务实现转账

---  mysql是默认开启事务自动提交的

set autocommit = 0     ----        关闭

set autocommit = 1     ----        开启(默认)

-- 模拟银行转账
create database bank character set utf8 collate utf8_general_cicreate table `account`(`id` int(3) not null auto_increment,`name` varchar(20) not null,`money` decimal(9,2) not null,primary key(`id`)
)engine=innodb default charset=utf8   -- 创建表insert into account(`name`,`money`) values ('A',1000.00),('B',500.00)set autocommit = 0  -- 关闭mysql事务自动提交
start transaction -- 开启一个事务(一组事务)
update account set money=money-500 where `name` = 'B'  -- B减500
update account set money=money+500 where `name` = 'A'  -- A加500commit;   -- 提交事务,被持久化
rollback;  -- 回滚set autocommit = 1;  -- 恢复默认提交

回滚

        -- 当一组事务有一个执行失败时进行回滚,将数据保持原样

执行成功则提交

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【小尘送书-第十一期】编程的基石,开发的核心:《算法秘籍》

大家好,我是小尘,欢迎你的关注!大家可以一起交流学习!欢迎大家在CSDN后台私信我!一起讨论学习,讨论如何找到满意的工作! 👨‍💻博主主页:小尘要自信 &#x1…

【手机端测试】adb基础命令

一、什么是adb adb(Android Debug Bridge)是android sdk的一个工具 adb是用来连接安卓手机和PC端的桥梁,要有adb作为二者之间的维系,才能让用户在电脑上对手机进行全面的操作。 Android的初衷是用adb这样的一个工具来协助开发人…

微服务-实用篇

微服务-实用篇 一、微服务治理1.微服务远程调用2.Eureka注册中心Eureka的作用:搭建EurekaServer服务Client服务注册服务发现Ribbon负载均衡策略配置Ribbon配置饥饿加载 3.nacos注册中心使用nacos注册中心服务nacos区域负载均衡nacos环境隔离-namespaceNacos和Eureka…

C语言题目讲解

一:力扣485. 最大连续 1 的个数 1.题目: 2.思路分析 先设定两个变量,一个变量(ret_e)用来存连续的1的个数,当nums[i]为0时,该变量就置为0,当nums【i】为1时,再重新&…

【k8s配置与存储--持久化存储(PV、PVC、存储类)】

1、PV与PVC 介绍 持久卷(PersistentVolume,PV) 是集群中的一块存储,可以由管理员事先制备, 或者使用存储类(Storage Class)来动态制备。 持久卷是集群资源,就像节点也是集群资源一样…

四、分类算法 - 决策树

目录 1、认识决策树 2、决策树分类原理详解 3、信息论基础 3.1 信息 3.2 信息的衡量 - 信息量 - 信息熵 3.3 决策树划分的依据 - 信息增益 3.4 案例 4、决策树API 5、案例:用决策树对鸢尾花进行分类 6、决策树可视化 7、总结 8、案例:泰坦尼…

机器学习:朴素贝叶斯算法(Python)

一、朴素贝叶斯算法的实现 naive_bayes_classifier.py import numpy as np import collections as cc # 集合的计数功能 from scipy.stats import norm # 极大似然估计样本的均值和标准方差 from data_bin_wrapper import DataBinsWrapperclass NaiveBayesClassifier:"…

基础算法(二)( 枚举)

1.枚举算法介绍: 枚举算法是一种基本的算法思想,它通过穷举所有可能的情况来解决问题。它的基本思想是将问题的解空间中的每个可能的解都枚举出来,并进行验证和比较,找到满足问题条件的最优解或者所有解。枚举算法适用于问题规模…

Nginx ---- 高性能得WEB服务端(三)

一、重写功能 rewrite Nginx服务器利用 ngx_http_rewrite_module 模块解析和处理rewrite请求,此功能依靠 PCRE(perl compatible regular expression),因此编译之前要安装PCRE库,rewrite是nginx服务器的重要功能之一,重写功能(r…

基于springboot+vue的学科平台系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

Redis高可用三主三从集群部署(三种方式部署/18个节点的大集群)

文章目录 🔊博主介绍🥤本文内容使用宝塔面板搭建集群规划配置验证 使用docker搭建使用脚本搭建规划防火墙端口配置脚本redis.conf配置文件执行过程 📢文章总结📥博主目标 🔊博主介绍 🌟我是廖志伟&#xff…

【递归】【回溯】Leetcode 112. 路径总和 113. 路径总和 II

【递归】【回溯】Leetcode 112. 路径总和 113. 路径总和 II 112. 路径总和解法:递归 有递归就有回溯 记得return正确的返回上去 113. 路径总和 II解法 递归 如果需要搜索整棵二叉树,那么递归函数就不要返回值 如果要搜索其中一条符合条件的路径&#xff…

AI入门笔记(二)

紧接着上一篇幅,点火条件的图形表示如下。 利用单位阶跃函数可表示点火的式子:yu(w1x1w2x2w3x3-θ) 因为u表示的是单位阶跃函数,那么一般化点火的式子可以表示为:ya(w1x1w2x2w3x3-θ),此处的a表示激活函数&#xff0…

笔记:GO1.19 带来的优化(重新编译juicefs)

## 背景 go编写的应用程序(juicefs)在k8s(docker)中运行,时不时出现 OOM Killed。 ## 分析 发现某些应用使用juicefs会导致内存使用飙升; k8s的pod给的内存资源:request 2G,limit…

ui设计:利用即使设计设计出漂亮样式

目录 一、基本操作 二、具体介绍 6-1 填充图片 6-2 填充色 6-3 图标 右边栏基础设置 右边栏导出​编辑 一、基本操作 二、具体介绍 6-1 填充图片 选择其一图片填充 6-2 填充色 6-3 图标 右边栏基础设置 右边栏导出

面试redis篇-12Redis集群方案-分片集群

原理 主从和哨兵可以解决高可用、高并发读的问题。但是依然有两个问题没有解决: 海量数据存储问题高并发写的问题 使用分片集群可以解决上述问题,分片集群特征: 集群中有多个master,每个master保存不同数据每个master都可以有…

腾讯云4核8g的服务器能承受多少并发?

腾讯云4核8G服务器支持多少人在线访问?支持25人同时访问。实际上程序效率不同支持人数在线人数不同,公网带宽也是影响4核8G服务器并发数的一大因素,假设公网带宽太小,流量直接卡在入口,4核8G配置的CPU内存也会造成计算…

ADS-B Ground Receiver Radarcape

目录 Radarcape ADS-B MLAT Receiver Web Browser User Interface Radarcape Technical Data Radarcape Software Features Radarcape Basics Radarcape ADS-B MLAT Receiver Radarcape is a professional ADS-B receiver made for 24/7 operation. High performance rec…

AI赚钱套路总结和教程

最近李一舟和Sora 很火,作为第一批使用Sora赚钱的男人,一个清华学美术的跟人讲AI,信的人太多了,钱太好赚了。3年时间,李一舟仅通过卖课就赚了1.75亿元,其中《每个人的人工智能课》收入2786万元,…

【Flink】Flink 中的时间和窗口之窗口(Window)

1. 窗口的概念 Flink是一种流式计算引擎,主要是来处理无界数据流,数据流的数据是一直都有的,等待流结束输入数据获取所有的流数据在做聚合计算是不可能的。为了更方便高效的处理无界流,一种方式就是把无限的流数据切割成有限的数…